
AxiOwl Is Infrastructure for AI Workflows
AxiOwl is not another chat window. In the current C++ implementation, it is a local Windows coordinator for AI workflow plumbing: it keeps track of reachable provider sessions, exposes command-line and MCP entry points, resolves sender and target identity, dispatches delivery through provider-specific edges, and records receipts and evidence so operators can tell what actually happened.
That infrastructure role matters because AI workflows break down when each provider session is treated as an isolated surface. A developer might have a Codex thread, a VS Code native chat, a Copilot-backed VS Code session, a Cursor agent window, and an Antigravity session open at the same time. Without a coordinator, each one has its own naming, session state, delivery path, and reply mechanism. AxiOwl gives those sessions a shared routing layer.
Sources read
README.mdPROVIDER-SURFACE-SUPPORT-CHART-2026-07-06.mdapps/windows-desktop/README.mddocs/README.mddocs/reference/README.mddocs/reference/architecture-overview.mddocs/reference/provider-support-matrix.mddocs/reference/installer-behavior-matrix.mddocs/user/README.mddocs/security/trust-boundaries.mdapps/windows-desktop/src/cli.cppapps/windows-desktop/src/message_pipeline.cppapps/windows-desktop/src/registry.cppapps/windows-desktop/src/discovery.cppapps/windows-desktop/src/provider_edges.cppapps/windows-desktop/src/delivery_worker.cppapps/windows-desktop/src/mcp_server.cppapps/windows-desktop/src/app_paths.cppapps/windows-desktop/tests/core_tests.cppapps/windows-desktop/tests/mcp_conformance.ps1apps/windows-desktop/tests/vscode_native_provider_tests.cppapps/windows-desktop/tests/vscode_native_ownership_tests.cppapps/windows-desktop/tests/vscode_intelligence_tests.cppapps/windows-desktop/tests/installer_provider_contract_tests.cpp- CLI help output from
apps/windows-desktop/build/Release/axiowl.exe --help
The Registry Is the Workflow Index
The center of AxiOwl is its durable local registry. The current code stores agent rows in registry/agents.tsv under the AxiOwl state root, with fields for display_name, aliases, provider, provider_session_id, node_id, enabled, sendable, source, first_seen_at, last_seen_at, last_verified_at, and last_error. Node records live beside it in registry/nodes.tsv.
That is a practical infrastructure choice. A workflow needs names people can use, but delivery needs provider-owned identifiers. The registry keeps both. A session can be addressed by a readable chat name or by an exact provider session id. Tests in core_tests.cpp verify that exact session lookup can override duplicate display-name recency, while ordinary display-name lookup prefers the newest duplicate row. That makes AxiOwl useful in real operator conditions, where chat names can collide and old sessions can remain in local history.
The registry also carries a trust signal. A row can be known but not sendable. AxiOwl does not treat every discovered artifact as a working route. The user docs and provider matrix both draw the same line: support means discovery, install/config, send, provider receive, MCP reply, and correct sender identity. Merely finding a file or writing a config is not enough.
CLI and MCP Are Two Doors Into the Same System
The Windows executable exposes a direct CLI for operators and an MCP server for provider sessions. The help output includes commands such as:
axiowl send --to <agent> --body <message>
axiowl send --to <agent> --stdin
axiowl create --provider <provider> --name <agent>
axiowl discover <provider|all> [--target <agent>] [--json]
axiowl list agents
axiowl status
axiowl mcp-server
axiowl delivery-worker --request <request-json-file>
The important detail is that MCP is not a thin shell wrapper that asks models to invent commands. In mcp_server.cpp, AxiOwl exposes typed tools including axiowl_whoami, axiowl_list_agents, axiowl_send_message, axiowl_create_agent, axiowl_discover, status/version tools, node registration tools, registry registration tools, and a relay delivery tool. The MCP instructions explicitly tell provider hosts to use axiowl_send_message for sending and axiowl_create_agent for creating chats, and to rely on the host MCP session ID as the stable sender identity key.
That identity rule is the difference between workflow infrastructure and a loose command helper. AxiOwl wants replies to route back to a real provider session, not to a guessed name, a stale path, or an environment variable that cannot prove ownership. The architecture docs state the same rule: provider replies through MCP must carry provider/session metadata so AxiOwl can resolve the sender.
The Pipeline Resolves, Repairs, and Hands Off
MessagePipeline is where a send becomes an infrastructure event. It validates the request, resolves sender identity, resolves the target from the registry, runs one targeted discovery repair if the target is missing or stale, and only then records the local AxiOwl receipt.
That targeted repair behavior matters. The discovery layer can refresh local provider state for Codex, Codex CLI, VS Code native, VS Code Copilot, Copilot CLI, Antigravity, Cursor, Claude Code CLI, and OpenCode CLI paths. It can merge discovered rows into the registry, enrich aliases, preserve protected manual rows, and avoid blindly downgrading manually curated records. If discovery only finds evidence but no sendable target, the pipeline reports that distinction instead of pretending delivery is available.
After route resolution, the pipeline builds the final visible message body with reply instructions, sender details, run id, message id, and any configured activation warning. Then it hands the provider request to the delivery worker. The receipt state is intentionally accepted_by_axiowl, not "delivered." Tests assert this boundary: the send path returns an AxiOwl receipt after target resolution and before provider delivery proof.
That is a good workflow contract. Operators can distinguish three different facts:
- AxiOwl accepted the request and selected a route.
- The delivery worker started provider handoff.
- The provider actually accepted, acted, and replied through MCP.
Those should not be collapsed into one vague success message.
Provider Edges Keep Integrations Separate
AxiOwl's dispatch table lives in provider_edges.cpp. The delivery path routes by provider to provider-specific modules for Codex, Codex CLI, VS Code native, VS Code Copilot-backed sessions, Antigravity, Antigravity CLI, Cursor, Cursor CLI, Claude Code CLI, Copilot CLI, and OpenCode CLI. Create and rename operations use the same provider-edge structure where implemented.
The current provider matrix is more conservative than the code surface alone. It lists supported surfaces such as codex:agents, codex:cli, vscode:agents, copilot:vsix extension, cursor:agents, and antigravity:agents. It lists several CLI surfaces as targets where metadata proof or auth work still gates final support. It also marks remote as unsupported for the current local-provider remediation builds, and provider_edges.cpp returns an explicit out-of-scope result for remote delivery instead of using remote as a silent fallback.
That separation is another infrastructure trait. AxiOwl does not need every provider to behave the same way internally. It needs every provider edge to expose clear route, delivery, create, rename, proof, and error semantics to the rest of the system.
The Installer Is Part of the Infrastructure
The Windows MSI is not only a binary copy step. The current installer contract says it installs axiowl.exe under %LOCALAPPDATA%\AxiOwl\bin, writes a manifest, configures PATH where selected or required, runs local discovery, and writes proof/status logs. Provider features are intended to behave like separate install units even when shipped in one MSI.
That matters because provider integrations have different risks. Codex needs plugin/MCP integration. VS Code and Copilot-in-VS-Code use bridge extension and patch/config work. Cursor uses a bridge extension, MCP config, command-file watcher path, URI fallback, and patch-sensitive private internals. Antigravity uses MCP config. The installer behavior matrix says unchecked provider features should not be installed, patched, closed, restarted, or uninstalled as collateral damage.
In other words, AxiOwl treats install state as workflow state. It discovers what is present, scopes changes to selected provider features, logs what it did, and fails loudly when a selected integration cannot be installed safely.
Logs Make the Workflow Inspectable
AxiOwl stores runtime and evidence data under the local state root. The app path code maps Windows state to %LOCALAPPDATA%\AxiOwl, with registry files under registry, event evidence in logs/events.jsonl, delivery stages in logs/delivery.jsonl, and create lifecycle records in logs/create-lifecycle.jsonl.
Those files are not decoration. They are how an operator can answer practical questions: Was the target resolved by registry or repaired by discovery? Was the row sendable? Did the send stop before provider dispatch? Did the delivery worker start? Which provider edge handled the request? Did the provider result claim a verified write, an unverified handoff, or an error?
For AI workflows, this is the difference between "the model did not answer" and a debuggable chain of events.
What This Means in Daily Use
In daily use, AxiOwl infrastructure looks simple from the outside. You can list agents, discover sessions, send a body, send from stdin, create a new provider chat, or expose MCP tools to a provider host. But the useful part is underneath: AxiOwl is preserving sender identity, mapping display names to provider session ids, checking sendability, separating receipts from proof, and keeping provider-specific integration details out of the operator's prompt.
The result is a workflow layer that can grow with provider surfaces without turning every user command into provider-specific tribal knowledge. AxiOwl can support Codex, VS Code, Cursor, Copilot-backed VS Code, Antigravity, and future provider edges because the core contract is stable: discover sessions, record them, route messages, require real identity, dispatch through the right edge, and leave evidence.
That is what infrastructure for AI workflows should do. It should make the system addressable, inspectable, and honest about what has been proven.
Image prompt:
Create a polished graphic image related to: AxiOwl as infrastructure for AI workflows.
Subject: a modular technical workflow backbone made of interlocking server rails, routing hubs, glowing conduit lines, and small abstract terminal panels arranged like a reliable infrastructure layer, with no readable labels or symbols.
Style: halfway between a clean symbolic icon and a realistic product/technical illustration; professional SaaS/technical marketing style; crisp edges; high detail; no text; no logos.
Background: solid #00ff00 chroma key green screen background covering the full canvas edge to edge.
Restrictions: no owl, no axolotl, no birds, no animals, no mascot, no text, no watermark.