Your agents.
Your system.
Your rules.

Run multiple custom agents on your own machine — with any LLM, cloud or local.

$ brew install omnideck-dev/tap/omnideck
All install options →
$ brew install omnideck-dev/tap/omnideck
All install options →
Windows installer available — see setup guide.
View Windows setup →
Open source Privacy first Container isolated

Cloud AI agents were designed for vendor convenience, not yours.

  • Your conversations, files, and credentials flow through servers you don't control or audit.
  • You're locked to one model per tool. Switching providers means starting over.
  • One agent fits all — no way to have a coding agent, a research agent, and a writing agent with their own configs.
  • Autonomous background tasks are either expensive add-ons or simply missing.
  • Running a local model like Llama or Mistral? Agent tooling that connects to it barely exists.

Install once. Configure once. Just use it.

The omnideck CLI wraps Docker or Podman and handles everything — install, update, health checks. No YAML archaeology required.

01 — 📦

Pull and run

One CLI command pulls the container and starts Omnideck. The setup wizard walks you through connecting your LLM providers. Everything runs locally — no accounts, no signup, no cloud dependency.

02 — 🤖

Create your agents

Build agent profiles — each with its own system prompt, model, skills, and tool access. A coding agent running on a local Llama model. A research agent on GPT-4o. A writing agent on Claude. All in one UI.

03 —

Put them to work

Chat with any agent. Switch agents mid-conversation. Watch sub-agents spin up and complete tasks in real time. Set recurring background tasks and get notified when they finish.

Omnideck full interface
🧠
Research Agent
claude-sonnet-4-6 · custom prompt · web + memory tools
active
💻
Code Agent ↳ spawned
llama-3.3-70b (local) · strict execution tools only
working
✍️
Summary Agent ↳ spawned
gpt-4o-mini · write + read tools
done
✍️
Writing Agent
gpt-4o · focused system prompt · no browser
idle
🔧
DevOps Agent
qwen3-32b (local) · bash + files · no web
idle

switch agents at any point in the conversation →

One workbench.
As many agents as you need.

Most AI tools give you one generic assistant. Omnideck lets you build a team. Each agent is a fully independent configuration — its own model, system prompt, tool access, memory, and inference parameters. Swap between them in any conversation.

And when a task calls for parallel work, the active agent can spin up sub-agents on the fly — dedicated helpers that run autonomously and report back.

  • Per-agent model selection — mix cloud and local models in the same session
  • Per-agent tool access — lock an agent to only the tools it needs
  • Per-agent system prompts, temperature, and context window settings
  • Switch the active agent mid-conversation without losing context
  • Agents can spawn sub-agents for delegated, parallel workstreams
  • Watch sub-agent turns stream live — every tool call, every result

The right model for every job.

Switch models per agent profile in seconds. Route to a local model for anything sensitive. No vendor lock-in, ever.

per-agent model selection

Cloud and local models, side by side

Point each agent at OpenAI, Anthropic, OpenRouter, Ollama, or any OpenAI-compatible endpoint. Change the model on any agent profile in the settings panel — no restart required.

claude-sonnet-4-6 gpt-4o llama-3.3-70b qwen3-32b mistral-large + any endpoint
smart context management

Long conversations that don't break

When a conversation approaches the model's context limit, Omnideck runs an automatic compaction pass — summarizing history while preserving critical facts. You can even assign a different, cheaper model just for compaction.

context: 87,400 / 96,000 tokens
→ compacting with gpt-4o-mini…
compacted to 12,200 tokens
ready to continue

Every tool an agent needs, already included.

web 🌐

Real browser automation — structural and visual

A persistent, headed browser handles full web automation. Agents navigate via accessibility trees for structured UIs and fall back to screenshot + vision model analysis for anything custom. Sessions, cookies, and auth state persist across tool calls.

→ tool: browse_page "https://news.ycombinator.com"
30 interactive elements found
→ tool: read_page
3,800 tokens of clean markdown
→ tool: remember "top_story" "..."
memory updated
execution 💻

Write and run code — for real

The agent writes files, runs bash commands with full stdout/stderr streaming, installs packages, and sends output files back to the UI. Execution policy controls what it can and can't touch.

→ tool: run_bash_cmd
"python analyze.py"
streaming…
rows: 14,832 | anomalies: 3
output: report.csv
memory 🧠

Facts that survive session resets

Agents store and retrieve keyed facts across conversations. Atomic writes ensure nothing is lost mid-turn. Private keys are hidden from the UI.

integrations 🔗

Gmail, Google Workspace, iCloud, and HTTP APIs

Connect Gmail, Google Workspace (Mail, Calendar, Drive, Contacts), iCloud (email and calendar), or any REST endpoint — each integration isolated in its own broker process, credentials never exposed to the agent.

files 📁

Full filesystem access in the shared space

Read, write, edit, patch, grep, move. Agents work inside the shared file space you define — and only there.

🛡 Omnideck Container (isolated) Agent UI & API server Agent loop + tools Browser automation (headed, isolated) Code execution (policy-controlled)
🔌 Integration Supervisor (isolated process) Credential broker — agent never sees raw keys LLM proxy for brokered providers
🔒 Encrypted Vault API keys & OAuth tokens at rest
📂 Shared file space — you define the boundary
🚫 No access to rest of your filesystem
🚫 No telemetry or tracking
🚫 Agent cannot read the credential vault

The agent is sandboxed. Your system is not its playground.

Omnideck runs entirely inside a container. The agent has no access to your filesystem, processes, or network outside of what you explicitly share. If an agent makes a mistake or goes off-script, the blast radius is the container — not your machine.

Credentials for external services live in an encrypted local vault managed by an isolated supervisor process. The agent itself never handles raw API keys.

  • Container boundary prevents filesystem and process access beyond the shared space
  • Credentials encrypted at rest (AES-256-GCM), never visible to the agent or the LLM
  • Three-UID process model — the agent's OS user literally cannot open the credential vault
  • Execution policy controls which bash commands the agent is allowed to run
  • No outbound connections to tracking servers — your data stays on your machine

Set it. Forget it.
Get notified.

Define goals with ordered task lists and recurring schedules. The task engine runs them in the background, using the same agent loop and tool access as interactive conversations. When a run completes — or fails — you get a notification with output files attached.

  • Cron-style or one-off scheduling with full timezone support
  • Concurrent goal execution with configurable limits
  • Crash-safe: tasks stuck in "running" reset automatically on restart
  • Full goal, run, and result history persisted to disk
⚡ task runner — 2 active
daily-digest 08:00 UTC
competitor-scan running…
backup-export ✓ completed
weekly-summary fri 09:00
monitor-uptime ✓ completed
📬 "competitor-scan done — 3 new findings. report.pdf attached."
"You shouldn't have to choose between a capable AI agent and owning your own data. Omnideck is the workbench that doesn't make you pick."

Your agents. Your models.
Your machine.

Omnideck is open source and free to run. Pull the container, connect your LLMs, and have your first agent working in under five minutes.