nrzz

Everyhook — Git skill for Claude Code

Git community

Write a hook once, run it in every coding agent: Claude Code, Codex CLI, Gemini CLI, GitHub Copilot CLI and Cursor.

How to install Everyhook

This entry records only its repository, not the path inside it, so there is no exact command to give. Open nrzz/everyhook and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Everyhook does

Write a hook once, run it in every coding agent: Claude Code, Codex CLI, Gemini CLI, GitHub Copilot CLI and Cursor. One contract for the hook, an adapter per agent, install and uninstall into each agent's configuration, and a bench that puts the hook to the JSON each real agent sends. Zero dependencies, zero tokens.

Alternatives in Git

  • Openclaude — Open Claude Is Open-source coding-agent CLI for OpenAI, Gemini, DeepSeek, Ollama, Codex, GitHub Models, and 20 22.5k ★
  • Fresh Start — The original nirholas/claude-code before DMCA and take down 6.2k ★
  • Memorix — Open-source cross-agent memory layer for coding agents via MCP 392 ★

README

everyhook

[![test](https://github.com/nrzz/everyhook/actions/workflows/test.yml/badge.svg)](https://github.com/nrzz/everyhook/actions/workflows/test.yml) [![e2e](https://github.com/nrzz/everyhook/actions/workflows/e2e.yml/badge.svg)](https://github.com/nrzz/everyhook/actions/workflows/e2e.yml) [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) ![node >= 18](https://img.shields.io/badge/node-%3E%3D18-339933.svg) ![dependencies: none](https://img.shields.io/badge/dependencies-none-brightgreen.svg) [![part of the Claude Code toolkit](https://img.shields.io/badge/Claude%20Code-toolkit-d97757.svg)](https://github.com/nrzz/claude-code-toolkit)

Stack Overflow's 2026 survey says the typical developer uses more than one coding agent (Claude Code 66%, GitHub Copilot 59% among agent users). Every one of them now has a hook system, and no two agree. A hook that stops `git push --force` reads JSON on stdin in all five, and that is where the likeness ends. The event is `PreToolUse` in Claude Code and Codex CLI, `BeforeTool` in Gemini CLI and `preToolUse` in Copilot CLI and Cursor. The refusal is spelled four ways. `ask` works in two of them. A timeout is in seconds in four and in milliseconds in one. Exit code 2 blocks in Claude Code, Gemini CLI (when stderr has text), Copilot CLI (without the reason) and Cursor, and does not block in Codex CLI on Windows, where PowerShell turns it into 1. Exit code 1 lets the call run in four of them and denies it in Copilot CLI.

everyhook is one contract for the hook and one adapter per agent. Write the hook once, `install` it into every agent, and `bench` it against the JSON each real agent sent. **Write a hook once. Run it in every coding agent.**

Claude Code Codex CLI Gemini CLI Copilot CLI Cursor
Configuration settings.json hooks hooks.json, or [hooks] in config.toml; trusted by hash settings.json hooks hooks/*.json, `.github/hooks