swiz translates its TypeScript hook definitions for Claude Code, Cursor, Gemini CLI, and Codex CLI. Hooks add context before tools run, validate the result afterwards, and audit unfinished work before the session stops.
$
bun install && bun link
Read the docs
swiz adds context when a prompt arrives, blocks unsafe tool calls before execution, inspects results afterwards, and audits the session before it stops.
Hooks enforce standards that agents consistently skip when left to their own judgment.
@ts-ignore, eslint-disable, force pushes, credential leaks, and workflow permission escalations before they ever execute.swiz idea and swiz continue together create a closed loop — the agent's own outputs become the next inputs, expanding the project without external prompts.Every hook is TypeScript, shares utilities from a common layer, and produces polyglot JSON that every supported agent understands.
swiz translates tool names and event names at install time. Hook scripts never need to know which agent triggered them.
~/.claude/settings.json. Full support across all 5 event types.~/.cursor/hooks.json (version 1). All events fire in the IDE.~/.gemini/settings.json. Full support across all 5 event types.
When swiz idea and swiz continue are used together, the agent's own outputs feed back as the next inputs — creating a closed loop that expands the project without external prompts.
swiz install to write hooks into your agents, and swiz status to verify.