seob717/nunchi

7 stars · Last commit 2026-07-30

Compile CLAUDE.md rules into trigger-bound hooks — a Claude Code plugin that delivers each rule at the moment it matters.

README preview

# nunchi

[![License](https://img.shields.io/github/license/seob717/nunchi)](LICENSE)
[![Release](https://img.shields.io/github/v/release/seob717/nunchi)](https://github.com/seob717/nunchi/releases)

**English** | [한국어](README.ko.md)

*"Rules with nunchi — delivered before you have to ask."*

nunchi is a Claude Code plugin that turns CLAUDE.md rules into event listeners. Instead of loading every rule at session start and hoping it survives 40 turns and a compaction, each rule is delivered at the exact moment its action fires:

![A real session: Claude fixes a bug and runs gh pr create; nunchi blocks the first attempt once and delivers docs/pr-rules.md as the reason; the retry passes with the rules in context](assets/nunchi-demo.gif)

*(real session, replayed — the first `gh pr create` is denied exactly once, with the full rules doc — read from `docs/pr-rules.md` at that moment — as the deny reason; the retry passes)*

One `/nunchi:compile` turns your CLAUDE.md into trigger-bound rule files; a PreToolUse hook does the delivery from then on. What you get, all [measured](#measured-results):

- **−42.5% tokens at session start** — moving 8 rule docs (~76KB) out of `@imports` saved ~34k prompt tokens per session start; the full doc is paid only in sessions where its action actually fires.
- **Rules survive compaction** — a SessionStart hook re-arms delivered rules after every `/compact`, verified across repeated compactions.
- **Every delivery is logged** — `/nunchi:report` shows which rule fired when, and what it saved in your repo.

View full repository on GitHub →