anymo Docs
Resources

Troubleshooting

Run anymo doctor first. Each check has a stable id and a one-line fix; this page expands on the most common ones.

Doctor checks

Check (id)Status when…What to do
Rust (toolchain.rust)FAIL if missingInstall the toolchain from rustup.rs. Required to build anything.
Cargo (toolchain.cargo)FAIL if missingShips with Rust; reinstall via rustup.
Bun (toolchain.bun)WARN if missingInstall from bun.sh. Only the desktop UI needs it; the headless CLI does not.
Node (toolchain.node)WARN if missingOptional; install only if your workflow needs it.
Desktop app host (app_server)WARN if the UI bundle is missingbun install then bun run dev:desktop. The kernel runs in-process inside the Tauri host; the optional headless host is anymo app-server.
WebView runtime (webview)WARN/SKIPWindows: install the Evergreen WebView2 Runtime if the window won't open. Linux: install libwebkit2gtk-4.1-dev. macOS: built in.
Model provider (provider)WARN if none, FAIL if configured but invalidSet ANYMO_PROVIDER_BASE_URL and ANYMO_PROVIDER_MODEL. The offline mock demo needs no provider.
Endpoint (endpoint.N)WARN if unreachable, SKIP if not probedStart your local model server (for example ollama serve) or correct the base URL. Use doctor --no-probe to skip network checks.
Browser bridge (browser_bridge)usually OKBuilt-in web.fetch / web.extract are always available. For full browser control, see Browser automation.
Plugin trust (plugin_trust)OK by defaultCommand-hook execution is disabled by default. Trust each plugin explicitly before enabling command hooks.
Workspace (workspace)FAIL if not writable, SKIP if absentRun anymo setup to create it, or pass a writable --workspace <dir>.
Key storage (key_storage)WARN on the CLI; OK when the desktop seals a keyThe headless CLI never persists a key; re-export ANYMO_PROVIDER_API_KEY per session. Desktop keys are sealed at rest in the OS keychain.
Eval suite (evals)SKIP if no reportcargo run -p anymo-evals -- run --all.
OS bundle (os.N)SKIP (informational)Per-OS packaging notes; see the WebView row above.

Common problems

doctor exits non-zero

There is a blocking FAIL, almost always a missing Rust toolchain or a non-writable workspace. The exact item and fix are printed in the report. Warnings alone never fail doctor unless you pass --strict.

The desktop window doesn't open

The WebView runtime is missing. Install WebView2 (Windows) or WebKitGTK (Linux). Build the UI first with bun install && bun run dev:desktop.

A run is stuck "awaiting approval"

That is the approval system working: in manual mode every tool call asks, and in auto mode high- and critical-risk tools (shell, browser, desktop control, MCP) still ask. Respond from the desktop Approvals surface, or against an app-server:

sh
anymo approve --websocket <addr> --token <token> --approval-id <id>

--decision approve|deny and --reason "..." are optional; the default decision is approve. In plan mode, side-effect tools are denied by design: the run can only read and propose.

goal pause or goal clear doesn't stop the run immediately

Pause and clear mark the goal store; the driving loop honors the mark after the current turn finishes and is evaluated. This is intentional: a turn is never killed halfway. goal resume starts a fresh driving session: counters reset, the condition is kept.

A skill doesn't appear as a slash command

Only enabled skills appear in the composer palette and are offered to runs via skill.invoke. Check the skill's enabled flag in the desktop Skills view, and confirm the skill exists:

sh
anymo skill list --workspace <dir>

Skill names in slash commands must match exactly (/<skill-name>).

An automation never fires

Automations only run while a host is alive: the desktop app or anymo app-server. If the machine was off or no host was running when a schedule came due, the missed run is skipped on purpose (no catch-up storms); the next due time fires normally. Check the automation is not paused in the desktop Automations view.

A connector won't finish OAuth

Connector sign-in opens your system browser and listens on a loopback callback. If the browser window never appears, check that a default browser is configured; if the callback times out, retry from the Plugins view. Tokens are sealed at rest, never appear in config files, and removing a connector removes its token.

The model endpoint keeps failing mid-run

Configure a fallback chain so a retryable failure on the primary endpoint switches to the next candidate instead of failing the run:

sh
anymo run --provider http --goal "..." \
  --fallback http://localhost:1234/v1,llama3.1

Or via the environment: ANYMO_PROVIDER_FALLBACK_BASE_URL, ANYMO_PROVIDER_FALLBACK_MODEL, ANYMO_PROVIDER_FALLBACK_API_KEY. Each switch is recorded as a durable provider.fallback event in the run log.

Environment variables don't take effect on Windows

export is POSIX-shell syntax. In PowerShell use:

powershell
$env:ANYMO_PROVIDER_BASE_URL = "http://localhost:11434/v1"

and run the CLI from the same PowerShell session.

Build errors mentioning a missing config field

This means a stale build artifact from another branch or git worktree is being linked. Force a clean rebuild of the protocol and its dependents:

sh
cargo clean
cargo build --workspace --exclude anymo-desktop

A test executable "requires elevation" on Windows

Windows UAC treats executables whose names contain setup or install as installers. Anymo's tests avoid those names (the setup tests live in tests/first_run.rs). If you add a test file, keep those words out of its name.

anymo setup says "completed" but I don't see output

The offline mock demo writes <workspace>/reports/headless-smoke.md and records events in <workspace>/.anymo/events.db. Both live inside the demo workspace (./anymo-demo by default), which is gitignored.