Skip to content

ff unhook

Remove integrations installed by ff hook. With no slugs, report detected integrations and ask; name clients or shells to remove those, or use --all for all detected integrations.

Usage

Usage: ff unhook [OPTIONS] [slug]...

Examples

ff unhook                       # Report and ask
ff unhook claude                 # Remove one client integration
ff unhook --all                  # Remove all managed integrations
ff hook -l                      # Inspect the remaining setup

Options

Arguments:
  [slug]...
          Slugs to unhook; none reports and asks

Options:
      --all
          Everything detected, without asking

      --json
          Emit machine-readable JSON

      --fetch
          Fetch now on commands that support fetching, regardless of cadence

      --no-fetch
          Skip the fetch: read the tracking refs as they stand

      --session <name>
          Session name for this invocation

  -C, --cwd <dir>
          Run as if fufu had been started in <dir>

  -h, --help
          Print help (see a summary with '-h')

What is removed

Fufu removes managed JSON commands, marked shell lines, the owned Claude plugin directory, and installed skill directories. JSON commands matching current or retired fufu spellings are managed even when pasted by hand. Unrelated settings and hand-written shell equivalents remain. Old managed MCP registrations are removed; unrelated commands and unmarked Codex TOML entries remain.

Restart the affected client or shell so its active configuration reflects the removal. Removing hooks does not remove repository history; fufu commands can still take snapshots when invoked.