Configuration and troubleshooting

Files and environment

Fetchira uses $FETCHIRA_HOME, otherwise $XDG_CONFIG_HOME/fetchira, otherwise ~/.config/fetchira. The directory holds fetchira.toml, usage.db, captured sessions, image outputs and update state. A relative db_path is resolved inside that directory.

Environment variables already set in the process take precedence over .env. Fetchira loads its home .env first, then fills unset variables from a .env found from the current working directory. Use absolute paths when setting FETCHIRA_HOME or XDG_CONFIG_HOME.

A minimal configuration using an environment-backed key:

[[account]]
provider = "serper"
label = "serper-1"
api_key = "env:SERPER_API_KEY"

Keep SERPER_API_KEY in the process environment or the Fetchira home .env. See fetchira.toml.example and .env.example for the supported fields; enable only the accounts you use. Local config can contain plaintext API keys. Hosted mode encrypts stored provider credentials with its persistent master key. Treat the data directory and backups as private: debug logs can contain queries and results.

Accounts and routing

fetchira providers
fetchira add serper --key 'KEY' --label serper-work
fetchira add gemini_web
fetchira list
fetchira usage serper

list (alias accounts) shows account readiness. usage shows the compact model/quota snapshot; usage PROVIDER adds supported operations and options. Web sessions expire: fetchira login LABEL captures a fresh session for an existing account. For a session file, use fetchira session LABEL --file session.json. Remove an account with fetchira remove LABEL only when its saved configuration and session are no longer needed.

The router tries configured providers in priority order and chooses an account by remaining allowance. Unsupported providers are skipped. Change the order with:

fetchira priority
fetchira priority search serper,tavily,exa
fetchira priority deep_research gemini_web,parallel
fetchira priority search reset

Capabilities with configurable priority are search, read, deep_research, and image. Unlisted providers follow the listed ones in built-in order, which ranks providers by public search, research and scraping benchmarks; topic=academic adds OpenAlex and topic=news adds GDELT. Restart running MCP/server processes after changing configuration through the CLI. Dashboard changes reload its router.

A --provider argument restricts the request to that backend; it does not fall back to a different provider. A returned session also pins the account, so a follow-up cannot silently continue another conversation. Provider plans, balances and limits are authoritative. Where a provider reports its real remaining balance, Fetchira caches it and routes on it, counting its own calls down between reads; built-in quotas are only estimates for providers that report nothing. An explicit quota (or, for deep research, dr_quota) caps a live balance, so it can hold back a paid one; set reset/dr_reset to match your plan. A forced provider still obeys these limits.

Dollar balances are real balances; the displayed ≈ call counts are estimates that vary by operation and plan. Steel requests use its proxy: the Launch plan requires a paid $10 deposit to enable it, even with free credits (Steel pricing).

Temporary rate limits cause failover and a retry delay, not monthly quota exhaustion. Confirmed insufficient-credit responses trigger a separate quota check after a one-minute cooldown. A fresh positive balance restores routing after a top-up; providers without a readable balance get a single probe per cooldown. Configured local ceilings still apply. If no account can serve the request, Fetchira returns an error with the available provider information.

Proxies and logging

fetchira proxy LABEL http://user:password@proxy.example:8080
fetchira proxy LABEL pool
fetchira proxy LABEL direct

pool needs [proxy_pool] in the config; see the example file. Accounts keep a stable pool assignment. Provider availability can depend on the account’s region and proxy.

Logs go to stderr; set RUST_LOG=fetchira=debug for diagnostics. The dashboard Debug tab uses a bounded request/response log (24-hour retention by default). Disable capture with:

[debug_log]
enabled = false

Troubleshooting

Symptom Check or fix
fetchira: command not found Add the installation directory to PATH; see setup.
Bare command waits or opens a dashboard Use fetchira search ... for CLI, fetchira serve for MCP, or fetchira ui for the dashboard.
NO KEY, NEEDS LOGIN, or no usable accounts Check the same FETCHIRA_HOME is used by the shell and agent; add the missing key or run fetchira login LABEL.
Temporary 429 Respect the returned retry delay or use another configured provider; do not reset monthly counters for a minute limit.
Provider reports insufficient credits Check fetchira usage PROVIDER and the provider dashboard; top up or choose another account/provider.
Hosted call rejects a file attachment Laptop attachments require local mode for both CLI and MCP. Disconnect the remote or use a separate local home.
Unknown model or mode Read fetchira usage PROVIDER; omit the model to use its default.
Parse error during installation or configuration Fix the named file; Fetchira refuses to overwrite malformed config.
Agent cannot find MCP or the skill Check the absolute binary/config path, selected skill variant, and restart the agent; see setup.
Research/image is pending Pass the newest returned session to the same tool; see CLI sessions.
Hosted auth, browser or update failure Follow hosted verification and check the server logs.

Updates and removal

Run fetchira update (alias fetchira upgrade) or click Update in the dashboard. The updater uses Homebrew for a Homebrew installation and release archives for a standalone binary. It reports progress or an actionable error in place. Hosted updates have a separate backup and rollback procedure.

Accounts, sessions, usage and settings stay in the existing data directory. The new process migrates the database and refreshes existing agent skills automatically, including when it starts through MCP or restarts the dashboard. Replaced skill files are backed up, stale Homebrew launchers are repaired, and your CLI/MCP choices and other server settings stay unchanged. No separate migration command is needed. Already-running agents load the new executable when restarted; active work is not terminated. Use Setup & agents to deliberately change integrations.

To stop using Fetchira, remove its MCP entry from the clients you configured, remove the installed Fetchira skill folder, and uninstall the binary using its installation method. Keep the data directory until you have saved any sessions, images or backups you need.