A community-driven registry for the Claude Code ecosystem. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Eyelet - Claude Code Hook Orchestration Framework
"Thread through the eyelet!" - A sophisticated hook management system for AI agent workflows
--autoupdate flag for install-all commandeyelet recallSQLite database logging support! Choose between JSON files, SQLite database, or both:
# Enable SQLite logging
uvx eyelet configure logging --format sqlite
# Use both JSON and SQLite
uvx eyelet configure logging --format json,sqlite
# Query your hook data
uvx eyelet query search --text "error"
uvx eyelet query summary --last 24h
Eyelet provides comprehensive management, templating, and execution handling for AI agent hooks. Like an eyelet that securely connects hooks to fabric, Eyelet connects and orchestrates your AI agent's behavior through a reliable workflow system.
eyelet doctor checks your configuration ✅eyelet configure install-all sets up everything ✅# Install universal logging for ALL hooks with auto-updates
uvx eyelet configure install-all --autoupdate
# Or install without auto-updates (manual updates required)
uvx eyelet configure install-all
# Enable SQLite logging for better performance
uvx eyelet configure logging --format sqlite
# Check your configuration health (detects unpinned versions)
uvx eyelet doctor
# Query your hook data
uvx eyelet query summary # Session overview
uvx eyelet query search --help # Search options
uvx eyelet query errors # Debug issues
The web dashboard provides real-time monitoring of all eyelet databases. Since it requires additional dependencies, you have three options:
# Option 1: Install locally with web dependencies
uv add eyelet[web] fastapi uvicorn[standard] jinja2
eyelet dashboard web --open-browser
# Option 2: Use uvx with dependencies (one-time setup)
uvx --with fastapi --with "uvicorn[standard]" --with jinja2 eyelet dashboard web -o
# Option 3: Use CLI-only commands (no web dependencies required)
uvx eyelet dashboard metrics # Static metrics
uvx eyelet dashboard hooks # Recent hooks table
uvx eyelet dashboard search "error" # Search across databases
The web dashboard automatically finds available ports (preferring 443) and generates sslip.io URLs for easy access.
When using uvx, eyelet runs in an isolated environment. To ensure you're using the latest version:
Always use @latest tag (recommended):
uvx eyelet@latest [command]
This fetches the latest version from PyPI every time.
For persistent installation with uv:
uv tool install eyelet@latest # Install latest
uv tool install --reinstall eyelet@latest # Force reinstall
Enable auto-updates in hooks:
uvx eyelet configure install-all --autoupdate
This configures hooks to use uvx eyelet@latest which always fetches the latest version.
Check current version:
uvx eyelet --version
Use pipx for global installation (auto-updatable):
pipx install eyelet
pipx upgrade eyelet # When updates are available
See Update Guide for detailed update instructions.
Run eyelet doctor to check if your hooks are configured for auto-updates.
If you're using mise for project management, add eyelet to your .mise.toml:
# .mise.toml or mise.toml
[tools]
python = "3.11"
[tasks.hooks-install]
description = "Install eyelet hooks for Claude Code"
run = "uvx eyelet@latest configure install-all --autoupdate"
[tasks.hooks-doctor]
description = "Check eyelet configuration and version"
run = """
uvx eyelet@latest doctor
echo "📌 Version: $(uvx eyelet@latest --version)"
"""
[tasks.hooks-logs]
description = "View recent hook logs"
run = "uvx eyelet@latest logs --tail 20"
# Shortcuts
[tasks.hd]
alias = "hooks-doctor"
Then use:
mise run hooks-install # Set up eyelet hooks
mise run hd # Check configuration (shortcut)
mise run hooks-logs # View recent logs
See full example for more tasks and options.
Note: Eyelet is designed to run via uvx. Local installation may require additional configuration (YMMV).
Eyelet includes a powerful universal hook handler that logs EVERY Claude Code hook to a structured directory:
# Install logging for all hooks with one command
uvx eyelet configure install-all
# Your hooks will be logged to:
./eyelet-hooks/
├── PreToolUse/
│ └── Bash/2025-07-28/
│ └── 20250728_133300_236408_PreToolUse_Bash.json
├── PostToolUse/
│ └── Read/2025-07-28/
├── UserPromptSubmit/2025-07-28/
├── Stop/2025-07-28/
└── PreCompact/manual/2025-07-28/
Each log contains:
eyelet logs --follow)# Core Operations
uvx eyelet configure # Configure hooks ✅
uvx eyelet configure logging # Manage logging settings (JSON/SQLite) ✅
uvx eyelet execute # Run as hook endpoint ✅
uvx eyelet logs # View JSON execution logs ✅
uvx eyelet doctor # Health check and diagnostics ✅
uvx eyelet recall # Search Claude Code conversations (NEW!) ✅
# Query & Analytics (SQLite)
uvx eyelet query search # Full-text search with filters ✅
uvx eyelet query summary # Session and hook statistics ✅
uvx eyelet query errors # Error analysis and debugging ✅
uvx eyelet query session # View specific session logs ✅
uvx eyelet query grep # Pattern matching across logs ✅
# Discovery & Templates
uvx eyelet discover # Find available hooks ✅
uvx eyelet template list # Browse templates ✅
uvx eyelet template install # Deploy a template ✅
Eyelet's SQLite logging provides powerful analytics and querying capabilities:
# Enable SQLite logging
uvx eyelet configure logging --format sqlite
# Search for specific patterns
uvx eyelet query search --text "error" --tool Bash --last 1h
# Get session summary
uvx eyelet query summary --format json
# Analyze errors
uvx eyelet query errors --last 24h
# Export specific session
uvx eyelet query session <session-id> --format json > session.json
{
"hooks": [{
"type": "PreToolUse",
"matcher": "Bash",
"handler": {
"type": "command",
"command": "uvx eyelet execute --log-only"
}
}]
}
Eyelet provides built-in validation for Claude settings files and VS Code integration:
# Validate your Claude settings
uvx eyelet validate settings
# Validate a specific file
uvx eyelet validate settings ~/.claude/settings.json
The project includes a JSON schema for Claude settings files. VS Code users get:
See docs/vscode-json-linting.md for setup instructions.
Eyelet embraces hardware connection terminology for reliable, secure attachment:
Eyelet includes comprehensive testing tools to ensure your hooks are working correctly:
# Run the interactive hook test
mise run test-hooks
# This will generate a unique test ID and guide you through testing all tools
# After running the test commands, verify with:
mise run test-hooks-verify zebra-1234-flamingo-5678
# View hook statistics
mise run hook-stats
# Generate a coverage report
mise run hook-coverage
# Clean old logs (older than 7 days)
mise run hook-clean
# Run all tests
mise run test
# Run linting
mise run lint
# Run type checking
mise run typecheck
# Run all CI checks
mise run ci
The test_all_hooks.py script provides comprehensive hook testing:
We welcome contributions! Please open issues and pull requests on GitHub.
MIT License - see LICENSE for details.
Built with love for the AI development community. Special thanks to the Anthropic team for Claude Code and its powerful hook system.
"The strongest connections are forged under pressure." - Connect with Eyelet and explore the possibilities of AI agent orchestration.
Give Claude Code memory that evolves with your codebase via hooks and LLM-compiled knowledge
Security hooks with SSRF protection, MCP compression, and OpenTelemetry tracing
Context management with hooks for state via ledgers, MCP without context pollution
An LLM council that reviews your coding agent's every move for quality assurance