How behzade/farcaster works
Farcaster is a native, keyboard-first workspace that coordinates existing coding-agent harnesses alongside per-session editor and terminal workflows. Users compose prompts in the desktop app, run them through a shared runtime and harness-specific adapters, then review streamed conversation and code changes. The README also documents project/session management, Neovim context and review, and optional MCP tools for workers and persistent workgraphs. The tree and excerpts establish the main subsystems; some detailed runtime wiring was not sampled, so the graph omits uncertain internal links.
Main entry points: app/mod.rs Workspace UI · runtime/mod.rs Session runtime · lib.rs Optional MCP server · adapter/mod.rs Harness adapters
Components 20
Desktop workspace
- Workspace UI
src/app/mod.rs - Prompt composer
src/app/composer/submissions.rs - Editor and terminal
src/app/infrastructure/editor_launch.rs
Agent execution
- Session runtime
crates/runtime/src/runtime/mod.rs - Run supervisor
crates/runtime/src/runtime/supervisor.rs - Worker pool
crates/agents/src/core/pool.rs - Harness adapters
crates/agents/src/adapter/mod.rs - Conversation stream
crates/conversation/src/lib.rs
Project context
- Project management
crates/projects/src/lib.rs - Repository context
crates/repository/src/lib.rs - Access controls
crates/access/src/lib.rs
Sessions and state
- Session catalog
crates/sessions/src/lib.rs - Persistent state
crates/storage/src/lib.rs
Coordination tools
- Optional MCP server
crates/mcp-server/src/lib.rs - Worker coordination
crates/mcp-server/src/workers.rs - Persistent workgraph
workgraph/src/application.rs - Review artifacts
crates/reviews/src/lib.rs
Other components
- User
- Agent harnesses
- Neovim
Connections 25
- User → Workspace UI: interacts
- Workspace UI → Prompt composer: opens composer
- Prompt composer → Session runtime: submits prompt
- Session runtime → Run supervisor: coordinates runs
- Run supervisor → Worker pool: dispatches work
- Worker pool → Harness adapters: creates workers
- Harness adapters → Agent harnesses: launches sessions
- Harness adapters → Conversation stream: emits events
- Session runtime → Workspace UI: publishes updates
- Workspace UI → Project management: manages projects
- Project management → Repository context: uses repository
- Workspace UI → Session catalog: selects sessions
- Session catalog → Persistent state: persists session data
- Session runtime → Persistent state: stores runtime state
- Workspace UI → Editor and terminal: opens session tools
- Editor and terminal → Neovim: opens editor
- Neovim → Workspace UI: sends context
- Workspace UI → Optional MCP server: enables optionally
- Optional MCP server → Worker coordination: dispatches tools
- Worker coordination → Worker pool: coordinates workers
- Optional MCP server → Persistent workgraph: invokes workgraph
- Optional MCP server → Review artifacts: records reviews
- Review artifacts → Neovim: presents review
- Session runtime → Access controls: applies access mode
- Workspace UI → Conversation stream: displays transcript