amim · claude code plugins

Plugins that fire at the right moment.

A personal Claude Code marketplace. Two plugins so far — each one a hook on the session lifecycle that does its job and stays quiet otherwise. Add it once with @amim.

Browse plugins
2 plugins 0 dependencies Node-only, cross-platform MIT

the session wire

One Claude Code session. Four events. Two plugins listening.

Every session is a stream of lifecycle events. A plugin is just a hook clamped onto one of them — it wakes when its event fires, does one thing, and goes quiet. Here’s the wire, and where each plugin taps in.

SessionStart — a session begins

First run only: claude-ntfy mints your private push topic and prints one-time subscribe steps. Silent on every session after.

UserPromptSubmit — you hit enter, every turn

comment-rule re-injects one line — Remember the code commenting rule. — so the discipline survives turn 500 and post-compaction, not just turn 1.

Stop — the turn ends

claude-ntfy pushes what Claude actually said — PR link, decision, or error. The title adapts: a question becomes “needs you”, an error becomes “error”, links stay tappable.

Notification — Claude needs you

Permission prompts and “needs attention” messages land on your channel at high priority, so a waiting agent never strands you.


the catalog

Two small plugins, no ceremony.

Both are pure Node — no npm install, no jq, no bash, no execute bits. They run identically on macOS, Linux, and Windows, and uninstall without leaving anything behind in your settings.

comment-rule @amim

v0.1.0

Keeps your diffs free of comment noise — turn after turn.

Put the commenting rule in CLAUDE.md and Claude honors it at turn 1, then drifts as the rule slides out of context. This plugin re-injects a one-line nudge on every prompt, pointing at a skill that holds the real rule. Same clean output at turn 500 as at turn 1.

UserPromptSubmit + skill
$ /plugin install comment-rule@amim

claude-ntfy @amim

v0.1.2

Notifications worth reading — on your channel.

Not a static “your turn.” It sends Claude’s real closing message — de-markdowned, with the PR link or the question it’s waiting on. Titles and priority adapt to questions and errors. ntfy works out of the box — a private, unguessable topic, minted on first run — and Slack, Discord, or any webhook are one /claude-ntfy setup away.

channels ntfylive Slacklive Discordlive webhooklive Teamsplanned
$ /plugin install claude-ntfy@amim

install

Add the marketplace once. Install anything from it.

No token needed for public plugins — gh auth or a public-repo clone is enough. Hooks register automatically; there’s no settings.json to edit.

Add the marketplace

Register the amim handle in your Claude Code. One time, per machine.

$ /plugin marketplace add amims71/claude-plugins

Install a plugin

Pull in either plugin by name, scoped to the @amim handle.

$ /plugin install claude-ntfy@amim

That’s it — it’s wired

The hooks register themselves. Confirm anytime with the hooks viewer.

$ /hooks

Pull updates later: /plugin marketplace update amim


extend

Bring your own.

The marketplace is just a repo. Drop a plugin folder in, append one entry to the registry, push — users re-sync with a single command.

  1. Create plugins/<name>/ with a .claude-plugin/plugin.json manifest.
  2. Add the hooks/, skills/, commands/, or agents/ it needs.
  3. Append an entry to .claude-plugin/marketplace.json.
  4. Bump the version, commit, push. Done.
.claude-plugin/marketplace.jsonregistry entry
{
  "name": "your-plugin",
  "description": "What it does, in one breath.",
  "source": "./plugins/your-plugin",
  "category": "workflow"
}
// users: /plugin marketplace update amim