26 lines
1.2 KiB
Markdown
26 lines
1.2 KiB
Markdown
# Pi vs CC — Extension Playground
|
|
|
|
## Infrastructure Access
|
|
**Always read `.claude/infra.md` at the start of every session** — it contains live credentials and connection details.
|
|
To set up: copy `.claude/infra.md.example` → `.claude/infra.md` and fill in real values.
|
|
**Team distribution**: share the real file via 1Password shared vault (or `age`-encrypted blob, never git).
|
|
|
|
Pi Coding Agent extension examples and experiments.
|
|
|
|
## Tooling
|
|
- **Package manager**: `bun` (not npm/yarn/pnpm)
|
|
- **Task runner**: `just` (see justfile)
|
|
- **Extensions run via**: `pi -e extensions/<name>.ts`
|
|
|
|
## Project Structure
|
|
- `extensions/` — Pi extension source files (.ts)
|
|
- `specs/` — Feature specifications
|
|
- `.pi/agents/` — Agent definitions for agent-team extension
|
|
- `.pi/agent-sessions/` — Ephemeral session files (gitignored)
|
|
|
|
## Conventions
|
|
- Extensions are standalone .ts files loaded by Pi's jiti runtime
|
|
- Available imports: `@mariozechner/pi-coding-agent`, `@mariozechner/pi-tui`, `@mariozechner/pi-ai`, `@sinclair/typebox`, plus any deps in package.json
|
|
- Register tools at the top level of the extension function (not inside event handlers)
|
|
- Use `isToolCallEventType()` for type-safe tool_call event narrowing
|