Maka

Local-first desktop AI workbench — sessions, tools, permissions, recovery

Maka Local-first desktop AI workbench — sessions, tools, permissions, recovery Electron app + packages/runtime trust boundary You · desktop user · Architecture component You desktop user Desktop UI · React renderer · Electron app + packages/runtime Desktop UI React renderer Main Process · Electron IPC · Electron app + packages/runtime Main Process Electron IPC SessionManager · public runtime API · Electron app + packages/runtime SessionManager public runtime API AgentRun · turn + recovery · Electron app + packages/runtime AgentRun turn + recovery ModelAdapter · stream + usage · Electron app + packages/runtime ModelAdapter stream + usage Model Providers · AI SDK / Ollama · Architecture component · API keys local Model Providers AI SDK / Ollama API keys local Bots & Gateway · Telegram · Feishu · HTTP · Architecture component Bots & Gateway Telegram · Feishu · HTTP Permission · policy engine · Electron app + packages/runtime › trust boundary · fail-closed Permission policy engine fail-closed Local Storage · userData JSONL · Electron app + packages/runtime › trust boundary Local Storage userData JSONL ToolRuntime · validate · abort · Electron app + packages/runtime ToolRuntime validate · abort Local Tools · Read · Write · Bash · Architecture component Local Tools Read · Write · Bash IPC turn stream Legend External Frontend Backend Cloud Security Database Message bus

Desktop surfaces

  • • apps/desktop: renderer, preload, main process
  • • Settings for models, bots, search, gateway, permissions
  • • Bots and open gateway share SessionManager as the public API

Runtime kernel

  • • SessionManager → AgentRun → AiSdkBackend
  • • ModelAdapter normalizes provider streams and usage
  • • ToolRuntime owns tool validation, abort, and telemetry

Local & privacy

  • • Sessions and credentials live under Electron userData
  • • Write/Bash and risky ops go through the permission engine
  • • Renderer never sees plaintext secrets — only masked status