# Libutil

> libutil - General utilities. countTokens and estimateTokens for GPT-style token counting. generateHash creates SHA256 hashes. generateUuid creates unique IDs findProjectRoot locates repository root. updateEnvFile modifies environment files. exec runs child processes. createBundler downloads code bundles. Use for token counting, hashing, and project utilities.

- Skill: `majiayu000/libutil` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/libutil`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/libutil/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/libutil

---


# libutil Skill

## When to Use

- Counting tokens for LLM context management
- Generating hashes and UUIDs
- Finding project root directory
- Running child processes
- Managing generated code bundles

## Key Concepts

**Token counting**: GPT-compatible tokenization for context window management.

**Project root**: Finds repository root by looking for package.json markers.

**Bundle management**: Download and extract pre-generated code bundles.

## Usage Patterns

### Pattern 1: Count tokens

```javascript
import { countTokens, estimateTokens } from "@copilot-ld/libutil";

const exact = countTokens("Hello, world!"); // Accurate count
const fast = estimateTokens("Hello, world!"); // Quick estimate
```

### Pattern 2: Generate identifiers

```javascript
import { generateHash, generateUuid } from "@copilot-ld/libutil";

const hash = generateHash(content); // 16-char SHA256
const uuid = generateUuid(); // Standard UUID
```

### Pattern 3: Find project root

```javascript
import { findProjectRoot } from "@copilot-ld/libutil";

const root = await findProjectRoot(); // /path/to/copilot-ld
```

## Integration

Used across packages for common utilities. countTokens used by libmemory.

