pi-heartbeat
Configure periodic health checks via HEARTBEAT.md and the /heartbeat command.
Delegate tasks to specialized subagents for parallel or sequential execution.
$ npx -y skills add espennilsen/pi --skill pi-subagent --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/pi-subagentContext preview
The summary Claude sees to decide when to auto-load this skill.
Delegate tasks to specialized subagents for parallel or sequential execution.
name: pi-subagent description: Delegate tasks to specialized subagents for parallel or sequential execution.
Use the `subagent` tool to delegate tasks to isolated pi subprocesses. Each subagent gets a fresh context window — no shared state with the parent session.
{ "agent": "scout", "task": "Find all REST endpoints in " }{ "tasks": [
{ "agent": "scout", "task": "Audit auth module" },
{ "agent": "scout", "task": "Audit API routes" },
{ "agent": "scout", "task": "Audit database queries" }
]
}{ "chain": [
{ "agent": "scout", "task": "Find all TODO comments in the codebase" },
{ "agent": "planner", "task": "Categorize and prioritize these TODOs:\n{previous}" },
{ "agent": "worker", "task": "Fix the top 3 critical TODOs:\n{previous}" }
]
}Every task (single, parallel item, chain step) supports these overrides:
| Option | Type | Description | |--------|------|-------------| | `model` | string | Model override (e.g. `"claude-haiku-4-5"` for fast, `"claude-sonnet-4-5"` for complex) | | `thinking` | string | Thinking level: `off`, `minimal`, `low`, `medium`, `high`, `xhigh` | | `extensions` | string[] | Extension paths to load (subagents run with `-ne` — only whitelisted) | | `skills` | string[] | Skill files/dirs to load via `--skill` | | `noTools` | boolean | Disable all built-in tools (`--no-tools`) — for analysis-only agents | | `noSkills` | boolean | Disable skill discovery (`-ns`) | | `cwd` | string | Working directory override |
**Priority:** per-task item > top-level params > agent .md frontmatter > global settings
**Fast recon with cheap model, no thinking overhead:**
{ "agent": "scout", "task": "Map the auth module", "model": "claude-haiku-4-5", "thinking": "off" }**Research task needing web search:**
{ "agent": "worker", "task": "Find pricing for Vercel Pro", "extensions": ["extensions/pi-brave-search"] }**Parallel with different models per task:**
{ "tasks": [
{ "agent": "scout", "task": "Map the codebase", "model": "claude-haiku-4-5" },
{ "agent": "reviewer", "task": "Review the PR diff", "model": "claude-sonnet-4-5", "thinking": "high" }
]
}**Chain with escalating capability:**
{ "chain": [
{ "agent": "scout", "task": "Map the auth module", "model": "claude-haiku-4-5", "thinking": "off" },
{ "agent": "planner", "task": "Plan a refactor based on: {previous}", "thinking": "high" },
{ "agent": "worker", "task": "Implement the plan: {previous}", "thinking": "medium" }
]
}Subagents always run with `--no-extensions` (`-ne`). They cannot:
Whitelist only what a specific task needs via the `extensions` parameter.
Place `.md` files in `~/.pi/agent/agents/` with YAML frontmatter:
--- name: scout description: Fast codebase reconnaissance tools: read, grep, find, ls, bash extensions: extensions/pi-dotenv model: claude-haiku-4-5 --- System prompt for the agent goes here...
| Frontmatter | Description | |-------------|-------------| | `name` | Agent name (required) | | `description` | What the agent does (required) | | `tools` | Comma-separated tool whitelist | | `model` | Default model | | `extensions` | Comma-separated extension paths to load |
This repository is my Pi coding agent home directory. I keep it under version control and symlink it to ~/.pi/agent so Pi loads configuration, extensions, skills, and runtime state from here.
Configure periodic health checks via HEARTBEAT.md and the /heartbeat command.
Manage persistent memory across sessions. Use when asked to remember, recall, forget, or review what was stored. Covers long-term…
Track and manage projects with git status via dashboard and tool.
Audit, generate, update, and lint AGENTS.md files across all projects. Use when asked to check project context files, scaffold…
Draft, edit, and publish blog posts for e9n.dev. Use when creating new posts, editing drafts, or refining existing content.…