How wht981/pi works
Pi is a self-extensible coding-agent project: users interact through a CLI, which coordinates agent sessions, model access, tools, and session state. The agent runtime supplies tool-calling and state management; the AI package provides a unified interface to multiple model providers. The tree also shows extension and remote-session capabilities. Several subsystem links are based on package descriptions and module layout rather than sampled call sites, so the graph omits uncertain wiring; persistence alternatives are shown as separate backends.
Main entry points: agent-session.ts Agent session · cli.ts Coding-agent CLI · model-runtime.ts Model runtime · session-manager.ts Session manager
Components 19
User interface
- Coding-agent CLI
packages/coding-agent/src/cli.ts - Interactive mode
packages/coding-agent/src/modes/interactive - RPC client
packages/client/src/client.ts
Agent runtime
- Agent session
packages/coding-agent/src/core/agent-session.ts - Agent runtime
packages/agent/src/harness/runtime - Remote sessions
packages/server/src/session-router.ts
Models and auth
- Model runtime
packages/coding-agent/src/core/model-runtime.ts - Unified AI API
packages/ai/src - Model providers
packages/ai/src/providers - Provider auth
packages/ai/src/auth
Session state
- Session manager
packages/coding-agent/src/core/session-manager.ts - JSONL storage
packages/agent/src/harness/session/jsonl/storage.ts - SQLite storage
packages/session-backends/sqlite-node/src/sqlite/storage.ts
Tools and extensions
- Agent tools
packages/coding-agent/src/core/tools/index.ts - Extensions
packages/coding-agent/src/core/extensions
Other components
- User
- External model services
- Project files
- Shell process
Connections 18
- User → Coding-agent CLI: invokes
- Coding-agent CLI → Interactive mode: starts
- Coding-agent CLI → Agent session: creates session
- Interactive mode → Agent session: sends input
- Agent session → Agent runtime: runs agent
- Agent session → Model runtime: uses models
- Model runtime → Unified AI API: requests completion
- Unified AI API → Model providers: dispatches
- Model providers → External model services: calls model
- Model runtime → Provider auth: resolves credentials
- Agent runtime → Agent tools: dispatches tools
- Agent tools → Project files: reads and writes
- Agent tools → Shell process: executes commands
- Agent session → Extensions: loads extensions
- Agent session → Session manager: manages state
- Session manager → JSONL storage: persists session
- Session manager → SQLite storage: persists session
- RPC client → Remote sessions: routes session calls