Secure runtime & MCP Orchestrator.
Two pieces, one harness. aido-runtime executes typed actions under policy. aido-orchestrator is the agent loop & MCP gateway. One plug, full sandbox surface.
propose → simulate → execute, never raw shell.
$ curl -fsSL https://x0ne.co/aido/install.sh | sh
$ git clone https://github.com/x0ne-labs/aido-runtime &&
cd aido-runtime &&
make install
Pick an action to see two execution paths, side by side.
The 14 native tools the orchestrator adds on top of the runtime — plan ledger, pre-execution simulate, persistent goals.
Agents execute raw bash.
Mistakes, hallucinations, dataset poisoning can be dangerous.
SWE-Bench Pro shows a 22-point swing between the same model with a basic scaffold vs. an optimized harness.
The model will be commodity.
The harness determines success.
Default deny. Directory whitelists. Command whitelists. Deny patterns. Path traversal prevention. Confirmation mode. Snapshots before every mutation.
Every action is matched against policy rules before execution. rm -rf /, exfiltration, privilege escalation — blocked by pattern, not by luck.
Not bolted on. Built in.
aido_simulate — pre-flight any multi-step plan. The runtime returns per-step allow / deny / confirm decisions plus the full side-effect inventory before any I/O happens. The "EXPLAIN before run" primitive for agents.aido_plan, aido_simulate, aido_plan_execute). Optionally, the runtime spawns inside an Incus / Podman container — same MCP surface, full kernel-level sandbox.localhost:7800 via a loopback reverse-proxy; no network port, no host copy, dies with the sessionaido-runtime + aido-orchestrator), zero runtime dependencies — open source (Apache 2.0): auditable, forkable, improvableEvery box below is a typed action. The LLM emits one as JSON ({"type":"…"}) and the runtime executes it under policy. Composite actions (Pipeline, Try, If) chain N primitives in a single round-trip. Custom DefinePrimitive lets the LLM build its own reusable composites at runtime. The last category — MCP gateway primitives — only appears when the client plugs aido-orchestrator --mcp as the gateway (vs. plugging aido-runtime directly).
aido_plan for the full propose → simulate → review → execute safety loop.
~/.aido/goals/ — Claude Code on Tuesday, Codex on Thursday, both see the same active goal with step count, budget, and optional auto-check. Codex got a /goal; AIDO makes it portable.
Message struct, three native serializers. Vision per backend (multi-part blocks / images array / data-URL blocks). Locked by 13 integration tests.SpawnAgent / WaitAgent / ListAgents / BroadcastAgents. Sub-agents share the LLM connection pool with isolated conversations. Broadcast returns structured receipts (delivered_to, failed_targets with reasons).loop_detected, dispatch blocked (retryable: false). Counter resets on success or args/error change. Stops runaway agents at the harness layer.args / input / parameters / arguments / payload field-wrappers commonly emitted by Mistral 7B and other small local models. One-shot deprecation nudge per session — canonical format remains the contract.validation_error now ships sent, expected_schema, and a natural-language diff. Drops LLM repair-cycles from 3-4 turns to 1.cache_control: ephemeral on the last user message. UsageTracker reports cache reads / writes separately. ~90% cheaper after the first call on prefix-stable conversations.{total, ok, failed, failed_at}. Each step is tagged source: "core" | "orchestrator". ActionStats exposes a by_source breakdown.Plan calls can no longer silently self-approve. Each decision is logged with decision_source (tty_yes / tty_enter_default / env_auto_approve / rejected_non_interactive) for audit.~/.config/Claude/claude_desktop_config.json.mcp.json (project) or ~/.claude/settings.json.cursor/mcp.json or global MCP settings~/.continue/config.json → mcpServerscontext_serversTwo ways to plug AIDO. Same wire format, different surface.
① Runtime direct — the typed-action surface only. ~125 tools (filesystem, exec, git, math, snapshots, desktop, …). Simplest path.
② Orchestrator gateway — adds 5 native sysaicalls (aido_plan, aido_simulate, aido_plan_execute, aido_list_agents, aido_orchestrator_info) and proxies the runtime surface beneath. The propose → simulate → execute safety loop, plus optional sandbox isolation via --downstream-prefix.
③ Gateway + Incus sandbox — same gateway, but the runtime spawns inside an Incus container. Same MCP surface to the LLM client; full kernel-level isolation underneath. Works with Podman / SSH / any process-launcher via --downstream-prefix.
Tip: pair option ② or ③ with a hardened readonly TOML (e.g. aido-runtime-mcp-readonly.toml in the repo) and the LLM gets a sandbox-isolated, policy-checked execution surface from a single MCP plug.
If your team uses Cursor, Claude Code, or MCP tools in production workflows, agent actions hit your infrastructure without guardrails.
AIDO sits between the model and your systems — adding policy enforcement, human approvals, and a full audit trail to every action.
We run a 2-week pilot with your team to integrate AIDO into your existing stack. No commitment, no vendor lock-in — it's open source.
Book a 30-min intro →