Modern 0.4.0 is the stable default. Install v0.4.0 for the release or follow modern for development. Requires Pi 0.99.2 or newer. Compare editions.
Troubleshooting
Check the relevant layer before changing config. A package-load failure, blocked bootstrap, closed worker tab, missing model credentials, or disconnected bot can all look like a silent Clawa.
Clawa did not appear
With a global install, this is expected in an ordinary directory without .pi/claw.jsonc. Clawa
stays dormant there. Use a project install or explicit -e from a clean folder to make a home.
- Run
pi -e /absolute/path/to/pi-clawafrom the intended home. - Check that Node satisfies
>=24.15.0 <27. - Check
.pi/settings.jsonif plainpifails but-eworks. - Run
pi --no-extensions -e /absolute/path/to/pi-clawato isolate extension conflicts. - Inspect Pi’s startup error rather than adding another copy of the package path.
Bootstrap was blocked
Use the exact file list in First run. Reconcile those files or move
to a clean home; setting bootstrapped: true only turns the blockage into a half-home.
A worker will not start
- Validate
.pi/claw.jsonc: every worker needs an ID and cwd. - Check
enabled,autostart, model name, and provider auth. - Check whether its Herdr tab or tmux window is still open.
/jumpcan reopen a stopped session. - Confirm the worker cwd still belongs to the session recorded in
.pi/clawas/session-registry.json. - Check the worker’s terminal location in the same session registry before touching stale runtime sockets.
Use /steer and watch the reported error. Config edits take effect when the tab next launches, not
in a running session. Private messages still work while someone types directly in the tab.
After moving terminal hosts, an explicit reopen replaces a tmux location only when the old server is confirmed gone. If the old location cannot be checked, inspect it rather than deleting its registry entry and risking a duplicate session.
A task arrived but no turn started
The target tab and worker monitor show wake errors. For a missing model or authentication, repair the intended model or existing credentials in that tab, then resend the task. Clawa does not switch providers, accounts, or billing to make a task run.
If Pi has not acknowledged a wake after 15 seconds, Clawa reports that uncertainty without sending it again. Slow preparation may still finish. Inspect the target tab; if no turn is preparing and none starts, reload that tab before resending. Ask before making global Pi or account changes.
Pulses are silent
Try /pulse run owner:id first. Then check the visible definition, quiet hours, and owning session
against the Pulse runtime rules. Inspect .pi/pulses.json only after those
surfaces look right.
Identity feels stale after compaction
The next before_agent_start should refresh the five living files in Pi’s structured prompt after
Pi or Codex continuity. Check that the files are under the resolved home, within the documented
bounds, and not replaced by an outside instruction file you expected Clawa to load.
Check for an opaque full-prompt override that hides home sections. Clawa preserves other extensions’
prompt ownership; use .pi/APPEND_SYSTEM.md or structured sections for compatible additions.
For structural checks:
python /absolute/path/to/pi-clawa/skills/clawa-ops/scripts/doctor.py /path/to/home
Discord is connected but does not reply
- Look in the owning home’s Pi tab for the incoming message and connection status. Another home’s tab cannot receive this bot’s messages.
- By default the bot accepts DMs, mentions, and replies to itself. Check
/discordchat intake, channel policy, allowed or excluded channel IDs, and allowed users. - Unmarked final text stays in Pi. Reply with a shown
[mN]handle, or use[c]for a channel post. - Check the bot token in this home’s
.pi/clawa-discord/bot.env. A missing token leaves it off; a token already in use by another home is rejected. Do not paste the token into a bug report. - A reload or disconnect drops pending turns and rich action tokens. Search archived messages with
discord_historyif you need earlier context.