claude

ai-maestro-janitor

Keeps your dev environment tidy and secure, in the background: drift + supply-chain detectors, secret/injection guards on tool calls, rate-limit auto-resume, prompt-cache keep-alive, and a markdown memory system. Runs on a per-session CronCreate heartbeat (session-scoped, re-armed each session) plus one machine-wide background daemon that owns every global-scope update.

1 on GitHubby Emasoftv3.8.13MITupdated 21 days ago

Not in a marketplace yet, so it loads for one session with --plugin-dir.

Plugin ai-maestro-janitor in Emasoft/ai-maestro-janitor. Commands read from the repo's manifest — 19 days ago.

This plugin runs code on your machine — its hooks fire automatically on events like tool use. The exact commands are listed below; read them before installing.

What it installs

Skills (65)

  • memgrep
  • janitor-actions-up

    Bulk-pin every GitHub Actions reference in .github/workflows/ to a verified commit SHA (with the human-readable tag as a comment), and bring each action to its newest compatible release. Wraps Azat-io's actions-up CLI behind a safety harness — dry-run preview first, optional minimum-release-age gate

  • janitor-arm

    Arms or renews the ai-maestro-janitor heartbeat cron. Use when first installing the plugin, upgrading from pre-stub (≤ v0.4.10), or in response to a [janitor-renew] nudge before the 7-day auto-expiry. Trigger with /janitor-arm or "arm the janitor heartbeat".

  • janitor-audit

    Runs an on-demand audit of open PRs, git worktrees, TRDD drift, and task/PR mismatches. Use when the user asks "janitor audit", "what's drifted?", or "audit pending things". Trigger with `/janitor-audit` or by asking for a janitor audit report.

  • janitor-auto-manage-oauth-both

    Turns OAuth auto-rotation ON or OFF on BOTH sides at once - the janitor's opt-in flag and the ai-maestro server's R16 flag file - so the two halves can never disagree. Pass on or off. Writes both flags or neither. Trigger with /janitor-auto-manage-oauth-both on|off, "turn oauth rotation on for janit

  • janitor-auto-manage-oauth-off

    Deactivates the janitor's unattended multi-account OAuth rotator on this machine. Clears the opt-in flag so the daemon's oauth-rotator-tick Task stops rotating — no more credential backups or account swaps. Also tears down any legacy launchd agent left by a pre-fold install. Leaves your captured acc

  • janitor-auto-manage-oauth-on

    Opts THIS machine into the janitor's unattended multi-account OAuth rotator. Sets an opt-in flag the always-on janitor daemon's 60s oauth-rotator-tick Task reads to rotate the live Claude Code credential to an alternate paid account before a rate-limit 429 stalls an overnight session. Default OFF, m

  • janitor-auto-repomap-off

    Disable the auto-maintained project map - removes the fenced repo-map block from this project's CLAUDE.md entirely (human narrative untouched, byte-preserved) and clears the opt-in flag so the stale-map heartbeat nudge stops. Use when the user says "turn off the repo map", "remove the auto map from

  • janitor-auto-repomap-on

    Enable the auto-maintained project map in this project's CLAUDE.md - generates the fenced repo-map block (one line per file + public symbols, convention-collapsed) and turns on the stale-map heartbeat nudge. Use when the user says "turn on the repo map", "enable the project map", "add the auto map t

  • janitor-autofix-off

    Disables the janitor's "act, don't ask" autofix mode in this project. After running, the janitor reports security/CI/publish findings but does not apply fixes without explicit confirmation. Idempotent — safe to re-run. Trigger with /janitor-autofix-off, "turn off autofix", "disable janitor autofix",

  • janitor-autofix-on

    Re-enables the janitor's "act, don't ask" autofix mode after a /janitor-autofix-off. The janitor will once again apply fixes to rulesets, workflow YAMLs, publish scripts, and push hooks without waiting for confirmation. Idempotent — safe to re-run. Trigger with /janitor-autofix-on, "turn on autofix"

  • janitor-branch-protection-setup

    Applies the ratified branch-protection baseline to the default branch of this project's GitHub repo — baseline-history-protect, baseline-pr-and-checks and baseline-tag-protect, owner-bypassed, with history rewrite allowed and linear history deliberately excluded. Idempotent — re-running updates in p

  • janitor-capture-all-logins

    Top up EVERY rotator account's OAuth token in one pass, proactively — before any of them expire, not after. Walks the whole roster and re-mints tokens from each account's already-saved claude.ai session (does NOT do the human login itself — run /janitor-refresh-cc-logins first if a session has lapse

  • janitor-compact-context

    Jev-compact this session RIGHT NOW — a zero-model-turn clear-and-inject, on demand. Composes a template handoff from on-disk facts, fires /clear plus the bootstrap, and the FRESH session's own SessionStart upgrades it into a richer Jev-compacted context. The manual "do it now" button for the same op

  • janitor-credential-window-audit

    Audits the window during which long-lived credentials exist in repo, shell, and CI configuration. Surfaces .env leaks, plaintext token files, suspicious env-var NAMES (never values), and CI workflows that persist secrets. Reports only — no auto-fix. Use when the user asks to "audit credential exposu

  • janitor-dependabot-doctor

    Audits and auto-fixes Dependabot (or Renovate) config so dependency-update PRs land safely. Scaffolds a hardened .github/dependabot.yml when none exists, matching detected ecosystems (pip, npm, cargo, gomod, bundler, github-actions). Use when the user asks to "audit dependabot", "fix dependabot conf

  • janitor-disarm

    Stops the ai-maestro-janitor heartbeat cron. Use when pausing janitor activity without uninstalling, debugging heartbeat behaviour, or switching projects. Trigger with /janitor-disarm, "stop the janitor", or "kill the heartbeat".

  • janitor-doctor

    Pre-flight health check for ai-maestro-janitor. Use when the heartbeat is misbehaving, after install/upgrade, before reporting an issue, or any time a detector seems to silently skip. Trigger with /janitor-doctor, "diagnose the janitor", "is the janitor healthy", "check janitor preconditions", or "w

  • janitor-expand

    Use when an injected compacted context shows a pointer like `[[elided id=<uuid>:<n> tokens=<t> "<preview>"]]` and you need the original text it stands in for. Expands one pointer at a time — never reads the transcript file directly.

  • janitor-findings

    Browse THIS project's janitor findings ledger — the per-project mailbox where every janitor finding (drift, security, supply-chain) is indexed with a traceable ref (ticket/TRDD). Use when the user asks what the janitor found / to see janitor findings / to read a finding by its T- or TRDD- ref / to a

  • janitor-fork-pr-cache-audit

    Audits .github/workflows/*.yml for the fork-PR cache-poisoning and pull_request_target checkout patterns from the TanStack supply-chain incident. Use when the user asks to "audit cache poisoning", "scan for cache-poisoning PRs", "check pull_request_target workflows", "TanStack-style audit", or after

  • janitor-github-config-fix

    Review and FIX GitHub-config drift on ai-maestro plugin repos — an UNPROTECTED default branch, a required_linear_history rule that BLOCKS merges, or a missing PR-review / status-check / tag-protection gate. Plan-first: it prints exactly what would change and applies only after you approve, only wher

  • janitor-github-workflow-create

    Analyzes a project and creates a zizmor-clean set of GitHub Actions workflows from scratch, including bootstrapping the GitHub repo via `gh repo create` if it does not yet exist. Use when starting a new project, when a project has no .github/workflows/ directory, when the user asks to "set up CI", "

  • janitor-github-workflow-doctor

    Audits and auto-fixes GitHub Actions workflow security findings using zizmor. Use when the user asks to "audit workflows", "harden GitHub workflows", "fix workflow security", "run zizmor", "scan github actions", or after creating/modifying any .github/workflows/*.yml file. Trigger with /janitor-gith

  • janitor-gitignore-fix

    Remedy for a gitignore-coverage / ADVISORY-GITIGNORE-COVER finding — a private class (`.env`, `*.key`, `reports/`, …) missing from `.gitignore`, or a private file already tracked. Plan-first — shows the proposed `.gitignore` diff and the exact `git rm --cached` lines, mutates nothing until you confi

  • janitor-global-arm

    FLAG-ONLY revive of a globally-disarmed ai-maestro-janitor — clears the machine-wide kill-switch /janitor-global-disarm set, so the daemon may respawn and every already-armed per-session heartbeat resumes firing. Does NOT arm any per-project heartbeat cron and does NOT fan out across projects (that

  • janitor-global-disarm

    TRUE machine-wide STOP of the global ai-maestro-janitor daemon AND every per-session heartbeat. Sets the kill-switch so the daemon exits and removes its OS keepalive, AND raises the global-pause flag so every armed session's heartbeat self-disarms (deletes its own cron) on its next fire — halting al

  • janitor-global-reload-skills

    Machine-wide reload of freshly installed STANDALONE (non-plugin) skills and commands across EVERY running Claude Code session, without visiting each one. Stamps a machine-wide skills-reload generation; each session's next heartbeat emits [janitor-reload-skills] once and runs /reload-skills locally,

  • janitor-handoff-and-clear

    Harvest the session's material state into wikimem, write a CONCISE LINK-ONLY handoff (an index of [[wikimem]]/ATOM-id/TRDD links, never inlined content), then /clear this session and bootstrap the fresh one to re-arm the heartbeat and resume from the handoff. Prefer over /janitor-compact-context whe

  • janitor-identify-environment

    Report this Claude Code session's full runtime environment — terminal, OS, filesystem, sandboxing, CI, editor/IDE, network, cloud, python env, git/GitHub, MCP servers, wikimem, and installed plugins. Secret-safe and fail-open; writes full detail to disk as JSON and returns a compact digest. Use when

  • janitor-memory-atomize

    ATOMIZE executor — the autonomous pass that migrates a FREE-PROSE wikimem page into first-class ATOMS: inserts a LEADING block-property marker `^<id> [keywords: …]` above each durable fact so memgrep recalls it individually by its keywords and returns its full per-atom record. Purely ADDITIVE + writ

  • janitor-memory-bootstrap

    BOOTSTRAP — stand up the three-scope wiki-memory system in a project that doesn't have it yet (the one-time adoption / fleet-rollout step). Creates the git-tracked PROJECT-scope memory dir, seeds the project's overview entry page (never a MEMORY.md stub — that file is the harness-owned buffer the ha

  • janitor-memory-conflict

    CONFLICT + fact-verify executor — reconciles contradictory or obsolete wikimem pages against source + git history. Default is a non-destructive DEMOTE (obsolete page folded into a compounding footnote on the survivor, WHY git-sourced); DELETE only behind an N>=3 skeptic vote WITH provenance + a git

  • janitor-memory-consolidate

    CONSOLIDATE (MERGE) executor — fuses two duplicate memory notes about the SAME subject + same type into one page (dedup lessons, redirect backlinks, keep the oldest origin date), through the memgrep write gate (merge-mem-topic), never hand-editing a live page. ABSTAINS on uncertainty, cross-type/cro

  • janitor-memory-enrich

    ENRICH — the autonomous recall-surface backfill for the memory wiki. Fires on the bare [janitor-memory-enrich] heartbeat marker (or /janitor-memory-enrich). Finds wikimem pages whose keyphrases or page description are too thin or duplicated to be findable, and widens each IN PLACE through memgrep's

  • janitor-memory-frequency

    Show or change how often the wikimem editorial passes run (consolidate, split, conflict, repair, harvest, atomize, retro-lesson, enrich) and the split max-size. No args lists every setting. Global, machine-wide. Use when the user asks how often memory pages are merged, split, repaired, harvested, at

  • janitor-memory-harvest

    HARVEST executor — the daily NON-DESTRUCTIVE chore that MIRRORS newly-created harness BUFFER memories into the curated wiki. MEMORY.md + the raw notes at the scope root are the harness-owned buffer (auto-loaded each session); the janitor never touches them. For each RAW buffer note not yet mirrored,

  • janitor-memory-recall

    RECALL — before working on a file or debugging/deciding, surface the right memory WIKI page and navigate it. Two entry points - FILE-anchored (about to edit a file → surface that functionality's HUB page and descend its links to the detail needed) and SYMPTOM ("have we hit this before?" → rank pages

  • janitor-memory-record-recent

    HARVEST recent changes into the Wikimem NOW — the on-demand counterpart of the memorize-nudge heartbeat. Use when Claude made many code changes but forgot to update memory, or the user says "/janitor-memory-record-recent", "record recent changes to memory", "memorize what we just did", or "harvest r

  • janitor-memory-relocate

    RELOCATE executor — the duty-14 pass (TRDD-QDYQLM5V) that moves an OFF-TOPIC atom or page-level lesson to the page that owns its topic, or LINKS it and leaves it in place. MOVE versus LINK is a semantic judgment per candidate: if the general form of the lesson already exists on the methodology/ownin

  • janitor-memory-repair

    REPAIR — the autonomous page-shape / metadata fixer for the memory wiki. Fires on the bare [janitor-memory-repair] heartbeat marker (or /janitor-memory-repair). Finds structurally malformed wikimem pages (bad or missing frontmatter, wrong tier shape, a superseded atom out of place) and fixes each IN

  • janitor-memory-retro-lesson

    RETRO-LESSON — the autonomous backfill pass that converts ALREADY-superseded atoms into the lesson form (DO NOT X, BECAUSE why, DO Y instead). Fires on the bare [janitor-memory-retro-lesson] heartbeat marker (or /janitor-memory-retro-lesson). Finds superseded atoms whose conversion never happened, s

  • janitor-memory-split

    SPLIT executor — breaks ONE oversized wikimem page (over split_max_bytes) into a concise overview + type-preserving linked sub-pages, losing no fact or lesson, redirecting inbound [[links]], partitioning hub globs. When no page is over cap, decomposes ONE over-budget ATOM, else splits ONE atom that

  • janitor-memory-update

    UPDATE — modify an existing memory WIKI page when something changes — ADD a decision to the page that owns the subject, CORRECT a memory a new discovery contradicts (the 2-step non-destructive protocol), or RESHAPE a page that outgrew its tier (expand a shared rule into an aspect, reduce element-spe

  • janitor-memory-write

    MEMORIZE — capture a durable decision/fact into the project's memory WIKI as a navigable page, not a loose note. Use after a bug-autopsy gotcha, a design/architecture decision, a project constraint not derivable from code, a confirmed user preference, or when the user says "remember this", "memorize

  • janitor-plugin-install

    Install a Claude Code plugin, adapting automatically to the harness. Use when the user asks to install a plugin, or says "install <plugin>", "install <owner>/<repo>", or points at a plugin URL or local folder. Accepts a bare name, plugin@marketplace, plugin@owner/marketplace, an owner/repo shorthand

  • janitor-plugin-uninstall

    Uninstall a Claude Code plugin, adapting automatically to the harness. Use when the user asks to uninstall a plugin, or says "uninstall <plugin>", "uninstall <owner>/<repo>", or points at a plugin URL or local folder. Accepts a bare name, plugin@marketplace, plugin@owner/marketplace, an owner/repo s

  • janitor-plugin-upgrade

    Upgrade a Claude Code plugin, adapting automatically to the harness. Use when the user asks to upgrade a plugin, or says "upgrade <plugin>", "upgrade <owner>/<repo>", or points at a plugin URL or local folder. Accepts a bare name, plugin@marketplace, plugin@owner/marketplace, an owner/repo shorthand

  • janitor-project-cld-md-optimizer

    Migrate a bloated CLAUDE.md into PROJECT-scope wikimem pages, leaving only the slim janitor-managed contract (description, repo urls, build instructions, project map, wikimem index). Use when the project-map-drift detector nudges "CLAUDE.md breaks the slim contract", when the user asks to shrink/sli

  • janitor-refresh-cc-logins

    Re-stock the rotator with a FULL-OAUTH slot per account via the browser capture. Walks each account's claude.ai login (passkey/2FA, human-only) in a dedicated Chrome, then files the slot with slot_capture_browser.py — a ~8h access token the daemon keepalive renews on its own. INTERACTIVE — the login

  • janitor-reload-plugins

    Run /reload-plugins --force for this Claude Code session so freshly auto-updated plugin hooks/skills take effect, without the human typing it. Invoke on a [janitor-reload] heartbeat marker, or when plugin code changed on disk and the session must pick it up. SOFT by default (enqueues after the turn)

  • janitor-reload-skills

    Run /reload-skills for this session so freshly installed STANDALONE (non-plugin) skills and commands take effect — /reload-plugins reloads ONLY plugin-bundled ones. Invoke on a [janitor-reload-skills] marker (from /janitor-global-reload-skills), or when a standalone skill changed on disk. Above 350k

  • janitor-repin-integrity

    Manually re-certify the C3 last-good pin (the HMAC tamper anchor over the running janitor version). Use when the janitor-self-integrity detector reports the pin is stale and the daemon's own periodic re-pin cannot reach GitHub (offline, no gh CLI, no releases yet), or when the daemon is down. Trigge

  • janitor-resume

    Resume the current Claude Code session NOW after a compaction or rate-limit, without waiting for the next heartbeat cron fire. Runs the janitor dispatcher stub immediately and handles its stdout per the janitor-heartbeat-protocol rule, so a pending [janitor-resume] cue fires in seconds instead of up

  • janitor-rotate-account-to

    Rotate the live OAuth account in ONE call — an optional email argument switches to that account directly, or with no argument picks the best alternate by remaining 5h/7d/Fable headroom (typing /model opus first when every candidate's Fable window is spent). Trigger on "rotate account", "switch accou

  • janitor-safe-delete

    Recoverable alternative to rm. Use when an agent needs to delete, remove, dispose of, prune, or clean up files or directories inside a project — especially when a hook blocks rm or CLAUDE.md RULE 0 forbids deleting uncommitted files. Moves targets into project-local .trashcan/[timestamp]/ plus a sib

  • janitor-show-global-status

    Show a whole-host HTML dashboard of EVERY running Claude Code instance and its janitor health — project, model, git, armed/active state, cron liveness, what each is waiting for, version, uncommitted files, wikimem page counts, last job/error, security-scan and PRRD status. Diagnoses each janitor (he

  • janitor-skill-bundle-audit

    On-demand security audit of every agent-context bundle in the current project — SKILL.md / CLAUDE.md / AGENTS.md / .cursorrules / .aider.conf.yml / .claude/* / .mcp.json. Detects multilingual prompt-injection, HTML-comment authority impersonation, base-URL override, cross-skill shadowing, dynamic ex

  • janitor-supply-chain-watcher

    Audits installed deps for HIGH/CRITICAL advisories (Shai-Hulud-class npm/PyPI/pnpm worm). Walks lock files, queries GHSA + OSV.dev, fails loud on HIGH/CRITICAL overlap. Cursor cache caps cost at <12 API calls/hour. Use when checking a project for known-compromised deps after a lockfile change, befor

  • janitor-support-open-ticket

    THE APPROVAL BUTTON for a janitor fix in the user's own repo (TRDD-CGYMUKO6). Run /janitor-support-open-ticket TRDD-XXXXXXXX to approve a finding the janitor PROPOSED — it opens the support ticket and promotes the proposal TRDD from `proposal` to `planned`, after which the janitor's scheduler may di

  • janitor-support-tickets

    The janitor's support-ticket console (TRDD-CGYMUKO6). Inspect the incident queue: what the janitor has found, what it is repairing, what failed, what needs a human, and how much of the daily dispatch budget is left. Also retry a stuck ticket or cancel one you do not want. Use when the user asks what

  • janitor-support-work-ticket

    The PROCEDURE for working one janitor support ticket (TRDD-CGYMUKO6). Loaded by the janitor-repair-agent (and by janitor-security-agent for a security ticket) after the heartbeat's [janitor-ticket] marker dispatches it. Carries the claim → read-as-data → repair → verify → close loop, and the hard sa

  • janitor-token-attribution

    Rank every project on this machine by how many tokens it is burning right now and name the one to throttle — the fleet token-attribution dashboard. The account 5h/7d utilization% is aggregate across all your parallel projects; this scans each project's transcripts to say WHICH one is over-consuming

  • janitor-token-report

    Show the per-heartbeat token cost — how many output/input tokens each janitor heartbeat fire spent, plus mean / p50 / p95 / max and spike flags — so you can see if the heartbeat's token consumption is spiking or the average is too high to bear. Reads the log the on-stop-token-meter hook writes after

  • janitor-write-handoff

    Write a rich SEMANTIC session handoff, composed OUT OF PROCESS by the llm-ext CLI from this session's own transcript — so the next turn re-grounds from an account of what was actually happening, not just the mechanical PreCompact snapshot, and the model spends NO tokens authoring it. MANUAL-ONLY (TR

Slash commands (3)

  • /ai-maestro-janitor:janitor-memory-user-add

    Save a PRIVATE user memory that is invisible to the agent. With text, saves that text; bare (no args), saves your whole previous message. The text never enters the agent's context — only a redacted confirmation is shown to you.

  • /ai-maestro-janitor:janitor-memory-user-search

    Search your PRIVATE user memories with a +/- query DSL (mandatory/optional/exclude, wildcards, quoted phrases). Results are shown to YOU only (via systemMessage) with each memory's number — the agent never sees them.

  • /ai-maestro-janitor:janitor-memory-user-share

    Inject one private user memory (by its number) into the agent's context. This is the ONLY path by which the agent ever sees a user memory — a deliberate, explicit opt-in.

Subagents (3)

  • janitor-memory-subconscious-agent

    The janitor's SINGLE Wikimem curator — the ONE memory agent for ALL editorial chores (never one-agent-per-chore; the janitor-memory-* SKILLS are per-chore procedures this one agent loads, not separate agents). Invoked two ways, both in its OWN context: called by main Claude as a sub-agent, OR launch

  • janitor-repair-agent

    The janitor's SINGLE repair curator — the ONE agent that WORKS a support ticket (TRDD-CGYMUKO6). Dispatched by the heartbeat's [janitor-ticket] marker, one background agent per ticket, in its OWN context. It repairs the janitor's own machinery (a corrupt memgrep index, a failed schema migration, a c

  • janitor-security-agent

    The janitor's SINGLE security curator — the ONE agent for ALL security chores (the security SKILLS are per-domain procedures it loads, not separate agents). Detects AND fixes: dependency/supply-chain advisories, leaked credentials, Dependabot config, fork-PR cache-poisoning, workflow vulnerabilities

Hooks (30)

  • SessionStart

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-session-start.py

  • SessionStart

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-session-start-trdd-state.py

  • SessionStart

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-session-start-watchpaths.py

  • SessionStart

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-session-start-cold-cache-clear.py

  • SessionStart

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-session-start-post-clear-compact.py

  • UserPromptSubmit

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-prompt-submit.py

  • UserPromptSubmit

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-prompt-submit-user-mem.py

  • UserPromptSubmit

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-prompt-submit-autorecall.py

  • Stop

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-stop.py

  • Stop

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-stop-token-meter.py

  • StopFailure

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-stop-failure.py

  • SubagentStart

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-subagent-start.py

  • SubagentStop

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-subagent-stop.py

  • PreToolUse

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/pre-tool-pkg-guard.py

  • PreToolUse

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/pre-bash-safety.py

  • PreToolUse

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/pre-tool-agent-generator-guard.py

  • PreToolUse

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/pre-tool-release-age-guard.py

  • PreToolUse

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/pre-tool-publish-lock.py

  • PreToolUse

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/pre-tool-wikimem-write-path.py

  • PreToolUse

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/pre-tool-context-usage.py

  • PreToolUse

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/pre-tool-token-budget.py

  • PostToolUse

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/post-edit-safety.py

  • PostToolUse

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/post-edit-memory-correction.py

  • PostToolUse

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/post-edit-wikimem-lint.py

  • PostToolUse

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/post-mcp-response-sanitizer.py

  • PostToolUse

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/gh_issues_monitor/gh_register_hook.py

  • PreCompact

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/pre-compact-handoff.py

  • PostCompact

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/post-compact-resume.py

  • SessionEnd

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-session-end.py

  • ConfigChange

    bash ${CLAUDE_PLUGIN_ROOT}/hooks/hook-run.sh ${CLAUDE_PLUGIN_ROOT}/scripts/hooks/on-config-change.py

View source on GitHub

Similar plugins

claude-mem

claudecodex

Persistent memory for Claude Code: the next session starts where the last one left off.

29 skills · 1 MCP server · hooks

thedotmack/claude-mem 116,618

career-ops

claudecodex

Open-source AI job search that runs locally in your AI coding CLI: scan job portals, evaluate listings into a structured A-H report with a 1-5 score, tailor your CV, track applications

5 skills · hooks

career-ops-hq/career-ops 82,253

Agentic QE (external: maintained in proffesor-for-testing/agentic-qe, pinned to v3.15.17): a quality-engineering fleet with 11 QE agents, 9 skills, 9 commands, the agentic-qe MCP server pinned to the plugin version, and the aqe-mod guard that refuses destructive operations on AQE learning data

9 skills · 9 commands · 11 agents · 1 MCP server

ruvnet/ruflo 81,589

Skill: add headroom-ai compress() to a Python or TypeScript app to cut LLM input tokens (tool outputs, logs, JSON, chat history). No API key.

1 skill

headroomlabs-ai/headroom 79,508

Expose the plugin-safe Claude Code subset of Agentic Awesome Skills through a single marketplace entry.

200 skills

sickn33/agentic-awesome-skills 49,620

Set up endorctl and use Endor Labs to scan, prioritize, and fix security risks across your software supply chain

12 skills · 11 agents · hooks

anthropics/claude-plugins-official 47,076

Maintain ai-maestro-janitor?

This page updates itself from your repo. Add the badge to your README, or get it Featured to pin it above the organic results with a followed link to your site.

claude & codex pluginslisted