Disable swiz auto-continue globally or for a session
Enable swiz auto-continue globally or for a session
Run `swiz cleanup` from Claude Code
Configure swiz settings with presets or individual changes. Examples: "backlog worker", "creative mode", "quiet mode", "lockdown", "enable speak"
Run `swiz continue` from Claude Code
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
AI coding agents are capable of impressive things. They're also capable of forgetting to commit, shipping debug statements, ignoring failing CI, losing track of what they were supposed to do, and declaring "task complete" the moment they want to stop. swiz is a hook framework that doesn't let them get away with any of it.
One manifest of TypeScript hook scripts gets installed across Claude Code, Cursor, Gemini CLI, and Codex CLI — translating tool names, event names, and config formats automatically so every agent plays by the same rules. The hooks enforce discipline at every stage of the agent loop: before tools run, after they complete, and before the session is allowed to stop.
When swiz idea and swiz continue are used together, the system can enter a self-directed loop — a closed-loop state where the agent's own outputs become the next inputs, expanding the project without external prompts. See docs/ai-providers.md for the canonical terminology.
116 hooks. 12 event types. Every agent. Zero compromises.
bun install
bun link
Then use swiz from anywhere.
Every agent exposes hook events at key moments in the loop. swiz intercepts those moments:
User prompt submitted → userpromptsubmit-* hooks inject context (git state, active tasks)
↓
Agent calls a tool → pretooluse-* hooks can block the call before it executes
↓
Tool completes → posttooluse-* hooks validate results, remind about tests
↓
Agent tries to stop → stop-* hooks audit the full session state and block if anything is unresolved
Hooks communicate back using polyglot JSON — a single output format that all four agents understand. A hook script written once works identically whether it was triggered by Claude, Cursor, Gemini, or Codex.
{
"decision": "block",
"reason": "Uncommitted changes detected: 2 modified (3 file(s))...",
"hookSpecificOutput": { "permissionDecision": "deny" }
}
swiz supports every agent that has a hook system, with automatic translation of tool names and event names from a single canonical manifest:
| Agent | Config Path | Status |
|---|---|---|
| Claude Code | ~/.claude/settings.json | Full support — nested matcher groups, all 5 event types |
| Cursor IDE | ~/.cursor/hooks.json | Full support — flat list (version: 1), all events |
| Cursor CLI | ~/.cursor/hooks.json | Limited — only beforeShellExecution/afterShellExecution fire (tracking issue). Use swiz shim as workaround. |
| Gemini CLI | ~/.gemini/settings.json | Full support — nested matcher groups, all 5 event types |
| Codex CLI | ~/.codex/hooks.json | Full support — nested matcher groups, shipped event types (SessionStart, Stop, UserPromptSubmit) |
The canonical manifest uses neutral names. At install time, agents.ts translates everything per-agent so hook scripts never need to know which agent ran them:
Tool Names
npx claudepluginhub mherod/swiz --plugin swiz-coreEasily create hooks to prevent unwanted behaviors by analyzing conversation patterns
Quickly scaffold Claude Code hooks with templates, validation, and conflict analysis
Implementation of the babysitter technique - continuous orchestration loops for deterministic development. Run Claude in a loop with orchestration steps based on the babysitter-sdk and technique.
Production safety hooks for autonomous Claude Code operation. Context monitoring, syntax checking, branch protection, activity logging, and more.
oh-my-zsh for Claude Code — 11 agents, 33 commands, 24 skills, 15 hooks + 9 examples (21 events), 9 rules, 4 MCP (minimal: playwright, context7, jina-reader, [email protected]). One-line install: curl -fsSL https://raw.githubusercontent.com/sangrokjung/claude-forge/main/install.sh | bash
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses