Skip to main content

Claude Code

A new Claude Code session in Saggar, running Fable 5.1 with high effort

Claude Code is the provider Saggar integrates most deeply. Its hooks report every event Saggar knows how to read, and its info view is the fullest.

Commandclaude
Installcurl -fsSL https://claude.ai/install.sh | bash
Hook configurationSaggar's local plugin, enabled in ~/.claude/settings.json
Skill location~/.claude/skills/saggar-cli/SKILL.md
Resumeclaude --resume <id>, or claude --continue without an id

Launching

The launch menu offers Fable 5.1 and Opus 5. Sonnet 5 and Haiku 4.5 sit under More models on the provider card. A reasoning effort chosen on the card is passed as --effort. Fable launches with the fable alias, so an older Claude Code opens the newest Fable it knows. The row is hidden only when claude auth status reports that you're signed out. Claude Code decides whether your account can use Fable when the session starts.

Saggar chooses the conversation's id before the process starts and passes it as --session-id, so restore never depends on a hook firing. When a session starts from a prompt, Saggar names it from that prompt with --name, and the name follows it into Claude's own UI.

Hooks

Installing hooks writes Saggar's local Claude Code plugin and a status bridge into your settings file. The plugin is registered from a marketplace Saggar keeps under ~/.saggar/, so nothing is fetched from the network, and /plugin lists it as saggar-hooks@saggar. It is separate from the public saggar@saggar-skills plugin, which carries the saggar-cli skill and no hooks. Removing the hooks removes only Saggar's entries.

With hooks installed Saggar:

  • knows Claude is running by contract, not by reading the screen;
  • hears permission prompts directly and records a privacy-reduced pattern of the Bash command that needed approval;
  • names the session from its first prompt;
  • records which files each prompt changed, for review;
  • follows subagents, agent-team tasks, compaction, and model switches;
  • shows live model, effort, context, and cost in the info view without replacing a status line you already have;
  • restores each session to its exact conversation.

Saggar refreshes its plugin each time it starts, so hook events your Claude Code has grown since you installed are added without installing again. If a settings file sets disableAllHooks, or a managed settings file allows only its own hooks, the card names the file rather than pretending the hooks work.

Version floors

Claude Code added hook events over time. Saggar installs only the ones your version can run and says what an older build is missing.

CapabilityNeeds
Name a session from its first prompt1.0.54
Follow session starts1.0.62
Notice a clean exit1.0.85
Follow subagent starts2.0.43
Hear permission prompts without reading the screen2.0.45
Follow agent-team task completion and idle teammates2.1.33
Confirm conversation compaction2.1.76
Follow failed turns2.1.78
Follow agent-team task creation2.1.84
Follow model changes2.1.251

Exact resume by id predates Claude Code's published history, so it is never gated.

Prompts and automatic approval

Claude's permission and plan dialogs are recognized on screen as well as through the hook, so an unhooked session still turns Needs you when a dialog is waiting. Automatic approval answers the first choice, which is the conservative "yes, this once" in every Claude dialog. Capability requests from Claude's own tools, such as a browser window, are recognized too.

The deny-list applies before any answer. See Agents for what it refuses.

Resume

With a recorded id, restore runs claude --resume <id>. Without one it runs claude --continue, which reopens the most recent conversation in that folder.

Further reading

Saggar runs Claude Code as it is. For how to get the most out of the agent itself, Anthropic's own guidance is the reference: