How lkarlslund/koder works
Koder is a local-first coding and computer-use agent. A user works through the browser workspace: the web server routes session and chat actions to the app controller and agent; the agent conducts model-backed turns and invokes approved tools, whose results return to the chat. Sessions also support planning and persistent memory. Major side capabilities include shared Chrome automation, MCP extensions, and Android voice calls. The README documents the broad workflow; sampled source excerpts confirm selected storage, controller, browser, MCP, execution, and Android-service details, so uncertain internal wiring is omitted.
Main entry points: runtime.go Tool Runtime · server.go Browser UI · controller.go App Controller · agent.go Agent Engine
Components 21
Workspace
- Browser UI
internal/webui/server.go - App Controller
internal/app/controller.go - Android Voice
clients/android/app/src/main/kotlin/com/lkarlslund/koder/voice/VoiceCallService.kt
Agent Runtime
- Agent Engine
internal/agent/agent.go - Chat Turns
internal/chat/model_loop.go - Model Runtime
internal/modelruntime/runtime.go
Agent Capabilities
- Tool Runtime
internal/toolruntime/runtime.go - Repository Tools
internal/tools/all/all.go - Command Execution
internal/execruntime/manager.go - Planning Board
internal/planning/planning.go - Persistent Memory
internal/memory/service/service.go
Session State
- Sessions and Chats
internal/session/session.go - Local Persistence
internal/store/store.go - Workspace State
internal/workspace/status.go
Integrations
- Chrome Automation
internal/browser/manager.go - MCP Extensions
internal/mcp/manager.go - Voice Service
internal/voice/coordinator.go
Other components
- User
- Model Provider
- Chrome
- MCP Servers
Connections 21
- User → Browser UI: interacts
- Browser UI → App Controller: routes actions
- App Controller → Agent Engine: starts turns
- Agent Engine → Chat Turns: manages chats
- Chat Turns → Model Runtime: prepares requests
- Model Runtime → Model Provider: sends prompts
- Model Provider → Model Runtime: streams responses
- Agent Engine → Tool Runtime: dispatches tools
- Tool Runtime → Repository Tools: provides tools
- Repository Tools → Command Execution: runs commands
- App Controller → Sessions and Chats: manages sessions
- Sessions and Chats → Local Persistence: persists records
- Tool Runtime → Planning Board: updates plans
- Tool Runtime → Persistent Memory: uses memory
- Browser UI → Workspace State: shows repository state
- Tool Runtime → Chrome Automation: invokes browser
- Chrome Automation → Chrome: controls browser
- Tool Runtime → MCP Extensions: invokes extensions
- MCP Extensions → MCP Servers: connects tools
- Android Voice → Voice Service: streams audio
- Voice Service → Model Provider: uses voice models