
Common First-Time AxiOwl Setup Problems
AxiOwl setup is not just "install an app and send a message." The current C++ implementation is a local Windows coordinator that installs axiowl.exe, keeps a durable local registry, discovers supported provider sessions, configures selected provider integrations, and exposes both a CLI and an MCP server. First-time problems usually come from confusing one of those layers with another.
The good news is that AxiOwl is designed to leave evidence. The Windows install writes state under %LOCALAPPDATA%\AxiOwl, the CLI has direct inspection commands, and the receipt language separates "AxiOwl accepted the request" from "the provider actually replied." When a first setup does not work, start with those boundaries instead of guessing.
Problem 1: Expecting Every Provider Checkbox To Work Automatically
The Windows MSI has provider checkboxes, but those checkboxes are not magic support switches. The installer docs say provider checkboxes should be selected from discovery: the provider app or CLI must be detected, the required install path must exist, and the provider-specific support gate must allow that feature.
This matters because AxiOwl's provider support bar is higher than "a config file was written." Current supported surfaces include Codex agents, Codex CLI, VS Code native agents, VS Code Copilot through the bridge extension, Cursor agents, and Antigravity agents. Several CLI surfaces are still listed as target, meaning intended or partially implemented support exists but the current test bar is not fully met.
If a provider is not preselected, first assume discovery did not find a safe install target. You can manually select a provider feature, but the user docs are clear that a selected provider can still fail if the provider app, CLI, auth state, or required version is missing.
After install, use:
axiowl status
axiowl list agents
axiowl discover all --json
Those commands tell you more than the checkbox screen. status summarizes the local AxiOwl state, list agents reads the local registry, and discover all --json asks the discovery layer to refresh what it can see.
Problem 2: Thinking A Successful MSI Install Proves Message Delivery
A successful install proves selected install actions completed. It does not prove that a provider can receive a message, process it, and reply through AxiOwl MCP.
The repo draws this line repeatedly. AxiOwl has receipt states such as accepted_by_axiowl and provider-side proof such as accepted_by_provider, but the strongest end-to-end proof is a provider reply through AxiOwl MCP with correct sender identity. The MCP tool description in the implementation says the axiowl_send_message success is a handoff receipt only; provider delivery and reply are not implied.
So a first-time validation should not stop at "installer completed." A better sequence is:
axiowl status
axiowl list agents
axiowl send --to "Target chat name" --body "Please reply through AxiOwl with a short setup test response." --from "Known sender"
For provider-hosted replies, prefer the axiowl_send_message MCP tool rather than asking the provider to invent raw CLI arguments. The MCP path carries provider/session identity metadata, which AxiOwl needs to route replies correctly.
Problem 3: Sending To A Name That Is Not In The Registry
AxiOwl sends to named provider sessions through its registry. The architecture docs describe the registry as the map from human-readable agent names and aliases to provider, provider session id, node id, sendability, and discovery source.
If the target name is missing or stale, the message pipeline runs one targeted discovery repair. The implementation logs that repair as targeted_discovery_once. That is useful, but it is not a promise that the target exists. Discovery can find candidate sessions; it cannot invent a real provider session.
The practical fix is to inspect the registry before sending:
axiowl list agents
Then send to a displayed name or alias that AxiOwl actually knows:
axiowl send --to "Exact agent name from list agents" --body "Setup test." --from "Known sender"
If a provider session was opened after install, run the relevant discovery scope:
axiowl discover codex --json
axiowl discover vscode-native --json
axiowl discover vscode-copilot --json
axiowl discover cursor --json
axiowl discover antigravity --json
Use axiowl discover all --json when you do not know which provider surface should own the session.
Problem 4: Missing Sender Identity
First-time CLI tests often fail because they specify a target and body but do not give AxiOwl a real sender. The message pipeline can reject a send with an error shaped like "send requires explicit –from sender identity" when sender identity cannot be resolved.
That behavior is intentional. AxiOwl appends reply instructions only when it knows who the recipient should reply to. The developer docs say provider replies must include enough metadata for AxiOwl to identify the sender session, and the MCP server should fail loudly when metadata is missing.
For a raw CLI test, pass a sender that exists in the registry:
axiowl send --to "Target chat name" --body "Setup test." --from "Sender chat name"
For multiline content, use stdin so quoting does not damage the body:
@'
Please run a first-time AxiOwl setup test.
Reply through AxiOwl if your MCP tool is available.
'@ | axiowl send --to "Target chat name" --stdin --from "Sender chat name"
For provider-to-provider replies, use the MCP tool path. The current MCP server exposes axiowl_send_message, and its implementation uses the host MCP session id as the stable sender identity key. That is the right path for real replies because the provider host supplies identity metadata that a plain terminal command cannot infer.
Problem 5: Forgetting To Restart The Target Provider
Some integrations are installed into provider configuration or provider extension locations. The Windows desktop README notes that after install, users should restart the target app or open a new chat/thread before using the AxiOwl MCP tool.
This is especially important for supported surfaces that depend on MCP config, a bridge extension, or provider-private patch behavior:
- Codex agents use plugin/skill and MCP integration.
- VS Code native and VS Code Copilot use bridge extension and MCP definitions.
- Cursor agents use a bridge extension, MCP config, command files, a watcher path, URI fallback, and a patch-sensitive submit path.
- Antigravity agents use MCP config and provider session metadata.
If AxiOwl installed cleanly but the provider cannot see the tool, restart the provider app or open a fresh chat/session before diagnosing deeper. Existing sessions can hold stale MCP transport or stale workspace state.
Problem 6: Looking In The Wrong Place For Logs
The current Windows state root is %LOCALAPPDATA%\AxiOwl. The repo's path code and installer docs identify these first diagnostic locations:
%LOCALAPPDATA%\AxiOwl\logs
%LOCALAPPDATA%\AxiOwl\registry
%LOCALAPPDATA%\AxiOwl\runtime
The concrete files include registry data such as:
%LOCALAPPDATA%\AxiOwl\registry\agents.tsv
%LOCALAPPDATA%\AxiOwl\registry\nodes.tsv
And runtime evidence such as:
%LOCALAPPDATA%\AxiOwl\logs\events.jsonl
%LOCALAPPDATA%\AxiOwl\logs\delivery.jsonl
%LOCALAPPDATA%\AxiOwl\logs\create-lifecycle.jsonl
For MSI-level diagnosis, the installer docs recommend collecting a verbose Windows Installer log:
msiexec /i path\to\axiowl-activation-windows-installer.msi /l*v install.log
That gives you two different views: Windows Installer action logs and AxiOwl's own runtime/provider evidence logs.
Problem 7: Treating Stale Provider State As An AxiOwl Delivery Failure
The installer docs call out a specific confusing symptom: an old folder appears in a new chat. That can be stale provider workspace/session state, stale config, or provider default behavior. It is not automatically proof that AxiOwl delivery failed.
The same applies to old extension folders, stale bridge entries, and old provider sessions. The MSI may remove stale AxiOwl-owned files such as old bridge extension folders or obsolete runtime artifacts, but it should not remove unrelated provider files, user chats, auth tokens, unrelated extensions, or unrelated settings.
That boundary is important. AxiOwl is supposed to clean up what it owns, not wipe out provider state. When a first setup looks stale, check:
axiowl status
axiowl list agents
axiowl discover all --json
Then inspect %LOCALAPPDATA%\AxiOwl\logs and provider extension output channels before assuming the send path is wrong.
Problem 8: Misreading Cursor Or VS Code Extension Warnings
Cursor and VS Code integrations are more fragile than simple CLI config because they can depend on editor extensions, MCP definitions, and patch-sensitive provider internals. The installer docs specifically mention an extension not found warning as a possible stale provider extension id/path or URI wake-up fallback behavior.
The provider support matrix also notes that Cursor URI wake-up can show false extension warnings and should remain fallback. Cursor's primary supported path is the bridge command-file watcher plus patch-provided commands; URI wake-up is not the ideal path when the watcher works.
For first-time setup, do not stop at one warning string. Check whether the provider actually receives the message and whether a reply returns through AxiOwl MCP. That is the support bar.
Problem 9: Using Remote As A Local Provider Fallback
Remote support is not a general fallback for local setup failures. The current provider support matrix lists remote as unsupported for local-provider remediation builds, and the CLI implementation reports remote discovery as out of scope for local all-provider discovery.
If local Codex, VS Code, Cursor, or Antigravity setup fails, fix that local provider path. Do not route around it through remote discovery unless you are intentionally testing the remote Linux package and its narrower contract.
A Practical First-Time Checklist
Use this sequence when setting up AxiOwl for the first time:
- Install the Windows MSI and select only the provider features you actually want to integrate.
- Restart the selected provider app, or open a new provider chat/thread.
- Run
axiowl status. - Run
axiowl discover all --json. - Run
axiowl list agents. - Send a small test to a known registry name.
- Confirm whether the result is only
accepted_by_axiowl, provider-accepted, or a true reply through AxiOwl MCP. - If it fails, read
%LOCALAPPDATA%\AxiOwl\logs,%LOCALAPPDATA%\AxiOwl\registry, and%LOCALAPPDATA%\AxiOwl\runtime. - For installer-level failures, collect an MSI verbose log with
msiexec /l*v.
The key habit is to separate installation, discovery, registry resolution, provider delivery, and MCP reply proof. AxiOwl's implementation treats those as different stages, and first-time troubleshooting is much easier when you do the same.
Closing
Most first-time AxiOwl setup problems are not mysterious. They usually mean one of the required pieces is missing: the provider was not discovered, the provider feature was selected without a working provider install, the target name is not in the registry, the sender identity is unresolved, the provider session has stale MCP state, or the operator is reading a handoff receipt as an end-to-end reply.
AxiOwl gives you the tools to sort those out: axiowl status, axiowl discover, axiowl list agents, honest receipt states, and local evidence under %LOCALAPPDATA%\AxiOwl. Start there, and treat a provider reply through AxiOwl MCP as the real proof that setup is working.