How encyc/zen-agent works
ZenAgent is a Python coding-agent kernel driven through terminal, headless, RPC/SDK, and Tauri desktop surfaces. A typical request enters through a surface, reaches the shared runtime and agent loop, then uses a provider and tools; events and transcript views carry results back, while sessions preserve history. The README also documents extensions, MCP, subagents, and Taiji. Several of these capabilities are represented by their existing implementation paths, but their internal wiring was not sampled, so uncertain links are omitted. Our source evidence is limited to the README and indexed excerpts/references.
Main entry points: loop.py Agent Loop · runtime.py Runtime Setup · server.py RPC Server · session.py Session Files
Components 20
User Surfaces
- CLI & TUI
zenagent/cli/main.py - RPC Server
zenagent/cli/rpc/server.py
Agent Runtime
- Runtime Setup
zenagent/app/runtime.py - Agent Loop
zenagent/agent/loop.py - Event Protocol
zenagent/events.py - Provider Adapters
zenagent/providers/openai_completions.py - Provider Catalog
zenagent/providers/catalog.py - Shared Data Types
zenagent/types.py
Tools & Extensions
- Built-in Tools
zenagent/tools - Subagents
zenagent/agent/subagents_runtime.py - MCP Servers
zenagent/mcp/manager.py - Extensions
zenagent/extensions.py - Taiji Workflows
zenagent/app/taiji
Sessions & Views
- Session Lifecycle
zenagent/app/sessions.py - Session Files
zenagent/agent/session.py - Transcript Views
zenagent/app/views.py
Desktop Client
- Desktop App
desktop/src/App.tsx - RPC Client
desktop/src/rpc/client.ts
Other components
- User
- Model APIs
Connections 22
- User → CLI & TUI: drives
README.md - User → Desktop App: uses
README.md - User → RPC Server: drives
README.md - CLI & TUI → Runtime Setup: prepares runtime
zenagent/cli/main.py - RPC Server → Runtime Setup: serves requests
- Desktop App → RPC Client: issues requests
desktop/src/App.tsx - RPC Client → RPC Server: uses protocol
README.md - Runtime Setup → Agent Loop: creates session
zenagent/app/runtime.py - Agent Loop → Provider Adapters: requests completions
zenagent/agent/loop.py - Agent Loop → Provider Catalog: resolves provider
zenagent/agent/loop.py - Provider Adapters → Model APIs: sends requests
- Agent Loop → Event Protocol: emits events
zenagent/agent/loop.py - Agent Loop → Built-in Tools: executes calls
zenagent/agent/loop.py - Agent Loop → Subagents: delegates tasks
- Agent Loop → MCP Servers: registers tools
zenagent/mcp/manager.py - Runtime Setup → Extensions: loads extensions
zenagent/app/runtime.py - Runtime Setup → Taiji Workflows: sets up workflows
zenagent/app/runtime.py - Runtime Setup → Session Files: uses session
zenagent/app/runtime.py - Session Lifecycle → Session Files: browses and changes
zenagent/app/sessions.py - Session Files → Shared Data Types: serializes messages
zenagent/agent/session.py - Transcript Views → Event Protocol: updates from events
zenagent/app/views.py - RPC Server → Transcript Views: serves view data
zenagent/cli/rpc/server.py