How felinics/memoh works
Memoh is a multi-agent platform where users configure agents, connect through a web or desktop client or messaging channels, and interact with agents running in persistent cloud workspaces. The central path is client or channel interaction through server-side bot and session orchestration into an agent runtime, which can use workspace capabilities such as files, desktop, browser, network, memory, MCP tools, and schedules. The graph also captures configuration, providers, and workspace dependency management. Some subsystems are represented from README claims and indexed paths; their internal wiring is not inferred where source evidence was unavailable.
Main entry points: handler.go Agent execution · workspace/manager.go Workspace manager · service.go Bot management · session/manager.go Agent sessions
Components 22
User clients
- Web app
apps/web/src/App.vue - Desktop app
apps/desktop/src/renderer/src/main.ts - Messaging channels
cmd/channel/main.go
Agent platform
- HTTP server
internal/server/server.go - Bot management
internal/bots/service.go - Agent sessions
internal/agent/runtime/session/manager.go - Agent execution
internal/command/handler.go - Model providers
internal/providers/service.go - Bot settings
internal/settings/service.go
Workspace runtime
- Workspace manager
internal/workspace/manager.go - Workspace bridge
internal/workspace/bridgesvc/server.go - File operations
internal/handlers/filemanager.go - Container runtime
internal/container/docker/service.go - Workspace networking
internal/network/controller.go - Workspace dependencies
internal/workspacedeps/service.go
Capabilities and services
- Long-term memory
internal/memory/adapters/builtin/ingest.go - Scheduled tasks
internal/schedule/service.go - Agent apps
internal/apps/service.go - Connectors and MCP
internal/connectors/service.go - Persistent data
internal/db/postgres/sqlc/channel_routes.sql.go - Browser and desktop
internal/display/service.go
Other components
- User
Connections 27
- User → Web app: uses
README.md - User → Desktop app: uses
README.md - User → Messaging channels: messages
README.md - Web app → HTTP server: requests
- Desktop app → Web app: reuses UI
apps/desktop/src/renderer/src/main.ts - Messaging channels → HTTP server: reaches server
cmd/channel/main.go - HTTP server → Bot management: routes requests
- Bot management → Persistent data: persists bots
internal/bots/service.go - Bot management → Workspace manager: records workspace intent
internal/bots/service.go - Bot management → Bot settings: configures agent
- Bot management → Agent sessions: starts sessions
README.md - Agent sessions → Agent execution: executes turns
README.md - Agent execution → Model providers: uses models
internal/command/handler.go - Agent execution → Long-term memory: uses memory
README.md - Agent execution → Scheduled tasks: uses schedules
internal/command/handler.go - Agent execution → Connectors and MCP: calls tools
README.md - Agent execution → Agent apps: uses integrations
- Workspace manager → Container runtime: creates containers
internal/workspace/manager.go - Workspace manager → Workspace networking: configures network
internal/workspace/manager.go - Workspace manager → Bot settings: reads settings
internal/workspace/manager.go - Workspace manager → Workspace bridge: gets bridge client
internal/workspace/manager.go - File operations → Workspace bridge: performs file RPCs
internal/handlers/filemanager.go - Workspace dependencies → Workspace bridge: manages workspace tools
internal/workspacedeps/service.go - Agent sessions → Workspace manager: uses workspace
- Agent execution → Browser and desktop: drives browser
README.md - Scheduled tasks → Persistent data: persists schedules
internal/schedule/service.go - Model providers → Persistent data: persists providers
internal/providers/service.go