How remilianyaa/weavecode works
WeaveCode is a local AI-agent system centered on a long-running core daemon; the CLI and TUI are clients. The main workflow sends a goal or session message over TCP, runs an agent loop that calls a model and tools under permission checks, and returns results while persisting session and event data. The graph also includes documented MCP, skills, subagents, compaction, and trace capabilities. Some subsystem connections follow the README because their implementation was not sampled; uncertain wiring is omitted.
Main entry points: loop.py Agent loop · app.py Core daemon · registry.py Tool registry · socket_client.py Socket client
Components 26
Client interfaces
- CLI
src/weavecode/cli/main.py - Terminal UI
src/weavecode/tui/app.py - Socket client
src/weavecode/core/transport/socket_client.py
Daemon runtime
- Core daemon
src/weavecode/core/app.py - Socket server
src/weavecode/core/transport/socket_server.py - Session manager
src/weavecode/core/session/manager.py - Agent runner
src/weavecode/core/runner.py - Event bus
src/weavecode/core/events/bus.py - Event broadcaster
src/weavecode/core/transport/ipc_broadcaster.py
Agent capabilities
- Agent loop
src/weavecode/core/loop.py - Prompt context
src/weavecode/core/context.py - Tool registry
src/weavecode/core/tools/registry.py - Built-in tools
src/weavecode/core/tools/builtin - Permission manager
src/weavecode/core/permissions/manager.py - Context compactor
src/weavecode/core/compact/compactor.py - Skills loader
src/weavecode/core/skills/loader.py - Subagents
src/weavecode/core/subagent
Persistence
- Trace writer
src/weavecode/core/trace/writer.py - Event writer
src/weavecode/core/events/writer.py - SQLite database
src/weavecode/core/storage/database.py - Session store
src/weavecode/core/session/store.py
External integrations
- LLM provider
src/weavecode/core/llm/provider.py - Model service
- MCP manager
src/weavecode/core/mcp/server.py - MCP servers
Other components
- User
Connections 29
- User → CLI: issues commands
- User → Terminal UI: interacts
- CLI → Socket client: sends RPC
- Terminal UI → Socket client: sends RPC
- Socket client → Socket server: TCP JSON-RPC
- Socket server → Core daemon: dispatches requests
- Core daemon → Session manager: handles session commands
- Session manager → Agent runner: starts runs
- Agent runner → Agent loop: runs agent
- Agent loop → Prompt context: builds prompt
- Prompt context → Skills loader: loads skills
- Agent loop → LLM provider: requests completion
- LLM provider → Model service: calls model
- Agent loop → Tool registry: dispatches tool calls
- Tool registry → Built-in tools: invokes tools
- Agent loop → Permission manager: checks tool access
- Agent loop → Context compactor: compacts context
- Tool registry → Subagents: dispatches subagent tools
- Tool registry → MCP manager: registers MCP tools
- MCP manager → MCP servers: discovers and calls tools
- Session manager → Session store: reads and writes sessions
- Session store → SQLite database: persists data
- Permission manager → SQLite database: loads and saves rules
- Core daemon → Event bus: publishes events
- Event bus → Event broadcaster: pushes events
- Event bus → Event writer: records events
- Event writer → SQLite database: persists events
- Core daemon → Trace writer: records timeline
- Event broadcaster → Socket client: pushes event stream