System context
This page describes Eigin at the system level. For implementation details on a specific platform, see iOS Implementation.
The pieces
flowchart LR
User["<b>User</b>"]
subgraph Device["User device"]
Chat["<b>Chat</b><br/>messages, input,<br/>interaction modes"]
Agent["<b>Agent</b><br/>identity, knowledge,<br/>chats, skills, intents"]
Gatekeeper["<b>Gatekeeper</b><br/>per-turn context<br/>+ pre/post-processing"]
Storage["<b>Storage</b><br/>chats, knowledge,<br/>intents, settings"]
Voice["<b>Voice</b><br/>dictation, TTS,<br/>live call"]
OS["<b>OS APIs</b><br/>calendar, reminders,<br/>location, microphone"]
ToolsMCP["<b>Tools & MCP</b><br/>built-in tools<br/>+ MCP clients"]
LocalModel["<b>Local model</b><br/>on-device,<br/>hardware accelerated"]
end
CloudModel["<b>Cloud models</b><br/>OpenAI, Anthropic,<br/>Google, Mistral, etc."]
Relay["<b>Eigin Relay</b><br/>(optional)"]
MCPServers["<b>MCP servers</b><br/>third-party"]
User --- Chat
Chat --- Voice
Chat --- Agent
Chat --- Storage
Voice -.- OS -.- ToolsMCP
Storage --- Agent
Agent --- ToolsMCP
Agent --- Gatekeeper
Gatekeeper --- LocalModel
Gatekeeper --- CloudModel
ToolsMCP --- Relay
ToolsMCP --- MCPServers
classDef eigin min-width:160px
class Chat,Agent,Gatekeeper,Storage,Voice,ToolsMCP,LocalModel eigin
Chat
Where the user meets the agent. A chat is a persistent sequence of messages; the user can type directly or dictate through the voice subsystem. Chats live in storage and can be grouped into spaces. See Conversation.
The agent
A persistent AI personality with its own identity, knowledge, conversation history, and goals. A device runs one agent at a time. See The Agent.
Gatekeeper
Sits between the agent and the inference provider. Hydrates each turn with dynamic context (skills, intents, interaction mode, space, hints) and is the seam for future input/output safety work. See The gatekeeper.
Storage
Chats, knowledge, intents, settings, and provider configuration live on the device.
Voice
The voice subsystem handles on-device speech recognition, text-to-speech, and a half-duplex live call mode for hands-free conversation. See Voice.
Tools and MCP
Tools are how the agent acts - built-in tools that integrate with the OS and internet, and MCP clients that connect to external servers. Both flow through the same permission model. See Tools and MCP servers.
Inference providers
The agent calls one of two kinds of provider:
- Cloud: any OpenAI-compatible API. The user supplies the key.
- Local: a hardware-accelerated on-device model. No key, no network.
See Inference providers.
Eigin Relay
An optional connectivity service operated by Eigin, used for features that need third-party API keys the app can't ship. See Eigin Relay.