How tim5wang/godex works
GoDex is a local-first AI agent workspace whose entry points share session and execution capabilities. A typical user submits a chat through the Web workspace or another channel; the backend manages a session and agent turn, which can call model providers and governed tools, then returns results to the session timeline. Distinct product branches include long-running task and subagent orchestration, memory and history, automation, and workspace management. The README documents broad capability sharing; sampled source confirms selected route, persistence, and configuration behavior, but not every runtime connection.
Main entry points: runtime.go Agent runtime · backend.go Backend service · httpapi.go HTTP API · runner.go Conversation engine
Components 26
Entry surfaces
- Web workspace
ui/web/src/App.tsx - CLI / TUI
cmd/godex/main.go - IM channels
internal/runtime/channels/channels.go - HTTP API
internal/runtime/httpapi/httpapi.go
Agent execution
- Backend service
internal/services/backend/backend.go - Agent runtime
internal/agent/runtime.go - Conversation engine
internal/core/conversation/runner.go - Model providers
internal/core/providers/providers.go - Tool execution
internal/toolruntime/runtime.go - Permissions & safety
internal/toolruntime/permissions.go - Long tasks
internal/agent/longtask.go - Subagents & workflows
internal/agent/subagent_run.go
Workspace capabilities
- Workspace files
internal/platform/workspacefs/workspacefs.go - Notes
internal/core/notes/notes.go - Skills & packages
internal/core/packages/packages.go - Agent templates
internal/core/templates/manager.go
Runtime platform
- Session state
internal/sessionstore/store.go - Memory & recall
internal/core/memory/manager.go - History search
internal/services/historysearch/service.go - Configuration
internal/core/config/manager.go
Operations
- Cron & heartbeat
internal/runtime/cron/service.go - Node registry & relay
internal/services/noderegistry/registry.go - Usage tracking
internal/services/usage/service.go - Plugin runtime
internal/pluginrt/manager.go - Taskboard
internal/plugins/taskboard/routes.go
Other components
- User
Connections 27
- User → Web workspace: uses
- User → CLI / TUI: uses
- User → IM channels: messages
- Web workspace → HTTP API: requests
- CLI / TUI → Backend service: submits turns
- IM channels → Backend service: shares sessions
- HTTP API → Backend service: serves operations
- Backend service → Agent runtime: runs turns
- Agent runtime → Conversation engine: executes dialogue
- Conversation engine → Model providers: requests completions
- Agent runtime → Tool execution: dispatches tools
- Tool execution → Permissions & safety: checks permissions
- Agent runtime → Session state: persists session
- Agent runtime → Memory & recall: uses memory
- Backend service → History search: searches history
- Agent runtime → Long tasks: runs long tasks
- Agent runtime → Subagents & workflows: delegates work
- Agent runtime → Workspace files: works in workspace
- Agent runtime → Agent templates: uses profiles
- Agent runtime → Skills & packages: uses capabilities
- Backend service → Notes: manages notes
- Cron & heartbeat → Backend service: triggers work
- Backend service → Node registry & relay: observes nodes
- Conversation engine → Usage tracking: records usage
- Backend service → Plugin runtime: manages plugins
- Taskboard → Backend service: dispatches execution
- HTTP API → Configuration: updates settings