How omnigentx/jarvis works
Jarvis is a self-hosted, MCP-first AI assistant: a web user chats with a root agent, which can delegate to specialist agents and tools, while sessions and durable memory support later conversations. The Vue dashboard also exposes team activity, approvals, setup, settings, and voice features. The README documents the product-level flows; sampled files support selected internal relationships. Many routes and services are represented at their exact tree paths, but unsampled implementation details and their links are intentionally not inferred.
Main entry points: agent.py Agent definitions · server.py FastAPI server · candidate_service.py Memory candidates · App.vue Vue dashboard
Components 22
Web dashboard
- Vue dashboard
frontend/src/App.vue - API client
frontend/src/api.js - Chat interface
frontend/src/views/ChatView.vue - Voice session
frontend/src/composables/useVoiceSession.js
API and runtime
- FastAPI server
backend/server.py - Chat endpoints
backend/routes/chat.py - Session service
backend/services/session_service.py - SQLite database
backend/core/database.py - Agent activity stream
backend/services/activity_stream.py - Approval service
backend/services/approval_service.py - Messaging gateways
backend/services/gateways/manager.py
Agents and tools
- Agent definitions
backend/agent.py - Dynamic teams
backend/services/dynamic_agents.py - MCP tool servers
backend/tools
Durable memory
- Memory candidates
backend/services/memory/candidate_service.py - Memory service
backend/services/memory/memory_service.py - Memory indexing
backend/services/indexing/memory_index_worker.py - Memory retrieval
backend/services/retrieval/orchestrator.py
Voice interaction
- Voice endpoints
backend/routes/voice.py - Voice engines
backend/services/voice_engine_registry.py
Other components
- User
- External services
Connections 23
- User → Vue dashboard: uses
README.md - Vue dashboard → API client: requests
frontend/src/App.vue - API client → FastAPI server: calls API
- FastAPI server → Agent definitions: loads
backend/server.py - Agent definitions → Dynamic teams: spawns teams
README.md - Agent definitions → MCP tool servers: uses MCP tools
README.md - Agent definitions → Session service: maintains sessions
README.md - Session service → SQLite database: stores state
backend/services/session_service.py - Agent definitions → Memory candidates: proposes memories
backend/services/memory/candidate_service.py - Memory candidates → Approval service: requests approval
backend/services/memory/candidate_service.py - Memory candidates → Memory service: persists approved
backend/services/memory/candidate_service.py - Memory service → Memory indexing: queues indexing
- Memory indexing → Memory retrieval: projects for search
- FastAPI server → Agent activity stream: initializes
backend/server.py - User → Chat interface: chats
README.md - Chat interface → Chat endpoints: submits messages
- Chat endpoints → Agent definitions: runs agent
- User → Voice session: speaks
README.md - Voice session → Voice endpoints: streams audio
frontend/src/composables/useVoiceSession.js - Voice endpoints → Voice engines: dispatches engines
- Voice engines → External services: uses optional providers
backend/services/voice_engine_registry.py - Messaging gateways → Agent definitions: dispatches messages
backend/services/gateways/manager.py - Agent definitions → External services: uses configured LLM
README.md