AEGIS OS · TUTORIAL · 2026

Install to your first
multi-agent task

This tutorial is for a first-time Aegis OS user. By the end you will have an isolated agent workspace, an approved memory access, a revocable A2A task, and an audit trail you can inspect.

Estimated time: 10–15 minutes. macOS / Linux only; Windows is not supported.

00 / PREPARE

Prepare

You need:

  • macOS or Linux terminal
  • Homebrew
  • A coding agent: Claude Code, Codex CLI, or AGY
  • A Markdown / Obsidian vault (optional, for memory consent)

Windows is not supported. Do not put real production credentials in the sample workspace; use a local temporary project for this tutorial.

01 / INSTALL

Install Aegis OS

# Add the Heurion tap and install
brew tap heurion-org/aegis-os https://github.com/heurion-org/aegis-os.git
brew trust heurion-org/aegis-os
brew install aegis-os

# Wire AGY / Claude Code / Codex (run once)
aegis-os install

# Verify
aegis-os --version
aegis-os doctor

After Homebrew installs the binary, run aegis-os install once to wire Aegis OS into agy, claude, and codex; doctor should then pass.

Without Homebrew: download the platform binary from GitHub Releases or build with cargo install --path crates/aos-cli. Then run aegis-os install.

02 / FIRST RUN

Connect an agent

Enter a project directory and launch your agent directly:

# Pick one
claude
codex
agy

Aegis OS hooks attach the runtime automatically. It starts silently in Free Local CoW mode by default, and you can switch to Cloud mode anytime:

ModeWhat it means & entry point
LocalFree local mode (default): CoW shadow workspace + native OS sandbox, ready immediately with zero setup prompts.
CloudRemote 64GB Linux btrfs runtime (0% local CPU/RAM load): supports both a free tier (aegis-os cloud up) and Pro ($29/mo, 8 parallel Agents). Open the Aegis Cloud Console (/aegis-cloud/dashboard) → or run aegis-os cloud subscribe --plan pro --wait.

You can switch later by telling the agent “switch to Local mode” or “switch to Cloud mode”.

Verify isolation & boundary approval

Ask the agent to modify a file, then run:

aegis-os workspace status
aegis-os workspace diff

The change lands in the CoW shadow workspace first and is not written to the host until workspace_commit. When workspace_commit runs, Aegis OS auto-opens the web approval console (/approve) and auto-resumes once approved, or you can run aegis-os approve (alias: aos approve) in terminal.

03 / MEMORY CONSENT

Memory consent: only the approved scope

UOMP is the memory consent protocol enforced by Aegis OS. First write the client bridge profile and import notes:

aegis-os memory setup claude --vault ~/Notes

This command:

  • imports Markdown notes (base tag notes by default; use --tag)
  • starts the local memory server in the background (default 127.0.0.1:9374)
  • writes the Claude Desktop / Cursor / OpenCode MCP config
  • issues no token and grants no access

Restart the client, then ask the agent to read notes:

# In Claude / Cursor / OpenCode
List the notes under notes/projects

The first tool call creates a consent request. Aegis OS opens a local consent page automatically (127.0.0.1:9375); select the tags / keys to grant, then click Allow selected. No second terminal is required.

# If the browser did not open automatically, start the consent UI manually
aegis-os memory ui

# CLI fallback
aegis-os memory pending
aegis-os memory approve <request-id>

The page shows the request id, agent, task id (if any), session id, and expiry. After approval the current call continues; a denial returns an error.

High-sensitivity data is not opened by a tag scope. The consent page lists specific keys separately, and you must select each key; an agent cannot approve its own request.

Verify

aegis-os memory sessions
aegis-os memory audit --limit 20

You should see the session scope, expiry, and allow / deny audit events.

04 / MULTI-AGENT

Multi-agent / A2A

Aegis OS uses Google A2A as the agent-to-agent collaboration bus. Create a stateful task:

aegis-os ipc request \
  --to worker \
  --subject "Review auth module" \
  --message "Read the auth module and report risks"

Inspect tasks:

aegis-os a2a board
aegis-os a2a show <task-id>

board shows task, state, from → to, age, flags, and subject. input-required is pinned with BLOCKED; a task whose assignee disappeared is marked STALE.

Task-scoped lease

If a task needs temporary auto-commit permission, bind a lease to it:

aegis-os policy lease \
  --action-pattern workspace_commit \
  --ttl-secs 3600 \
  --task-id <task-id>

The output contains "kind": "task_scoped" and task_id. When the task reaches a terminal state the lease is revoked; the same agent cannot reuse task A's lease for task B.

If you use a custom --runtime-dir, pass the same runtime directory to all a2a / policy / memory revoke commands.

05 / REVOKE & AUDIT

Revoke and audit

Inspect and revoke a memory session:

aegis-os memory sessions
aegis-os memory revoke <session-id>

After revocation:

  • the next memory request returns 401 SESSION_NOT_ACTIVE
  • if the session is bound to an A2A task, the task moves to input-required (marked BLOCKED)
  • the audit records the revoke event and task id
aegis-os memory audit --limit 20
aegis-os a2a board

If a task reaches a terminal state through the gateway (for example tasks/cancel), Aegis OS calls the memory server's revoke-by-task endpoint and revokes that task's memory sessions automatically.

06 / TROUBLESHOOT

Troubleshooting

ProblemFix
Client does not show Aegis OS toolsRun aegis-os doctor; restart the client; check the MCP config.
Agent waits for approval foreverCheck whether the consent page opened automatically; if not, run aegis-os memory ui. CLI fallback: aegis-os memory pending, then approve / deny.
Port 9374 is in useaegis-os memory stop; or aegis-os memory setup claude --listen 127.0.0.1:9380.
Port 9375 for the consent page is in useRun aegis-os memory ui --listen 127.0.0.1:9376 --url http://127.0.0.1:9374; or stop the process using 9375.
SESSION_NOT_ACTIVEThe session expired or was revoked; make a new request, or run aegis-os memory connect claude --scope notes/projects.
ACCESS_DENIEDThe key/tag is outside the approved scope; inspect the consent request and aegis-os memory audit.
Task does not change with a custom runtimePass the same --runtime-dir to a2a / memory revoke.
WindowsNot supported; use macOS or Linux.