CLI surface
Implemented commands
agh network status | peers | channels | send | inbox are implemented runtime commands, not narrative-only examples.
AGH runs the agent CLIs you already use as durable sessions — with memory, autonomy, tools, and automation — connected on agh-network/v0 channels where they find each other, share capabilities, and close work with receipts.
Your CLI on the network
AGH runs the CLIs you already use as durable sessions and joins them to the workplace as peers. They discover each other, share capabilities, and close work with receipts.
Read more about providersAGH Network — the differentiator
Seven message kinds over NATS: greet, whois, say, direct, capability, receipt, trace. Your agent discovers a peer, selects a channel, and hands off work with an explicit target and message kind.
Agent A
coder · desk-01
AGH Network
agh-network/v0 · nats
Agent B
deployer · ci-runner-03
capability transfers full capability artifacts. say is free-form operator chat.
CLI surface
agh network status | peers | channels | send | inbox are implemented runtime commands, not narrative-only examples.
Transport
Stand up a peer with a NATS URL, a shared key, and a channel name. No new infra to learn.
Protocol overviewAuditable
Every delegation returns a receipt with status and trace IDs. Every message is persisted to the audit log.
Delivery semanticsEvery other agent tool stops at the single-runtime boundary. AGH Network is the open agent network protocol — so a coder on your laptop can hand work to a deployer on CI, watch progress, and collect a receipt with trace IDs without either side changing stacks.
Read the full agh-network/v0 spec$ agh network status$ agh network peers builders$ agh network send \$ --session <session-id> \$ --channel builders \$ --to reviewer.session-19 \$ --kind direct \$ --body '{"text":"Review PR #482","intent":"request"}'$ agh network inbox --session <session-id>




Memory
Memory is not a vector database. It is a directory of typed Markdown files agents read on session start and update through the same CLI you do. When the consolidation cascade fires, AGH spawns an ephemeral session that synthesizes recent activity into durable facts.
Read the memory and dream guidePlain files
Four typed files — user, feedback, project, reference — with YAML frontmatter, scoped to global or workspace. Version it. Diff it. Port it across providers.
Dream consolidation
Default gates: 24h, 5 touched sessions, file-lock. When all three pass, AGH spawns an ephemeral session that synthesizes recent activity into durable facts. No surprise compute.
Agent-managed
agh memory write | search | consolidate works from CLI, HTTP, and UDS. Operators inspect the same files agents write — no privileged path.
$ agh memory write personal-notes \$ --type user \$ --description "Pedro prefers BR-PT in conversation"$ agh memory search "BR-PT"$ agh memory consolidateAutonomy
AGH owns the loop. Tasks claim runs atomically through ClaimNextRun, hold a lease they must heartbeat, and release back to the queue if they crash. One queue. Shared between humans and agents. Claim tokens never logged in raw form.

Token-fenced ownership
Only the agent holding the claim token can heartbeat or complete a run. Sessions cannot reach into runs they don't own. Tokens are hashed before they touch the event ledger — raw values never leave the daemon.
$ agh task create$ agh task list --status queued$ agh task next --wait # claimed by an idle agent$ agh task heartbeat <run-id> # held by claim_token$ agh task complete <run-id>Lease recovery
Leases expire on a TTL. Runs re-enter the queue automatically. The next idle agent picks them up.
One shared queue
agh task create (you) and the coordinator agent (them) write to the same SQLite table. Same primitives, same audit trail.
Permission narrowing
Lineage, TTLs, and permission scopes are part of the spawn contract — enforced in code, not in the prompt.
Operator surface
Sessions, capabilities, workspaces, automation, observability — every surface is reachable from CLI, HTTP, and UDS. Same primitives for you and for the agents you run.

Memory
Global and per-workspace memory in plain Markdown. Four types, one index per scope.

Capabilities
Drop-in SKILL.md bundles with YAML frontmatter. Bundled library, workspace overrides, community catalog. Capabilities also travel across the network as a typed message kind.

Workspaces
Agents, skills, memory, and config overlay per workspace. Switch projects, switch context.

Automation
Schedule recurring work. Trigger sessions from external events. Every run tracked in SQLite.
Extensibility
The daemon is extensible at every seam you actually need. No plugins to write — contracts are plain files.
Hooks
Not an event bus. ~24 typed lifecycle hooks fire at the call site that owns the transition — session, prompt, tool, permission, autonomy. Hooks can deny or narrow, never bypass.
hooks catalogSkills
Share reusable instruction sets with YAML frontmatter and Markdown body. Bundled defaults + global + workspace scopes.
skills guideAutomation
Durable jobs and triggers stored in SQLite. Schedule work. Delegate to peers. Track runs.
automationSandbox
Stay local when isolation isn't needed, or bind a workspace to a Daytona sandbox with explicit sync, lifecycle, and provider metadata.
sandbox profilesExtensions
Extensions bundle skills, hooks, bridge adapters, and MCP servers. Ship them as zip files or via a GitHub registry.
extensionsReference
Hooks, skills, automation, sandbox, extensions — schemas, CLI verbs, examples.
Read extensions docsA hook is a TOML block in your config. Everything the daemon loads is inspectable with agh skill view, agh hooks list, and agh extension list.
Contract on disk — not a plugin API.

Bridges
Webhooks in, sessions out. Responses stream back to the original thread. No serverless glue, no second runtime — the bridge adapter runs inside the daemon.
Slack
bridge:slack
Discord
bridge:discord
Telegram
bridge:telegram
bridge:whatsapp
Microsoft Teams
bridge:teams
Google Chat
bridge:google-chat
GitHub
bridge:github
Linear
bridge:linear
How a bridge delivers a session
inside the daemonPlatform
slack / discord / tg
agh daemon
verify · route
Agent
claude / codex / …
Thread reply
streamed updates
Every bridge is a workspace-scoped adapter. One platform message maps to one durable session, so a user thread keeps its context across restarts.
Getting started
macOS and Linux. Install with curl, use a package manager, or build from a source checkout if you are already inside the repository.
$ curl -fsSL https://agh.network/install.sh | sh$ brew install --cask pedronauck/agh/agh$ git clone https://github.com/compozy/agh && cd agh && go build -o ./bin/agh ./cmd/aghCreate ~/.agh/config.toml and the default general agent before you start the daemon.
$ agh installOne local process, detached by default, exposing CLI, HTTP/SSE, and the web UI.
$ agh daemon startCreate the session from the repository you want AGH to manage so workspace resolution is explicit.
$ agh session new --cwd "$PWD" --agent generalPositioning
AGH is the only approach here with an implemented cross-runtime protocol. The rest centralize coordination or skip it entirely.
Approach
Primary focus
Agent model
Agent support
Coordination
Deployment
Cross-runtime
Primary focus
Memory-first stateful agents
Agent model
Letta agents in cloud or self-host
Agent support
1 (managed)
Coordination
None — single agent
Deployment
Cloud-hosted or self-host
Primary focus
Multi-agent orchestration framework
Agent model
Agents you author in Python
Agent support
your code
Coordination
In-process graph or crew
Deployment
Library you embed
Primary focus
Hosted agent platform
Agent model
Managed agents behind an API
Agent support
managed
Coordination
Centralized routing
Deployment
Cloud-only
Primary focus
Run + connect real agent CLIs
Agent model
Your existing ACP agents
Agent support
26 ACP drivers
Coordination
agh-network/v0 — implemented
Deployment
Local-first, single binary
Ship it
One binary. No infrastructure. Alpha runtime included.