How can1357/oh-my-pi works
OMP is a coding agent with IDE-oriented tools, model/provider support, persistent sessions, and native Rust capabilities. The principal workflow is a user request handled by the agent, which uses tools to inspect or change a workspace and returns results; sessions preserve work across turns. The README also documents code execution, LSP, debugging, stream rules, and subagents. Several of those feature paths are represented by their existing enclosing source directories because their implementation files were not sampled; those relationships are documented rather than source-verified.
Main entry points: agent-loop.ts Agent loop · tools Agent tools · stream.ts Model streaming · src Coding agent
Components 18
Agent runtime
- Coding agent
packages/coding-agent/src - Agent loop
packages/agent/src/agent-loop.ts - Stream rules
packages/agent/src - Subagents
packages/coding-agent/src/task
Models and auth
- Model streaming
packages/ai/src/stream.ts - Credential storage
packages/ai/src/auth-storage.ts - Model catalog
packages/catalog/src/model-manager.ts
Workspace tools
- Agent tools
packages/coding-agent/src/tools - Edit engine
crates/pi-edit/src/engine.rs - Shell execution
crates/pi-shell/src/shell.rs - Output minimizer
crates/pi-shell/src/minimizer/engine.rs - Code execution
packages/coding-agent/src
Session state
- Session storage
packages/coding-agent/src/session/session-storage.ts - Session indexing
packages/coding-agent/src/session/indexed-session-storage.ts - Context compaction
packages/agent/src/compaction
IDE capabilities
- LSP operations
crates/pi-natives/src - Debugger operations
crates/pi-natives/src
Other components
- User
Connections 18
- User → Coding agent: requests work
- Coding agent → Agent loop: runs turns
- Agent loop → Model streaming: requests models
- Agent loop → Agent tools: invokes tools
- Agent tools → Edit engine: applies edits
- Agent tools → Shell execution: runs commands
- Shell execution → Output minimizer: filters output
- Agent loop → Session storage: persists sessions
- Session storage → Session indexing: indexed by
packages/coding-agent/src/session/indexed-session-storage.ts - Agent loop → Context compaction: compacts context
- Model streaming → Credential storage: uses credentials
- Model streaming → Model catalog: selects models
- Agent loop → Code execution: executes code
- Code execution → Agent tools: calls tools
- Agent tools → LSP operations: uses IDE services
- Agent tools → Debugger operations: controls debugger
- Agent loop → Stream rules: applies rules
- Agent loop → Subagents: delegates tasks