diff --git a/packages/coding-agent/README.md b/packages/coding-agent/README.md index f56c5505..cd99634e 100644 --- a/packages/coding-agent/README.md +++ b/packages/coding-agent/README.md @@ -26,7 +26,8 @@ Works on Linux, macOS, and Windows (requires bash; see [Windows Setup](#windows- - [Custom Models and Providers](#custom-models-and-providers) - [Themes](#themes) - [Custom Slash Commands](#custom-slash-commands) - - [Hooks](#hooks) + - [Skills](#skills) + - [Hooks](#hooks)(#hooks) - [Settings File](#settings-file) - [CLI Reference](#cli-reference) - [Tools](#tools) @@ -463,6 +464,68 @@ Usage: `/component Button "onClick handler" "disabled support"` **Namespacing:** Subdirectories create prefixes. `.pi/commands/frontend/component.md` → `/component (project:frontend)` + +### Skills + +Skills are instruction files loaded on-demand when tasks match their descriptions. Compatible with Claude Code and Codex CLI skill formats. + +**Skill locations:** +- Pi user: `~/.pi/agent/skills/**/*.md` (recursive) +- Pi project: `.pi/skills/**/*.md` (recursive) +- Claude Code user: `~/.claude/skills/*/SKILL.md` (one level) +- Claude Code project: `.claude/skills/*/SKILL.md` (one level) +- Codex CLI: `~/.codex/skills/**/SKILL.md` (recursive) + +Later locations win on name collisions (Pi skills override Claude/Codex). + +**Format:** + +```markdown +--- +description: Extract text and tables from PDF files +--- + +# PDF Processing + +Use `pdftotext` for plain text extraction. +For tables, use `tabula-py`. + +Helper scripts: {baseDir}/scripts/ +``` + +- `description`: Required. Shown in system prompt for agent to decide when to load. +- `name`: Optional. Overrides filename/directory name. +- `{baseDir}`: Replaced with skill's directory path. + +**How it works:** + +Skills are listed in the system prompt with descriptions: + +``` + +- pdf-extract: Extract text and tables from PDF files + File: ~/.pi/agent/skills/pdf-extract.md + Base directory: ~/.pi/agent/skills + +``` + +Agent uses `read` tool to load full instructions when needed. + +**Disable skills:** + +CLI: `pi --no-skills` + +Settings (`~/.pi/agent/settings.json`): +```json +{ + "skills": { + "enabled": false + } +} +``` + +See [docs/skills.md](docs/skills.md) for details. + ### Hooks Hooks are TypeScript modules that extend pi's behavior by subscribing to lifecycle events. Use them to: @@ -528,6 +591,9 @@ See [Hooks Documentation](docs/hooks.md) for full API reference. "reserveTokens": 16384, "keepRecentTokens": 20000 }, + "skills": { + "enabled": true + }, "retry": { "enabled": true, "maxRetries": 3, @@ -568,6 +634,7 @@ pi [options] [@files...] [messages...] | `--tools ` | Comma-separated tool list (default: `read,bash,edit,write`) | | `--thinking ` | Thinking level: `off`, `minimal`, `low`, `medium`, `high` | | `--hook ` | Load a hook file (can be used multiple times) | +| `--no-skills` | Disable skills discovery and loading | | `--export [output]` | Export session to HTML | | `--help`, `-h` | Show help | | `--version`, `-v` | Show version |