Clooks: A Persistent Hook Runtime for Claude Code

✍️ OpenClawRadar📅 Published: April 2, 2026🔗 Source
Clooks: A Persistent Hook Runtime for Claude Code
Ad

Performance Problem and Solution

As Claude Code pipelines grow more robust, hook counts can increase from 2-3 lightweight checks to 50+ handlers across SessionStart, PreToolUse, PostToolUse, and Stop events. Each hook typically spawns a fresh Node or Python process, creating latency from pure spawning overhead that accumulates per session.

Clooks solves this by providing a persistent HTTP daemon that handles hook dispatch without process spawning. Since Claude Code already supports HTTP hooks natively, Clooks gives you a daemon worth pointing them at.

Performance Benchmarks

From the source benchmarks:

  • Single invocation: ~34.6ms → ~0.31ms
  • Full session (120 calls): ~3,986ms → ~23ms
Ad

Core Features

  • clooks migrate: Converts existing hooks automatically with one command, no rewriting required
  • LLM handlers: Call Claude directly from hook config with prompt templates and variables like $TRANSCRIPT, $GIT_DIFF, $ARGUMENTS
  • Batch grouping: Handlers with the same batchGroup share a single API call
  • Dependency resolution: depends: [other-handler] syntax with topological sorting into parallel execution waves
  • Plugin system: Package reusable hook sets as clooks-plugin.yaml, install with clooks add
  • Hot reload: Edit the manifest, daemon picks it up instantly
  • Metrics + cost tracking: clooks stats shows what's firing, clooks costs tracks LLM spend

Getting Started

Install with: npm install -g /clooks

Then run: clooks migrate

Current version is v0.5, actively developed with rough edges. The tool is open to contributions.

📖 Read the full source: r/ClaudeAI

Ad

👀 See Also