Fugu Install Not Working? The Complete Troubleshooting Guide

Fugu’s installers are unusually well-behaved — dry-run modes, automatic backups, config rollback on parse failure — but things still go wrong: half-finished installs, keys that won’t authenticate, launchers that aren’t found, models that don’t appear. This is the failure catalog for Sakana Fugu‘s coding-agent installers, organized by symptom, with every fix drawn from Sakana’s official documentation and installer source as of August 19, 2026.

First move: the clean re-run

If your first install failed partway through, know this before anything else: re-running the one-liner will not help on its own. The bootstrap reuses the ~/.fugu it already cloned, so it runs the same (possibly broken or stale) copy of the installer again. The documented fix is to remove the clone and start clean:

rm -rf ~/.fugu && curl -fsSL https://sakana.ai/fugu/install | bash

This is safe to run: ~/.fugu is just the cloned repository. Your Codex config, its backups, and your stored keys live elsewhere (see the file map below) and are not touched by removing it.

Key and authentication errors

Sakana keys start with fish_ and are shown once, at creation. If you didn’t save yours, there’s nothing to recover — create a new key in the console and store it. From there, the fix depends on where the key needs to go:

  • Codex side: codex-fugu --set-key rotates the stored key, or bash ~/.fugu/scripts/install.sh --set-key re-prompts and stores without redeploying config.
  • Claude Code side: bash ~/.fugu/scripts/install-claude.sh --set-key reconfigures only the stored key; during a reinstall, --reconfigure overwrites an existing key instead of keeping it.
  • Manual Claude Code setup: the classic mistake is exporting ANTHROPIC_API_KEY. Fugu authenticates via ANTHROPIC_AUTH_TOKEN — a bearer token. If auth fails and you set the variables by hand, check this first.

Remember the ownership rule from Sakana’s terms: all usage on a key is attributed to the key owner, and sharing credentials is prohibited — rotate a key the moment you suspect it leaked.

PATH problems: installed but “not found”

Three distinct PATH failures produce similar-looking symptoms; the installers warn about each at install time, but the warnings scroll by fast.

claude-fugu: command not found. The launcher installs to ~/.local/bin, which isn’t on every distro’s default PATH. Fix: export PATH="$HOME/.local/bin:$PATH" (add it to your shell profile to make it stick).

Codex installed, but not on PATH. The installer prints the exact export line for its install directory when this happens — add that directory to PATH or open a new shell.

The wrong Codex runs. Subtler: another Codex installation sits ahead of the pinned one on your PATH and shadows it, so you’re running an unverified version against Fugu’s configs. The installer detects and names the shadowing version. Fix: remove the other install, or put the pinned install’s directory first on PATH. codex-fugu --status shows the installed version versus the pinned target, which makes this easy to confirm.

claude itself missing: the claude-fugu launcher checks that Claude Code is on PATH before starting and exits with an install hint if not — the Fugu installer never installs Claude Code for you.

“The launcher isn’t updating” — two different systems

This one is a design difference, not a bug, and it confuses everyone eventually. The two launchers have opposite update behavior:

codex-fugu updates itself — it checks the repo for config updates at most once an hour and offers to apply them. If it seems to have stopped offering, you probably dismissed a prompt: codex-fugu --recheck re-enables dismissed prompts and checks immediately; --check forces a check without waiting for the hourly window. If updates never appear, make sure CODEX_FUGU_NO_UPDATE=1 isn’t set in your environment.

claude-fugu never updates itself. No checks, no prompts, by design. New Fugu models or mappings for Claude Code arrive only when you re-run bash ~/.fugu/scripts/install-claude.sh. If a model everyone else can see is missing from your Claude Code, this is almost always why.

Where everything lives: the file map

PathWhat it is
~/.fugu/The cloned Fugu repo (bootstrap target; safe to delete and re-clone)
~/.codex/fugu.jsonModel catalog: which Fugu models Codex can list
~/.codex/fugu.config.tomlThe Fugu profile (default model, effort, provider, catalog path)
~/.codex/config.tomlYour Codex config; Fugu’s provider block sits inside managed # >>> fugu:... >>> markers
~/.codex/.envStored Sakana API key (Codex side)
~/.codex-backups/codex-config-<timestamp>/Timestamped config backups + session index, manifest, SHA-256 sums; survives rm -rf ~/.codex; ten most recent kept
~/.claude/.fugu-envStored Sakana API key (Claude Code side), mode 0600
~/.local/bin/claude-fugu, codex-fuguThe launchers

Restoring a Codex backup:

rsync -a --exclude MANIFEST.txt --exclude SHA256SUMS ~/.codex-backups/codex-config-<timestamp>/ ~/.codex/
codex doctor   # expect: config.toml parse: ok

codex doctor is also your general-purpose config check: the installer runs it after every edit it makes and rolls back automatically if parsing fails, so a hand-edit is the usual culprit when it reports a parse error.

Sessions vanished after a version switch

Not vanished — reindexed. Codex keeps a per-version session index, so after the installer switches your Codex version, codex resume enumerates a different set of past sessions. Transcripts under ~/.codex/sessions are never deleted. To see the old list again, run the Codex version that wrote it, or restore the saved index from the pre-switch backup: cp -p ~/.codex-backups/codex-config-<timestamp>/*.sqlite* ~/.codex/.

Escalating to Sakana

For genuine bugs, Sakana’s README directs users to fugu.sakana.ai for support. Practical note from our own checks: that address currently resolves to the Sakana console, so you’ll need to be logged in — and it is subject to the same regional availability as the rest of Sakana’s services (not accessible from the EU/EEA, UK, or Switzerland as of August 2026). Before escalating, codex-fugu --status and a --dry-run of the installer give you the state details a bug report needs.

Is rm -rf ~/.fugu really safe?

Yes. ~/.fugu is only the cloned repository the bootstrap works from. Your Codex config (~/.codex), its backups (~/.codex-backups), and stored keys (~/.codex/.env, ~/.claude/.fugu-env) all live outside it and are untouched. Removing it and re-running the one-liner is Sakana’s documented fix for a failed partial install.

I lost my API key — can I get it back from the config?

The installers store the key on disk (~/.codex/.env or ~/.claude/.fugu-env), so an existing install still authenticates. But Sakana shows a key only once at creation — if it’s gone from your records and your machines, create a new key in the console and rotate it in with –set-key.

Does the Claude Code installer make backups too?

No, because it has nothing to back up: it deploys no config bundle and never edits Claude Code’s configuration. It writes only the launcher and its own key file. The backup system (~/.codex-backups) belongs to the Codex installer, which does edit config.toml.

Codex broke after I hand-edited config.toml — now what?

Run codex doctor to confirm it’s a parse failure, then either fix the TOML by hand or restore the most recent backup from ~/.codex-backups with the rsync command above. Fugu’s own edits can’t cause this — the installer validates with codex doctor and rolls back automatically on failure.

Setup guides, if you’re starting over: Claude Code, Codex, Windows. API-level issues (auth formats, timeouts, ignored parameters) are covered in the Fugu API guide — and if you want to sanity-check that the models themselves are up, the playground is a quick independent probe via OpenRouter.