-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
Common issues you might hit when using BizarHarness, with concrete fixes.
Symptom: opencode exits immediately or hangs.
Cause: Most often a missing or invalid auth.json at ~/.local/share/opencode/auth.json.
Fix:
- Run
opencodeonce to trigger the auth setup prompt. - If the TUI doesn't open, run
opencode /connectto add an API key manually. - If you have a Hindsight API key, set
HINDSIGHT_API_KEYin your environment or.envfile. - Verify the file exists and is readable:
ls -la ~/.local/share/opencode/auth.json.
For dev sandbox users: the same file is mounted read-only from your host into the container, so set it up on the host first.
Symptom: A subagent makes the same tool call repeatedly, even after the loop guard warns it.
Cause: Two possibilities — the Bizar plugin isn't loaded, or the subagent prompt doesn't include the ## Loop Guard Handling section.
Fix:
-
Confirm the plugin is loaded. In opencode, run
/pluginsand check thatbizarappears. If not, checkopencode.jsonfor thepluginarray and verify./plugins/bizar/index.tsis present. -
Check the plugin logs. Look at
~/.cache/bizarharness/logs/<sessionId>.log. You should see per-tool-call lines. If the file is empty, the plugin is not running. -
Disable the plugin for one session to recover:
BIZAR_DISABLE=1 opencode. -
Disable only the loop guard if status reporting is useful:
BIZAR_DISABLE_LOOP=1 opencode. -
If you added custom agents, make sure they include the canonical
## Loop Guard Handlingsection. Without it, the loop guard will throw at threshold 12 but the agent will keep retrying. See Bizar Plugin for the full limitations list.
Symptom: Odin reports it can't find a specific agent.
Cause: The agent's .md file is missing from ~/.config/opencode/agents/.
Fix:
- List installed agents:
ls ~/.config/opencode/agents/. You should seeodin.md,frigg.md,vor.md,quick.md,mimir.md,heimdall.md,hermod.md,thor.md,baldr.md,tyr.md,vidarr.md,forseti.md, andsemble-search.md. - If a file is missing, re-run the installer:
bizarharness. - For per-project installs, also check
<project>/.opencode/agents/. - Restart opencode after re-installing.
Symptom: Subagents (or Odin) get permission errors when running bash.
Cause: opencode's permission system is blocking the tool. BizarHarness doesn't grant permissions — it relies on the user's existing opencode.json config.
Fix:
- Check the
permissionsection of~/.config/opencode/opencode.json. - For unblocked tools, you can add entries like:
- For per-tool rules, see the opencode permission docs.
-
Don't enable
dangerously-skip-permissionsfor production agents — only for short-lived test sessions in a sandbox.
Symptom: API calls start failing with 429 errors, or you notice a sudden jump in your bill.
Cause: Too many parallel subagent dispatches, or a subagent running too long.
Fix:
- Reduce parallelism. If Odin is firing 5+ parallel tasks, narrow the request. Opencode is rate-limited per provider; 5 parallel M2.7 calls is fine, 5 parallel M3 calls can hit limits.
-
Use the background-agent tool-call cap. Set
BIZAR_BACKGROUND_TOOL_CALL_CAP=200to abort background instances that have run too long. -
Use the test gate. After implementation, run
bizarharness test-gateinstead of asking Odin to keep iterating. -
Temporarily disable high-cost tiers. Edit
config/agents/tyr.mdand change the model tominimax/MiniMax-M2.7(one tier down). Re-run the installer. - For emergency stop, Ctrl-C the opencode session. The Bizar plugin will mark all in-flight background instances as failed and abort the serve child.
Symptom: Agents report they can't recall past sessions, or hindsight_recall returns errors.
Cause: Missing or invalid HINDSIGHT_API_KEY, or wrong bank ID.
Fix:
-
Verify the key. Set
HINDSIGHT_API_KEYin your environment or.envfile. Run a test recall:# In opencode, type: @frigg /recall recent project work -
Verify the bank. At session start, every agent should call
hindsight_list_banksto see what's available. If the project's bank doesn't exist, agents should create it. -
Check that the agent passes
bank_idcorrectly. Allhindsight_retain,hindsight_sync_retain, andhindsight_recallcalls must passbank_id: "<project-name>". The default bank is for general knowledge only — never use it for project work.
Symptom: /plugins in opencode doesn't show the Bizar plugin.
Cause: The plugin entry is missing from opencode.json, or the plugins/bizar/ directory is missing.
Fix:
- Check
~/.config/opencode/opencode.jsonfor apluginarray:You should see an entry likejq '.plugin' ~/.config/opencode/opencode.json
["./plugins/bizar/index.ts", { ... }]. - If the array is missing or empty, re-run
./install.shfrom the BizarHarness repo. The script idempotently adds the plugin entry. - Check the plugin files are present:
You should see
ls ~/.config/opencode/plugins/bizar/index.ts,src/,tests/,package.json, etc. - Restart opencode.
Symptom: npm install -g bizarharness prints warnings about peer dependencies.
Cause: Some BizarHarness dependencies (like inquirer v12) require Node 20+. If you're on an older Node, you get warnings.
Fix:
- Upgrade Node: use nvm or fnm to install Node 20+.
- The warnings don't block installation; BizarHarness will still run on Node 18+ with reduced functionality (some
node:fs/promisesfeatures may be missing).
Symptom: Vör asks "what framework" or "what files" before reading any project context.
Cause: Vör's research-first protocol is broken or the agent file is out of date.
Fix:
-
Fill in
.bizar/PROJECT.md. Vör reads this file before asking. If it's empty, Vör will ask generic questions. A goodPROJECT.mdlists the language, framework, database, conventions, and entry points. - Verify the Hindsight bank exists for the project. Vör checks the bank before asking. If the bank is missing, Vör will ask more than necessary.
-
If the Vör file is out of date, re-run the installer. The current
vor.mdincludes the research-first protocol.
Symptom: The installer reports opencode is missing.
Cause: opencode is not on the installer's $PATH lookup.
Fix:
- Verify:
which opencode. If it returns nothing, the binary is not on$PATH. - If opencode is installed via npm, add the npm global bin to your shell rc:
export PATH="$(npm config get prefix)/bin:$PATH"
- If opencode is installed via another method (curl, brew, source), make sure the install location is on
$PATH. - Restart your shell.
Symptom: A bizar_collect call hangs or times out.
Cause: The background instance is stuck in a loop, the serve child crashed, or the instance is making slow progress.
Fix:
-
Call
bizar_status(instanceId)to see the current state. ChecktoolCallCount— if it's near 500, the cap is about to fire. -
If stuck, kill it:
bizar_kill(instanceId). -
If the serve child died, check the plugin log at
~/.cache/bizarharness/logs/. Look for "serve child exited unexpectedly" — the plugin will auto-retry on the next spawn. -
Reduce the timeout for slow tasks:
bizar_collect(instanceId, { timeoutMs: 60_000 }). If you need more time, increase the cap withBIZAR_MAX_CONCURRENT_INSTANCESandBIZAR_BACKGROUND_TOOL_CALL_CAP(if your instance is hitting it).
- GitHub Issues: https://github.com/DrB0rk/BizarHarness/issues
- Discussions: https://github.com/DrB0rk/BizarHarness/discussions
-
Self-improvement log:
.bizar/AGENTS_SELF_IMPROVEMENT.mdin your project may have a fix for an issue you're seeing. - opencode docs: https://opencode.ai/docs
Next: FAQ — common questions about the project, the model choices, and the plugin.
Norse-pantheon multi-agent system for opencode.