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

      --fields <list>
          Keep only these dotted paths of the JSON data, comma-separated

  -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 the selected integration's managed hooks, plugin files, skills, and registrations. Shared settings and marketplaces retain unrelated entries. OpenCode's fufu.js is removed only when it has fufu's ownership header.

JSON commands matching current or retired fufu spellings are managed even when pasted by hand. Hand-written shell equivalents remain. The client references list the files and legacy registrations each uninstaller removes.

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.