{
  "generated": "2026-10-02T02:16:04.075Z",
  "claudeVersion": "2.1.287",
  "repos": 373,
  "mods": [
    {
      "id": "anthropics/claude-code:mods/agents-md",
      "repo": "anthropics/claude-code",
      "path": "mods/agents-md",
      "name": "agents-md",
      "description": "AGENTS.md as project instructions, by one option. Under claude-md-or-agents-md a project with no instruction files of its own gets its AGENTS.md files instead: a prompt.context hook asks $.fs.ancestors for every AGENTS.md and .claude/AGENTS.md from the filesystem root down to the working directory and hands them to the engine as project instruction files, which it renders, announces and withholds from agents exactly as it does CLAUDE.md, skipping any file the engine already loaded by import or link; a tool.call hook on Read attaches the ones under the project root as the engine attaches a nested CLAUDE.md. Under claude-md-and-agents-md every AGENTS.md is loaded beside CLAUDE.md. Under managed-only the project's and the person's instruction files are dropped and the organization's managed ones kept. Under claude-md the engine's walk stands alone. claude-md-or-agents-md is the default.",
      "author": "Anthropic",
      "homepage": "https://github.com/anthropics/claude-code",
      "url": "https://github.com/anthropics/claude-code/tree/main/mods/agents-md",
      "kind": "builtin",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.context",
          "matcher": {
            "instructionFiles has {kind": "?"
          }
        },
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {
            "fork": "true"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Read"
          }
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.ancestors",
        "$.session.cwd",
        "$.session.root",
        "$.telemetry.log",
        "$.telemetry.mark",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CODE_DISABLE_ATTACHMENTS, CLAUDE_CODE_SIMPLE, HOME, USERPROFILE"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "reads env vars",
          "telemetry",
          "draws"
        ]
      },
      "sees": [
        "the system prompt",
        "subagent spawns",
        "Read calls"
      ],
      "draws": [],
      "stars": 148873,
      "pushedAt": "2026-10-01T18:43:10Z",
      "createdAt": "2025-02-22T17:41:21Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "anthropics/claude-code:mods/diff",
      "repo": "anthropics/claude-code",
      "path": "mods/diff",
      "name": "diff",
      "description": "The diff pane as a plugin: /diff opens the session's uncommitted changes beside the transcript, file by file with their hunks, refreshed as Claude edits and runs commands; the first edit opens it where the terminal is wide enough, and a file's ask button rides its hunks on the next prompt.",
      "author": "Anthropic",
      "homepage": "https://github.com/anthropics/claude-code",
      "url": "https://github.com/anthropics/claude-code/tree/main/mods/diff",
      "kind": "builtin",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "diff"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "?"
          }
        },
        {
          "event": "ui.focus",
          "matcher": {
            "plugin": "?"
          }
        },
        {
          "event": "ui.scroll",
          "matcher": {
            "requestId": "?"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear|resume"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?|?"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.process.run",
        "$.session.id",
        "$.session.messages",
        "$.session.usage",
        "$.settings.read",
        "$.store.get",
        "$.store.set",
        "$.telemetry.log",
        "$.telemetry.mark",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads files",
          "reads env vars",
          "reads settings",
          "reads the transcript",
          "telemetry",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "?|? calls",
        "every prompt"
      ],
      "draws": [
        "PromptHint",
        "Pane"
      ],
      "stars": 148873,
      "pushedAt": "2026-10-01T18:43:10Z",
      "createdAt": "2025-02-22T17:41:21Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "anthropics/claude-code:mods/sec-default",
      "repo": "anthropics/claude-code",
      "path": "mods/sec-default",
      "name": "sec-default",
      "description": "Security default for organizations: seated outermost, it keeps the organization's classic hooks, prompt content, settings and tool policy out of reach of the plugins a person installs, and adds no policy of its own; one managed option, allowManagedModsOnly, limits mods to the organization's.",
      "author": "Anthropic",
      "homepage": "https://github.com/anthropics/claude-code",
      "url": "https://github.com/anthropics/claude-code/tree/main/mods/sec-default",
      "kind": "builtin",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "classic.*",
          "matcher": {}
        },
        {
          "event": "prompt.section",
          "matcher": {}
        },
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "prompt.compose",
          "matcher": {}
        },
        {
          "event": "skill.prompt",
          "matcher": {}
        },
        {
          "event": "attribution.text",
          "matcher": {}
        },
        {
          "event": "settings.read",
          "matcher": {}
        },
        {
          "event": "tool.describe",
          "matcher": {}
        },
        {
          "event": "command.describe",
          "matcher": {}
        },
        {
          "event": "agent.offer",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "tool.register",
          "matcher": {}
        },
        {
          "event": "tool.list",
          "matcher": {}
        },
        {
          "event": "tool.check",
          "matcher": {}
        },
        {
          "event": "plugin.register",
          "matcher": {
            "tier": "user"
          }
        }
      ],
      "calls": [
        "$.settings.read",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "the system prompt",
        "every skill",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 148873,
      "pushedAt": "2026-10-01T18:43:10Z",
      "createdAt": "2025-02-22T17:41:21Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "anthropics/claude-code:mods/telemetry",
      "repo": "anthropics/claude-code",
      "path": "mods/telemetry",
      "name": "telemetry",
      "description": "Plugin analytics: hooks $.telemetry's two events, so a plugin logs an event or marks a feature's use as a first-party row, sent in batches with the session's own credential.",
      "author": "Anthropic",
      "homepage": "https://github.com/anthropics/claude-code",
      "url": "https://github.com/anthropics/claude-code/tree/main/mods/telemetry",
      "kind": "builtin",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "telemetry.*",
          "matcher": {}
        },
        {
          "event": "telemetry.log",
          "matcher": {}
        },
        {
          "event": "telemetry.mark",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "engine.create",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.sleep",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.http.fetch",
        "$.process.run",
        "$.session.authorize",
        "$.session.cwd",
        "$.session.id",
        "$.session.model",
        "$.session.repo",
        "$.session.surfaces",
        "$.session.version",
        "$.settings.read",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: $.telemetry",
          "modules../register.ts: its hooks stand on the telemetry stream \"anthropic\" (a matcher names it, or a telemetry hook names no \"to\" and so stands on every stream), which is for the plugins built into the CLI; name the collector on each telemetry hook: on(\"telemetry.log\", { to: \"collector\" }, hook)",
          "./register.ts env writes: nothing",
          "./register.ts env reads: ALACRITTY_LOG, APP_URL, AWS_EXECUTION_ENV, AWS_LAMBDA_FUNCTION_NAME, AZURE_FUNCTIONS_ENVIRONMENT, BUILDKITE, C9_PID, C9_USER, CF_PAGES, CI, CIRCLECI, CLAUBBIT, CLAUDE_AGENT_SDK_VERSION, CLAUDE_CODE_ACTION, CLAUDE_CODE_CONTAINER_ID, CLAUDE_CODE_CUSTOM_OAUTH_URL, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, CLAUDE_CODE_ENTRYPOINT, CLAUDE_CODE_HOST_PLATFORM, CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST, CLAUDE_CODE_REMOTE, CLAUDE_CODE_REMOTE_ENVIRONMENT_TYPE, CLAUDE_CODE_REMOTE_SESSION_ID, CLAUDE_CODE_SESSION_ACCESS_TOKEN, CLAUDE_CODE_TAGS, CLAUDE_CODE_USE_ANTHROPIC_AWS, CLAUDE_CODE_USE_ANTHROPIC_GOOGLE_CLOUD, CLAUDE_CODE_USE_BEDROCK, CLAUDE_CODE_USE_FOUNDRY, CLAUDE_CODE_USE_GATEWAY, CLAUDE_CODE_USE_MANTLE, CLAUDE_CODE_USE_VERTEX, CLAUDE_CODE_WEBSOCKET_AUTH_FILE_DESCRIPTOR, CLAUDE_CONFIG_DIR, CLAUDE_SESSION_INGRESS_TOKEN_FILE, CODER, CODER_WORKSPACE_NAME, CODESPACES, COMSPEC, CURSOR_TRACE_ID, ConEmuANSI, ConEmuPID, ConEmuTask, DAYTONA_WS_ID, DENO_DEPLOYMENT_ID, DEVPOD, DEVPO… [+980 chars]",
          "./register.ts hooks telemetry for: anthropic, collector"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "reads files",
          "reads env vars",
          "reads settings",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 148873,
      "pushedAt": "2026-10-01T18:43:10Z",
      "createdAt": "2025-02-22T17:41:21Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ruvnet/RuView:harness/ruview/mod",
      "repo": "ruvnet/RuView",
      "path": "harness/ruview/mod",
      "name": "ruview-live",
      "description": "RuView live sensing in Claude Code: /ruview opens a pane beside the transcript with three views: an overview of your CSI nodes (ESP32, Realtek) and 60 GHz radar (rates, loss, RSSI, presence, device-reported vitals, alerts), a live CSI amplitude waterfall, and a radar range fan with vitals charts, all drawn in terminal cells. Reads only; runs the @ruvnet/ruview CLI it ships beside.",
      "author": "ruvnet",
      "homepage": "https://github.com/ruvnet/RuView",
      "url": "https://github.com/ruvnet/RuView/tree/main/harness/ruview/mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.mjs"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "ruview"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "ruview-live"
          }
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.process.run",
        "$.ui.blit",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 95885,
      "pushedAt": "2026-10-02T01:17:17Z",
      "createdAt": "2025-06-07T04:32:30Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ruvnet/ruflo:plugins/ruflo-mods",
      "repo": "ruvnet/ruflo",
      "path": "plugins/ruflo-mods",
      "name": "ruflo-mods",
      "description": "ruflo as a Claude Code mod (function hooks, ADR-404): in-process prompt routing, edit learning signals, tighten-only tool checks from ruflo policy, the cost-tracker budget ladder, a mod trust gate for newly installed mods, and the $.ruflo noun other mods compose their status with. Opt-in and removable: the classic hook-handler hooks stay the default and take every event back whenever the mod is not loaded.",
      "author": "ruvnet",
      "homepage": "https://github.com/ruvnet/ruflo",
      "url": "https://github.com/ruvnet/ruflo/tree/main/plugins/ruflo-mods",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "plugin.register",
          "matcher": {}
        },
        {
          "event": "engine.create",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "ruflo-mods"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.check",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "session.measure",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.env.set",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.session.root",
        "$.settings.read",
        "$.ui.log",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: $.ruflo",
          "./register.ts env writes: RUFLO_MODS_OWNS",
          "./register.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "sets env vars",
          "reads files",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 73669,
      "pushedAt": "2026-10-02T02:02:43Z",
      "createdAt": "2025-06-02T21:24:20Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ruvnet/ruflo:plugins/ruflo-plugin-creator/templates/mod",
      "repo": "ruvnet/ruflo",
      "path": "plugins/ruflo-plugin-creator/templates/mod",
      "name": "my-mod",
      "description": "A Claude Code mod scaffolded by ruflo-plugin-creator: counts the session's tool calls in a status line, adds /my-mod-status, and keeps a classic hook as the fallback where function hooks are off.",
      "author": "you",
      "homepage": "https://github.com/ruvnet/ruflo",
      "url": "https://github.com/ruvnet/ruflo/tree/main/plugins/ruflo-plugin-creator/templates/mod",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "my-mod-status"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.set",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: MY_MOD_ACTIVE",
          "./register.ts env reads: nothing"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "sets env vars",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [],
      "stars": 73669,
      "pushedAt": "2026-10-02T02:02:43Z",
      "createdAt": "2025-06-02T21:24:20Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ruvnet/ruflo:plugins/ruflo-ruos",
      "repo": "ruvnet/ruflo",
      "path": "plugins/ruflo-ruos",
      "name": "ruflo-ruos",
      "description": "Run ruflo swarm agents on your own ruOS cloud desktops via the tenant-authenticated fleet MCP or per-tenant SSH; optional and removable (ADR-405)",
      "author": "ruvnet",
      "homepage": "https://github.com/ruvnet/ruflo",
      "url": "https://github.com/ruvnet/ruflo/tree/main/plugins/ruflo-ruos",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.fs.read",
        "$.ruflo.segment",
        "$.session.root"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.ruflo.segment",
          "reads files"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [],
      "stars": 73669,
      "pushedAt": "2026-10-02T02:02:43Z",
      "createdAt": "2025-06-02T21:24:20Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ruvnet/ruflo:plugins/ruflo-swarm",
      "repo": "ruvnet/ruflo",
      "path": "plugins/ruflo-swarm",
      "name": "ruflo-swarm",
      "description": "Agent teams, swarm coordination, Monitor streams, and worktree isolation: wraps 4 swarm_* + 8 agent_* MCP tools (12 total) plus 6 topologies (hierarchical / mesh / hierarchical-mesh / ring / star / adaptive). With Claude Code function hooks on (early access), a live swarm pane: agent tiles lit by reads and writes, topology, task and claims board, cost, router pick and hive-mind votes, with buttons that act through the ruflo CLI",
      "author": "ruvnet",
      "homepage": "https://github.com/ruvnet/ruflo",
      "url": "https://github.com/ruvnet/ruflo/tree/main/plugins/ruflo-swarm",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "ruflo-swarm-pane"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "ruflo-swarm:watch"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "ruflo-swarm-status"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "ruflo-swarm-topology"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "ruflo-swarm-claims"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "ruflo-swarm-consensus"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "*",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.list",
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.fs.read",
        "$.fs.stat",
        "$.process.run",
        "$.prompt.fill",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes the prompt box",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "subagent spawns",
        "every tool call",
        "everything"
      ],
      "draws": [
        "PromptHint",
        "Pane"
      ],
      "stars": 73669,
      "pushedAt": "2026-10-02T02:02:43Z",
      "createdAt": "2025-06-02T21:24:20Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "anthropics/claude-plugins-official:plugins/code-modernization",
      "repo": "anthropics/claude-plugins-official",
      "path": "plugins/code-modernization",
      "name": "code-modernization",
      "description": "Guided modernization for any legacy codebase: start with /modernize, get an assessment, an interactive map, the business rules mined from the code, and a plan you approve, then an upgrade, a rewrite or a rebuild with independent proof that the new code behaves like the old. Includes security hardening, a one-page report, specialist agents, and an optional live progress pane (early access).",
      "author": "Anthropic",
      "homepage": "https://github.com/anthropics/claude-plugins-official",
      "url": "https://github.com/anthropics/claude-plugins-official/tree/main/plugins/code-modernization",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "modernize-panel"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "modernize-review-pane"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "modernize-sign"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear|resume"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.prompt.fill",
        "$.prompt.submit",
        "$.store.get",
        "$.store.set",
        "$.turn.abort",
        "$.ui.blit",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude",
          "writes the prompt box",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call"
      ],
      "draws": [
        "PromptHint",
        "AbovePrompt",
        "Pane"
      ],
      "stars": 37297,
      "pushedAt": "2026-10-01T21:39:47Z",
      "createdAt": "2025-11-20T18:36:20Z",
      "license": "Apache-2.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/enterprise/admin-capability-lockdown",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/enterprise/admin-capability-lockdown",
      "name": "admin-capability-lockdown",
      "description": "Organization control mod: withholds the http and process nouns from $ so no plugin beneath it can reach the network or spawn processes, refuses user-tier plugins by name allowlist or by the $ calls their source declares, and withholds the Bash tool (shellPolicy \"deny\", default) or, in \"guardrail\" mode, denies well-known network clients as a bypassable speed bump. Hooks engine.create, plugin.register and tool.call; seat it in the managed prepend tier.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/enterprise/admin-capability-lockdown",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./admin-capability-lockdown.ts"
      ],
      "hooks": [
        {
          "event": "engine.create",
          "matcher": {}
        },
        {
          "event": "plugin.register",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/2048",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/2048",
      "name": "2048",
      "description": "2048 above the Claude Code prompt: slide and merge tiles up to 2048. Plays while Claude works, pauses when the turn ends, keeps your best score; zero tokens. A single game split out of cc-arcade (MIT, Seza Akgün). Needs function hooks (early access) and an interactive terminal with a mouse.",
      "author": "Seza Akgün",
      "homepage": "https://github.com/sezaakgun/cc-arcade",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/2048",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "\"2048\""
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/twenty48.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/cc-arcade",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/cc-arcade",
      "name": "cc-arcade",
      "description": "Games above the Claude Code prompt (snake, Tetris, 2048, Minesweeper, Flappy, Pong, typing test, Space Invaders, Doom) plus a pet that grows as Claude tests, commits and edits. Clones of the genre, not affiliated with or endorsed by Tetris Holding, Taito, Atari or id Software. Needs function hooks (early access) and an interactive terminal.",
      "author": "Seza Akgün",
      "homepage": "https://github.com/sezaakgun/cc-arcade",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/cc-arcade",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "arcade"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/doom.tsx",
        "hooks/boards/flappy.tsx",
        "hooks/boards/invaders.tsx",
        "hooks/boards/minesweeper.tsx",
        "hooks/boards/pet.tsx",
        "hooks/boards/pong.tsx",
        "hooks/boards/snake.tsx",
        "hooks/boards/tetris.tsx",
        "hooks/boards/twenty48.tsx",
        "hooks/boards/typing.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/chess",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/chess",
      "name": "chess",
      "description": "Play chess against Claude (or Jev, when a Jev key is set) in a side pane while you work. Click a piece and a square, or type a move; Claude answers through a fork of the session, Jev through TypeSafe's decision API, and the pane shows the tokens each move cost as the API reported them, and the running total. Docked beside the transcript in the fullscreen layout, above the prompt otherwise. Needs function hooks (early access).",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/chess",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "chess"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.input",
          "matcher": {}
        },
        {
          "event": "ui.press",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.command.register",
        "$.config.list",
        "$.http.fetch",
        "$.model.complete",
        "$.model.fork",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/diff-invaders",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/diff-invaders",
      "name": "diff-invaders",
      "description": "Space Invaders above the Claude Code prompt where every wave is the code Claude just wrote: each line an Edit or Write added becomes a row of the formation and every two characters one alien, so you shoot your own diff. Ship, one shot at a time, bombs, three lives, best score. Zero tokens. Needs function hooks (early access) and an interactive terminal.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/diff-invaders",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "diff-invaders"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit|Write"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/invaders.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Edit|Write calls"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/doom",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/doom",
      "name": "doom",
      "description": "Doom above the Claude Code prompt: a corridor shooter: imps, a shotgun, and the floor below. Plays while Claude works, pauses when the turn ends, keeps your best score; zero tokens. A single game split out of cc-arcade (MIT, Seza Akgün). Needs function hooks (early access) and an interactive terminal with a mouse.",
      "author": "Seza Akgün",
      "homepage": "https://github.com/sezaakgun/cc-arcade",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/doom",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "doom"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/doom.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/flappy",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/flappy",
      "name": "flappy",
      "description": "Flappy above the Claude Code prompt: flap through the gaps in the pipes. Plays while Claude works, pauses when the turn ends, keeps your best score; zero tokens. A single game split out of cc-arcade (MIT, Seza Akgün). Needs function hooks (early access) and an interactive terminal with a mouse.",
      "author": "Seza Akgün",
      "homepage": "https://github.com/sezaakgun/cc-arcade",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/flappy",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "flappy"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/flappy.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/invaders",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/invaders",
      "name": "invaders",
      "description": "Space Invaders above the Claude Code prompt: shoot each wave before it lands. Plays while Claude works, pauses when the turn ends, keeps your best score; zero tokens. A single game split out of cc-arcade (MIT, Seza Akgün). Needs function hooks (early access) and an interactive terminal with a mouse.",
      "author": "Seza Akgün",
      "homepage": "https://github.com/sezaakgun/cc-arcade",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/invaders",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "invaders"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/invaders.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/minesweeper",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/minesweeper",
      "name": "minesweeper",
      "description": "Minesweeper above the Claude Code prompt: open every cell that is not a mine. Plays while Claude works, pauses when the turn ends, keeps your best score; zero tokens. A single game split out of cc-arcade (MIT, Seza Akgün). Needs function hooks (early access) and an interactive terminal with a mouse.",
      "author": "Seza Akgün",
      "homepage": "https://github.com/sezaakgun/cc-arcade",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/minesweeper",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "minesweeper"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/minesweeper.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/pacman",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/pacman",
      "name": "pacman",
      "description": "Pac-Man above the Claude Code prompt: a 19×15 maze, four ghosts that chase, scatter and flee, power pellets, three lives and faster levels. Plays while Claude works, pauses when the turn ends, keeps your best score; zero tokens. Needs function hooks (early access) and an interactive terminal.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/pacman",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "pacman"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/pacman.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/pet",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/pet",
      "name": "pet",
      "description": "A virtual pet above the Claude Code prompt that grows as Claude works: passing tests, commits and edits grant XP and mood, failing tests cost mood, idling drains it; egg → baby → kid → adult → legend. Zero tokens. Split out of cc-arcade (MIT, Seza Akgün). Needs function hooks (early access) and an interactive terminal.",
      "author": "Seza Akgün",
      "homepage": "https://github.com/sezaakgun/cc-arcade",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/pet",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "pet"
          }
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/pet.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/pong",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/pong",
      "name": "pong",
      "description": "Pong above the Claude Code prompt: first to 5 against the computer. Plays while Claude works, pauses when the turn ends, keeps your best score; zero tokens. A single game split out of cc-arcade (MIT, Seza Akgün). Needs function hooks (early access) and an interactive terminal with a mouse.",
      "author": "Seza Akgün",
      "homepage": "https://github.com/sezaakgun/cc-arcade",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/pong",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "pong"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/pong.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/snake",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/snake",
      "name": "snake",
      "description": "Snake above the Claude Code prompt: eat, grow, and keep off the walls and yourself. Plays while Claude works, pauses when the turn ends, keeps your best score; zero tokens. A single game split out of cc-arcade (MIT, Seza Akgün). Needs function hooks (early access) and an interactive terminal with a mouse.",
      "author": "Seza Akgün",
      "homepage": "https://github.com/sezaakgun/cc-arcade",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/snake",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "snake"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/snake.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/tetris",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/tetris",
      "name": "tetris",
      "description": "Tetris above the Claude Code prompt: fit the falling pieces and clear lines. Plays while Claude works, pauses when the turn ends, keeps your best score; zero tokens. A single game split out of cc-arcade (MIT, Seza Akgün). Needs function hooks (early access) and an interactive terminal with a mouse.",
      "author": "Seza Akgün",
      "homepage": "https://github.com/sezaakgun/cc-arcade",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/tetris",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "tetris"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/tetris.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/tool-defense",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/tool-defense",
      "name": "tool-defense",
      "description": "A tower defense above the Claude Code prompt where every enemy is one of Claude's real tool calls: Bash sends runners, an Edit or Write a slow tank, a web or MCP call a flyer, an Agent a boss. Build and upgrade towers by clicking beside the road, hold the base through Claude's turn. Zero tokens. Needs function hooks (early access) and an interactive terminal with a mouse.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/tool-defense",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "defense"
          }
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/defense.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/games/typing-test",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/games/typing-test",
      "name": "typing-test",
      "description": "Typing test above the Claude Code prompt: retype a line of code as fast as you can. Plays while Claude works, pauses when the turn ends, keeps your best score; zero tokens. A single game split out of cc-arcade (MIT, Seza Akgün). Needs function hooks (early access) and an interactive terminal with a mouse.",
      "author": "Seza Akgün",
      "homepage": "https://github.com/sezaakgun/cc-arcade",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/games/typing-test",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "typing"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/typing.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/integrations/linear-tickets",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/integrations/linear-tickets",
      "name": "linear-tickets",
      "description": "Your Linear tickets in a side pane, with their status and a chart of how you are progressing: tickets grouped by state (in progress, todo, backlog, done), a stacked status bar, a bar chart of tickets closed per day over the last two weeks and, when your tickets sit in a cycle, that cycle's scope and completed burn-up. Read-only; it polls Linear's GraphQL API. /linear opens it. Needs function hooks (early access) and a Linear API key.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/integrations/linear-tickets",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./linear-tickets.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "linear"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.press",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.http.fetch",
        "$.ui.close",
        "$.ui.copy",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/integrations/neon-branch-per-session",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/integrations/neon-branch-per-session",
      "name": "neon-branch-per-session",
      "description": "A Neon database branch for each Claude Code session: created from your default (or chosen) branch when the session starts, handed to every command Claude runs as DATABASE_URL, and set to expire on its own (or deleted when the session ends). Claude can migrate, seed and break the branch without touching production data. /neon shows it, keeps it or deletes it. Needs function hooks (early access) and a Neon API key.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/integrations/neon-branch-per-session",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./neon-branch-per-session.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "neon"
          }
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.set",
        "$.http.fetch",
        "$.session.id",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.log",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./neon-branch-per-session.ts env writes: DATABASE_URL, NEON_BRANCH",
          "./neon-branch-per-session.ts env reads: nothing"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "sets env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/integrations/pi-agent-for-claude",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/integrations/pi-agent-for-claude",
      "name": "pi-agent-for-claude",
      "description": "pi agent for claude: a `pi` subagent type whose model steps run the pi CLI, so pi subagents and agent-team teammates live in Claude Code's own agent UI, streamed live, on any model pi can reach.",
      "author": "Fazal Ali",
      "homepage": "https://github.com/FazalAAli/pi-agent-for-claude",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/integrations/pi-agent-for-claude",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.process.run",
        "$.session.cwd",
        "$.session.messages",
        "$.tool.register"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"pi-agent-for-claude\" reads as one of Anthropic's own. Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it."
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads the transcript"
        ]
      },
      "sees": [
        "every tool call",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/integrations/vercel-deploys",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/integrations/vercel-deploys",
      "name": "vercel-deploys",
      "description": "Your Vercel projects in a side pane: each connected site with the state of its latest deployment (building, ready, failed), the production domain, the Git commit behind it and whether the site answers right now. It polls Vercel's REST API (faster while something builds) and toasts when a deployment finishes or fails. /vercel opens it. Needs function hooks (early access) and a Vercel access token.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/integrations/vercel-deploys",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./vercel-deploys.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "vercel"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.press",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.sleep",
        "$.command.register",
        "$.http.fetch",
        "$.ui.close",
        "$.ui.copy",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/integrations/websearch-to-exa",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/integrations/websearch-to-exa",
      "name": "websearch-to-exa",
      "description": "Overrides the built-in WebSearch tool and routes queries to the Exa search API through $.http.fetch, answering in WebSearch's own result shape, with automatic fallback to the built-in search. A tool.call hook that replaces a core tool.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/integrations/websearch-to-exa",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./websearch-to-exa.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "WebSearch"
          }
        }
      ],
      "calls": [
        "$.http.fetch",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "draws"
        ]
      },
      "sees": [
        "WebSearch calls"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/observability/prompt-cache-control",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/observability/prompt-cache-control",
      "name": "prompt-cache-control",
      "description": "Prompt-cache meter above the Claude Code prompt: how many tokens each request read from, wrote to and sent past the cache, a live countdown to the cache's expiry, and what to do about it (keep going, compact or clear). The TTL comes from the environment variables Claude Code honours (5 minutes by default, 1 hour with ENABLE_PROMPT_CACHING_1H). /cache opens a per-turn table. Needs function hooks (early access).",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/observability/prompt-cache-control",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./prompt-cache-control.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "cache"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.press",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.env.get",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./prompt-cache-control.tsx env writes: nothing",
          "./prompt-cache-control.tsx env reads: DISABLE_PROMPT_CACHING, DISABLE_PROMPT_CACHING_HAIKU, DISABLE_PROMPT_CACHING_OPUS, DISABLE_PROMPT_CACHING_SONNET, ENABLE_PROMPT_CACHING_1H, FORCE_PROMPT_CACHING_5M"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads env vars",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/observability/universal-audit-log",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/observability/universal-audit-log",
      "name": "universal-audit-log",
      "description": "One hook on * that records every event on $ (tool calls, prompts, turns, other plugins' fs/http/process calls) as JSON lines with origin plugin and tier, duration and outcome, including denials. Buffered and flushed to a JSONL file through $.fs at the end of every turn.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/observability/universal-audit-log",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./universal-audit-log.ts"
      ],
      "hooks": [
        {
          "event": "*",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads files",
          "draws"
        ]
      },
      "sees": [
        "everything"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/productivity/aitmpl",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/productivity/aitmpl",
      "name": "aitmpl",
      "description": "/aitmpl opens a component browser above the prompt: the aitmpl.com catalog (agents, commands, MCPs, settings, hooks, skills, loops, mods) read live from the site's public JSON through $.http.fetch. Pick a type or a trending component, filter, page, open a component and install it from there ($.process.run with the fixed CLI argv and a validated path, no shell), drop its install command into the prompt, or open its page in your browser. Hooks session.start, command.run and ui.render on AbovePrompt; browsing costs no tokens.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/productivity/aitmpl",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "aitmpl"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.http.fetch",
        "$.process.run",
        "$.prompt.fill",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: OS"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "writes the prompt box",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/productivity/jev-model-router",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/productivity/jev-model-router",
      "name": "jev-model-router",
      "description": "Picks the model and the reasoning effort for each task with TypeSafe's Jev, a System One decision model reached either through TypeSafe's own API or the Vercel AI Gateway. Routes subagent models at agent.spawn and the main loop's effort and model at turn.step, in both directions, falling back to the engine's built-in classifier when no key is set.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/productivity/jev-model-router",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./jev-model-router.ts"
      ],
      "hooks": [
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.http.fetch",
        "$.model.classify",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/productivity/jev-skill-suggestion",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/productivity/jev-skill-suggestion",
      "name": "jev-skill-suggestion",
      "description": "Keeps the skill listing out of the context window and lets TypeSafe's Jev, a System One decision model, pick at most one skill per prompt from the skills' descriptions, the way TypeSafe's skill-suggestion cookbook does: one request ranks every skill and asks whether the prompt needs a skill at all, a second re-reads the top three with their SKILL.md and can reject them all. The winner's SKILL.md is attached to the prompt, so the skills can be hidden from the model altogether (/jev-skill-suggestion:setup makes them user-invocable-only and /context counts them at 0). Falls back to the engine's built-in classifier when no key is set.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/productivity/jev-skill-suggestion",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./jev-skill-suggestion.ts"
      ],
      "hooks": [
        {
          "event": "prompt.attachment",
          "matcher": {
            "type": "skill_listing"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "skill.prompt",
          "matcher": {
            "skill": "jev-skill-suggestion:setup"
          }
        },
        {
          "event": "skill.prompt",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.command.list",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.http.fetch",
        "$.model.classify",
        "$.session.cwd",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./jev-skill-suggestion.ts env writes: nothing",
          "./jev-skill-suggestion.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "compaction",
        "the jev-skill-suggestion:setup skill",
        "every skill"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/productivity/npm-to-pnpm-rewriter",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/productivity/npm-to-pnpm-rewriter",
      "name": "npm-to-pnpm-rewriter",
      "description": "Rewrites npm and npx invocations to pnpm (or yarn / bun) before the Bash tool runs them and tells the model what ran through context. A tool.call hook that forwards a modified event (the modifying placement).",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/productivity/npm-to-pnpm-rewriter",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./npm-to-pnpm-rewriter.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/productivity/webfetch-cache",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/productivity/webfetch-cache",
      "name": "webfetch-cache",
      "description": "Short-circuits repeated WebFetch calls for the same URL and prompt within a session, answering { result } from cache without a network round trip. A tool.call hook with TTL and size limits.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/productivity/webfetch-cache",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./webfetch-cache.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "WebFetch"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "WebFetch calls"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/security/block-destructive-commands",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/security/block-destructive-commands",
      "name": "block-destructive-commands",
      "description": "Denies Bash commands that match destructive patterns (recursive rm on roots, force push, hard reset, destructive SQL, disk formatting) before they run. A tool.call hook with a Bash matcher that returns { deny } without calling next.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/security/block-destructive-commands",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./block-destructive-commands.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/security/jev-auto-mode",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/security/jev-auto-mode",
      "name": "jev-auto-mode",
      "description": "A permission layer driven by a JSON policy: allow, ask or deny every tool call (Bash, edits, web, MCP, subagents, skills), every slash command or skill you type, and every skill preloaded into a subagent. Rules decide first (deny > ask > allow, compound Bash commands split); what no rule covers can go to TypeSafe's Jev, which judges the action against your latest request with thresholds you set. Claude can never edit the policy. Needs function hooks (early access).",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/security/jev-auto-mode",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./jev-auto-mode.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "tool.check",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {}
        },
        {
          "event": "skill.prompt",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.http.fetch",
        "$.model.classify",
        "$.session.root",
        "$.session.surfaces",
        "$.ui.ask",
        "$.ui.log",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./jev-auto-mode.ts env writes: nothing",
          "./jev-auto-mode.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "every skill"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/security/jev-guardrails",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/security/jev-guardrails",
      "name": "jev-guardrails",
      "description": "Screens every prompt going into the conversation and every reply coming out of it with TypeSafe's Jev, a System One decision model, the way TypeSafe's guardrails cookbook does: one request per message asks a battery of hazard questions (jailbreak, harm or a crime, a diagnosis or a dosage, self-harm) and scores how much harm complying would do. The thresholds live here, in a named policy (strict or permissive), and turn the probabilities into pass, review (the user is asked), block (the prompt is dropped, or the reply withheld) or support. Falls back to the engine's built-in classifier when no key is set.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/security/jev-guardrails",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./jev-guardrails.ts"
      ],
      "hooks": [
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.http.fetch",
        "$.model.classify",
        "$.session.surfaces",
        "$.ui.ask",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/security/jev-vercel-sandbox",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/security/jev-vercel-sandbox",
      "name": "jev-vercel-sandbox",
      "description": "A Vercel Sandbox Claude sends work to on purpose: long test runs in the background, someone else's repository, an installer of unknown origin, a bulk change to preview as a patch, a clean build. TypeSafe's Jev reads each Bash command and spots those jobs; by default you are asked whether it runs in the sandbox or locally (confirmSandbox), or it always goes to the sandbox with the question off. Claude also gets sandbox_run, sandbox_jobs, sandbox_result and sandbox_apply. Each job starts from the project as it is now (tracked files, credentials left out) in its own worktree, every result is marked remote, and a job's changes reach your disk only as a patch you apply after a question. /jev-vercel-sandbox starts it and opens a side pane with the jobs. Falls back to the engine's built-in classifier without a Jev key. Needs function hooks (early access).",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/security/jev-vercel-sandbox",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./jev-vercel-sandbox.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "jev-vercel-sandbox"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.press",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.command.run",
        "$.env.get",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.http.fetch",
        "$.model.classify",
        "$.process.run",
        "$.prompt.submit",
        "$.session.cwd",
        "$.tool.register",
        "$.ui.ask",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./jev-vercel-sandbox.tsx env writes: nothing",
          "./jev-vercel-sandbox.tsx env reads: VERCEL_OIDC_TOKEN, VERCEL_PROJECT_ID, VERCEL_TEAM_ID, VERCEL_TOKEN"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "drives Claude",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "Bash calls",
        "every tool call"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/security/large-edit-confirmation",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/security/large-edit-confirmation",
      "name": "large-edit-confirmation",
      "description": "Asks the user, in the engine's AskUserQuestion dialog ($.ui.ask), before Claude edits or overwrites a file larger than a configurable line count; denies by default when nobody can answer (headless runs). A tool.call hook on Edit and Write using $.fs.read.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/security/large-edit-confirmation",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./large-edit-confirmation.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit|Write"
          }
        }
      ],
      "calls": [
        "$.fs.exists",
        "$.fs.read",
        "$.ui.ask",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "draws"
        ]
      },
      "sees": [
        "Edit|Write calls"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/security/protected-paths-guard",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/security/protected-paths-guard",
      "name": "protected-paths-guard",
      "description": "Denies Edit, Write and NotebookEdit calls on sensitive paths (.env files, lockfiles, CI workflows, git internals, private keys) with a glob allowlist override. A tool.call hook with an array matcher.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/security/protected-paths-guard",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./protected-paths-guard.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit|Write|NotebookEdit"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Edit|Write|NotebookEdit calls"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/security/secret-redactor",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/security/secret-redactor",
      "name": "secret-redactor",
      "description": "Redacts API keys, tokens, JWTs, private keys and connection strings from every tool result before the model reads them, notes the redaction through context, and refuses to echo a redacted placeholder back into a Bash command. A tool.call hook in the after placement.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/security/secret-redactor",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./secret-redactor.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/ui/agent-flow",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/ui/agent-flow",
      "name": "agent-flow",
      "description": "A side pane that draws the session's agent flow live: the main loop's context window, every subagent it spawns as a tree, and for each one the context handed down (its prompt, or the whole parent context for a fork), what it did with it (steps, tools, context size) and the answer it handed back up. Docked beside the transcript in the fullscreen layout, above the prompt otherwise. Needs function hooks (early access).",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/ui/agent-flow",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./agent-flow.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "agent-flow"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.measure",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.press",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.agent.list",
        "$.command.register",
        "$.session.usage",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "subagent spawns",
        "every tool call"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/ui/git-sidebar",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/ui/git-sidebar",
      "name": "git-sidebar",
      "description": "A lazygit-style side pane: every worktree of the repository and its local branches as rows you click. A worktree row moves the session there with /cd; a branch row shows its last commits and offers switch (clean tree only) or open worktree. Docked floor to ceiling beside the transcript in the fullscreen layout, above the prompt otherwise. Needs function hooks (early access).",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/ui/git-sidebar",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./git-sidebar.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "git-sidebar"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "cd"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.press",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.command.run",
        "$.process.run",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davila7/claude-code-templates:cli-tool/components/mods/ui/tool-timing-badge",
      "repo": "davila7/claude-code-templates",
      "path": "cli-tool/components/mods/ui/tool-timing-badge",
      "name": "tool-timing-badge",
      "description": "Times every tool call and wraps the engine's ToolUse rendering with a colored duration badge from the surface's own element table, on the terminal, Desktop and mobile. Hooks tool.call and ui.render using JSX.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/davila7/claude-code-templates",
      "url": "https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/mods/ui/tool-timing-badge",
      "kind": "catalog",
      "hasManifest": true,
      "modules": [
        "./tool-timing-badge.tsx"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolUse"
          }
        }
      ],
      "calls": [
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [
        "ToolUse"
      ],
      "stars": 32278,
      "pushedAt": "2026-10-01T20:47:55Z",
      "createdAt": "2025-07-04T01:26:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "kunchenguid/firstmate:.claude/mods/firstmate-calm",
      "repo": "kunchenguid/firstmate",
      "path": ".claude/mods/firstmate-calm",
      "name": "fm",
      "description": "Firstmate Calm for Claude Code: the sailboat working animation and conversation-only transcript presentation, sharing the per-home config/calm preference with the Pi Calm extension. Its hooks module may load through CLAUDE_CODE_ENABLE_FUNCTION_HOOKS or Claude Code's tengu_plugin_hooks_modules rollout flag, but the mod activates only when CLAUDE_CODE_ENABLE_FUNCTION_HOOKS is exactly 1 and is otherwise a complete no-op.",
      "author": "Firstmate",
      "homepage": "https://github.com/kunchenguid/firstmate",
      "url": "https://github.com/kunchenguid/firstmate/tree/main/.claude/mods/firstmate-calm",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "calm"
          }
        },
        {
          "event": "config.set",
          "matcher": {
            "key": "theme"
          }
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Spinner"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolUse"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolResult"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolGroup"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "UserMessage"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.config.list",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.session.id",
        "$.session.messages",
        "$.store.get",
        "$.store.set",
        "$.ui.blit",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CODE_ENABLE_FUNCTION_HOOKS, FM_CONFIG_OVERRIDE, FM_HOME, FM_ROOT_OVERRIDE, FM_STATE_OVERRIDE"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Spinner",
        "ToolUse",
        "ToolResult",
        "ToolGroup",
        "UserMessage",
        "AssistantMessage"
      ],
      "stars": 7424,
      "pushedAt": "2026-10-02T00:08:14Z",
      "createdAt": "2026-06-12T03:21:10Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "tamaratran/fast-jev-compaction:.",
      "repo": "tamaratran/fast-jev-compaction",
      "path": ".",
      "name": "fast-jev-compaction",
      "description": "Verbatim Jev-guided compaction for Claude Code sessions.",
      "author": null,
      "homepage": "https://github.com/tamaratran/fast-jev-compaction",
      "url": "https://github.com/tamaratran/fast-jev-compaction",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-jev.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.http.fetch",
        "$.session.compact",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./fast-jev.ts env writes: nothing",
          "./fast-jev.ts env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 7308,
      "pushedAt": "2026-09-18T04:45:31Z",
      "createdAt": "2026-09-17T05:57:20Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "zenbu-labs/terminal-browser:claude-code-plugin",
      "repo": "zenbu-labs/terminal-browser",
      "path": "claude-code-plugin",
      "name": "terminal-browser",
      "description": "A browser running directly inside claude code. Preview websites, view HTML documents, and let your agent control the built in browser.",
      "author": "zenbu-labs",
      "homepage": "https://github.com/zenbu-labs/terminal-browser/tree/main/claude-code-plugin",
      "url": "https://github.com/zenbu-labs/terminal-browser/tree/main/claude-code-plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "engine.create",
          "matcher": {}
        },
        {
          "event": "browser.open",
          "matcher": {}
        },
        {
          "event": "browser.close",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "browser"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "browser"
          }
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.scroll",
          "matcher": {
            "requestId": "browser"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "browser"
          }
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.command.register",
        "$.fs.exists",
        "$.http.fetch",
        "$.process.run",
        "$.prompt.fill",
        "$.session.surfaces",
        "$.tool.register",
        "$.ui.blit",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [
        "hooks/surface.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./hooks/browser.d.ts declares on $: $.browser"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "drives Claude",
          "writes the prompt box",
          "reads files",
          "draws"
        ]
      },
      "sees": [
        "? calls"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 3583,
      "pushedAt": "2026-10-01T23:48:05Z",
      "createdAt": "2026-07-06T16:31:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "caliber-ai-org/ai-setup:plugin/caliber-jev-compaction",
      "repo": "caliber-ai-org/ai-setup",
      "path": "plugin/caliber-jev-compaction",
      "name": "caliber-jev-compaction",
      "description": "Verbatim Jev-guided compaction for Claude Code sessions.",
      "author": null,
      "homepage": "https://github.com/caliber-ai-org/ai-setup",
      "url": "https://github.com/caliber-ai-org/ai-setup/tree/master/plugin/caliber-jev-compaction",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./compaction.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.http.fetch",
        "$.session.compact",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./compaction.ts env writes: nothing",
          "./compaction.ts env reads: AI_GATEWAY_API_KEY, TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 1293,
      "pushedAt": "2026-09-24T08:29:46Z",
      "createdAt": "2026-03-10T19:39:38Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "hex/claude-council:.",
      "repo": "hex/claude-council",
      "path": ".",
      "name": "claude-council",
      "description": "Consult multiple AI coding agents (Gemini, OpenAI, Grok, Perplexity, Kimi, any model OpenRouter routes to, plus codex, antigravity, grok, kimi and cursor CLIs when installed, and a local ollama model) to get diverse perspectives on coding problems, with a streaming pane in tmux or inside Claude Code. It can also hand a coding task to a Codex specialist that works on its own git branch and follows skills you pick (experimental).",
      "author": "hex",
      "homepage": "https://github.com/hex/claude-council",
      "url": "https://github.com/hex/claude-council",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "../mods/council-pane/hooks/pane.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "config.describe",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__claude-council__ask$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__claude-council__specialist$\"/"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "council-pane"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "config.set",
          "matcher": {
            "key": "?"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "specialists"
          }
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "specialist-setup"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.scroll",
          "matcher": {
            "requestId": "specialist"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.config.set",
        "$.env.get",
        "$.env.set",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.write",
        "$.process.run",
        "$.prompt.submit",
        "$.session.cwd",
        "$.session.id",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.tool.register",
        "$.ui.ask",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.scroll"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-council\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it.",
          "../mods/council-pane/hooks/pane.tsx env writes: COUNCIL_MOD_PANE_DIR",
          "../mods/council-pane/hooks/pane.tsx env reads: HOME, TMPDIR, TMUX"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "sets env vars",
          "changes config",
          "drives Claude",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Bash calls",
        "/\"^mcp__claude-council__ask$\"/ calls",
        "/\"^mcp__claude-council__specialist$\"/ calls"
      ],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 815,
      "pushedAt": "2026-10-01T13:16:08Z",
      "createdAt": "2025-12-17T20:05:12Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Storybloq/storybloq:plugins/storybloq",
      "repo": "Storybloq/storybloq",
      "path": "plugins/storybloq",
      "name": "storybloq",
      "description": "Project memory for Claude Code and Codex. Storybloq stores tickets, issues, handovers, and lessons in a .story/ folder inside your repo.",
      "author": "Amir Shayegh",
      "homepage": "https://storybloq.com",
      "url": "https://github.com/Storybloq/storybloq/tree/main/plugins/storybloq",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "../hooks/mod.ts"
      ],
      "hooks": [
        {
          "event": "ui.render",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "config.set",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.config.list",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "compaction",
        "every prompt"
      ],
      "draws": [
        "any component"
      ],
      "stars": 762,
      "pushedAt": "2026-10-01T23:55:25Z",
      "createdAt": "2026-04-17T00:51:21Z",
      "license": "NOASSERTION",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "DannyMac180/skills:claude-mod-builder/templates/minimal",
      "repo": "DannyMac180/skills",
      "path": "claude-mod-builder/templates/minimal",
      "name": "my-mod",
      "description": "One sentence on what this mod does and what it hooks. Needs function hooks (early access) and an interactive terminal.",
      "author": "Your Name",
      "homepage": "https://github.com/DannyMac180/skills",
      "url": "https://github.com/DannyMac180/skills/tree/main/claude-mod-builder/templates/minimal",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "my-command"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 534,
      "pushedAt": "2026-09-15T13:12:31Z",
      "createdAt": "2026-05-29T14:54:55Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "notque/vexjoy-agent:plugins/jev-auto-compact",
      "repo": "notque/vexjoy-agent",
      "path": "plugins/jev-auto-compact",
      "name": "jev-auto-compact",
      "description": "Jev-powered verbatim compaction: once context reaches 60%, prunes stale tool calls with zero generation. Skips (never falls back to the LLM summarizer) when nothing is prunable; records evidence for learning.db.",
      "author": "vexjoy-agent",
      "homepage": "https://github.com/notque/vexjoy-agent",
      "url": "https://github.com/notque/vexjoy-agent/tree/main/plugins/jev-auto-compact",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./jev-auto-compact.mjs"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.http.fetch",
        "$.session.compact",
        "$.session.id",
        "$.session.messages",
        "$.session.usage",
        "$.settings.read",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./jev-auto-compact.mjs env writes: nothing",
          "./jev-auto-compact.mjs env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 424,
      "pushedAt": "2026-09-30T16:26:51Z",
      "createdAt": "2026-03-18T01:39:09Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "yonatangross/orchestkit:mods/lesson-cards",
      "repo": "yonatangross/orchestkit",
      "path": "mods/lesson-cards",
      "name": "lesson-cards",
      "description": "Displays lesson hint cards when tool calls match known patterns. Additive surface during pilot; the classic --strict guard keeps its 12 block-severity denies.",
      "author": "Yonatan Gross",
      "homepage": "https://github.com/yonatangross/orchestkit/tree/main/mods/lesson-cards",
      "url": "https://github.com/yonatangross/orchestkit/tree/main/mods/lesson-cards",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolUse"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "lessons"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.ui.ask",
        "$.ui.invalidate",
        "$.ui.notice",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [
        "ToolUse"
      ],
      "stars": 286,
      "pushedAt": "2026-10-01T22:49:10Z",
      "createdAt": "2025-12-31T05:58:52Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "yonatangross/orchestkit:mods/memory-lens",
      "repo": "yonatangross/orchestkit",
      "path": "mods/memory-lens",
      "name": "memory-lens",
      "description": "Recalls the few memories related to each prompt: one line for the human, one context entry for the model. Local files only, no network on the hot path.",
      "author": "Yonatan Gross",
      "homepage": "https://github.com/yonatangross/orchestkit/tree/main/mods/memory-lens",
      "url": "https://github.com/yonatangross/orchestkit/tree/main/mods/memory-lens",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "memory-lens"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.register",
        "$.env.get",
        "$.fs.list",
        "$.fs.read",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call"
      ],
      "draws": [],
      "stars": 286,
      "pushedAt": "2026-10-01T22:49:10Z",
      "createdAt": "2025-12-31T05:58:52Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "yonatangross/orchestkit:mods/promote-lights",
      "repo": "yonatangross/orchestkit",
      "path": "mods/promote-lights",
      "name": "promote-lights",
      "description": "Shows CI status lights above the prompt while a promote PR (base main) is open. One REST page per minute, PR-open only. Cancelled is not-pass.",
      "author": "OrchestKit",
      "homepage": "https://github.com/yonatangross/orchestkit",
      "url": "https://github.com/yonatangross/orchestkit/tree/main/mods/promote-lights",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "lights"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.env.get",
        "$.process.run",
        "$.session.repo",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: PROMOTE_HEAD, PROMOTE_LIGHTS_WATCH"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 286,
      "pushedAt": "2026-10-01T22:49:10Z",
      "createdAt": "2025-12-31T05:58:52Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "yonatangross/orchestkit:mods/secrets-veil",
      "repo": "yonatangross/orchestkit",
      "path": "mods/secrets-veil",
      "name": "secrets-veil",
      "description": "Masks secret values in tool results before the model reads them: named vendor variables, value-shape patterns, and high-entropy tokens. No reveal path.",
      "author": "OrchestKit",
      "homepage": "https://github.com/yonatangross/orchestkit",
      "url": "https://github.com/yonatangross/orchestkit/tree/main/mods/secrets-veil",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.env.get",
        "$.ui.ask",
        "$.ui.copy",
        "$.ui.log",
        "$.ui.notice",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: ANTHROPIC_API_KEY, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AZURE_OPENAI_API_KEY, CLOUDFLARE_API_TOKEN, GEMINI_API_KEY, GH_TOKEN, GITHUB_TOKEN, GITLAB_TOKEN, GOOGLE_API_KEY, GROQ_API_KEY, HF_TOKEN, MISTRAL_API_KEY, NPM_TOKEN, OPENAI_API_KEY, OPENROUTER_API_KEY, OP_SERVICE_ACCOUNT_TOKEN, SECRETS_VEIL_OFFER_COPY, SLACK_BOT_TOKEN, STRIPE_SECRET_KEY, VERCEL_TOKEN"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [],
      "stars": 286,
      "pushedAt": "2026-10-01T22:49:10Z",
      "createdAt": "2025-12-31T05:58:52Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "yonatangross/orchestkit:tests/fixtures/fn-hooks-canary",
      "repo": "yonatangross/orchestkit",
      "path": "tests/fixtures/fn-hooks-canary",
      "name": "fn-hooks-canary",
      "description": "Fixture-only plugin. Not shipped, not installed. Pins the Function Hooks module contract so CI notices when upstream moves it (orchestkit#3917).",
      "author": "OrchestKit",
      "homepage": "https://github.com/yonatangross/orchestkit",
      "url": "https://github.com/yonatangross/orchestkit/tree/main/tests/fixtures/fn-hooks-canary",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./hooks-handlers/canary.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "classic.PreToolUse",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "engine.create",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls",
        "classic hooks",
        "every prompt"
      ],
      "draws": [],
      "stars": 286,
      "pushedAt": "2026-10-01T22:49:10Z",
      "createdAt": "2025-12-31T05:58:52Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "yonatangross/orchestkit:tests/probes/tool-list-mod",
      "repo": "yonatangross/orchestkit",
      "path": "tests/probes/tool-list-mod",
      "name": "tool-list-mod",
      "description": "Probe plugin for the R3 function-hook question: answers tool.list with one named tool removed and writes one marker file per call. Used by tests/probes/function-hooks-probe.sh.",
      "author": null,
      "homepage": "https://github.com/yonatangross/orchestkit",
      "url": "https://github.com/yonatangross/orchestkit/tree/main/tests/probes/tool-list-mod",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "tool.list",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.write",
        "$.session.cwd"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: TMPDIR, TOOL_LIST_PROBE_MARK"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads env vars"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 286,
      "pushedAt": "2026-10-01T22:49:10Z",
      "createdAt": "2025-12-31T05:58:52Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "kunchenguid/compact-adviser:packages/claude-mod",
      "repo": "kunchenguid/compact-adviser",
      "path": "packages/claude-mod",
      "name": "compact-adviser",
      "description": "Suggests (or, opt-in, runs) /compact at a completed checkpoint, judged by TypeSafe Jev. Its hooks module activates only when CLAUDE_CODE_ENABLE_FUNCTION_HOOKS is exactly 1 and is otherwise a complete no-op.",
      "author": "Kun Chen",
      "homepage": "https://github.com/kunchenguid/compact-adviser#readme",
      "url": "https://github.com/kunchenguid/compact-adviser/tree/main/packages/claude-mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "compact-adviser"
          }
        },
        {
          "event": "config.describe",
          "matcher": {
            "key": "\"compact-adviser.typesafeApiKey\""
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "compact-adviser"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.config.list",
        "$.config.set",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.session.compact",
        "$.session.cwd",
        "$.session.id",
        "$.session.messages",
        "$.session.usage",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.ui.ask",
        "$.ui.close",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CODE_ENABLE_FUNCTION_HOOKS, COMPACT_ADVISER_DISABLE, COMPACT_ADVISER_TEST_ENDPOINT, HOME, TYPESAFE_API_KEY, TYPESAFE_BASE"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "writes files",
          "changes config",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 192,
      "pushedAt": "2026-09-30T13:58:21Z",
      "createdAt": "2026-09-17T19:56:13Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "greenpolo/cc-multi-cli-plugin:plugins/multi-core",
      "repo": "greenpolo/cc-multi-cli-plugin",
      "path": "plugins/multi-core",
      "name": "multi-core",
      "description": "Claude Code plugin: use ChatGPT (Codex), Cursor, OpenCode Zen, and Antigravity models inside one Claude Code session. Switch with /model, delegate to named native workers, keep each provider's own login and permissions.",
      "author": null,
      "homepage": "https://github.com/greenpolo/cc-multi-cli-plugin",
      "url": "https://github.com/greenpolo/cc-multi-cli-plugin/tree/main/plugins/multi-core",
      "kind": "mod",
      "hasManifest": false,
      "modules": [
        "./register.ts"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 184,
      "pushedAt": "2026-09-29T21:08:59Z",
      "createdAt": "2026-04-05T00:00:05Z",
      "license": "Apache-2.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "pleaseai/shunt:plugins/shunt",
      "repo": "pleaseai/shunt",
      "path": "plugins/shunt",
      "name": "shunt",
      "description": "A Claude Mod for the shunt gateway: /shunt:usage reads the shared account pool's remaining headroom and reset times from shunt's GET /usage, so you can see how close the pool is to throttling without the admin dashboard.",
      "author": "Minsu Lee",
      "homepage": "https://github.com/pleaseai/shunt",
      "url": "https://github.com/pleaseai/shunt/tree/main/plugins/shunt",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "modules../register.ts: shunt: /tmp/acm-clones/pleaseai__shunt/plugins/shunt/hooks/register.ts, compiled line 18 `const registration = on(\"command.run\", { command: COMMAND_NAME }, async ($, e, n...`: the value of on(\"command.run\") is kept (assigned, passed, read, or returned from a nested function); it takes .catch(handler) where it is called and nothing else; $ is always spelled $.noun.event(...) at the call site, on is… [+68 chars]"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 165,
      "pushedAt": "2026-10-02T02:08:51Z",
      "createdAt": "2026-07-09T10:32:04Z",
      "license": "Apache-2.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "tamaratran/jev-pruner:.",
      "repo": "tamaratran/jev-pruner",
      "path": ".",
      "name": "fast-jev-output",
      "description": "Trim long Bash output with Jev before the model sees it (Claude Code plugin)",
      "author": null,
      "homepage": "https://github.com/tamaratran/jev-pruner",
      "url": "https://github.com/tamaratran/jev-pruner",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-jev-output.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.session.messages",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./fast-jev-output.ts env writes: nothing",
          "./fast-jev-output.ts env reads: EVAL_TYPESAFE_API_KEY, TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "writes files",
          "reads files",
          "reads env vars",
          "reads settings",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 156,
      "pushedAt": "2026-09-30T08:14:47Z",
      "createdAt": "2026-09-18T03:00:58Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "tamaratran/jev-pruner:evals/observer",
      "repo": "tamaratran/jev-pruner",
      "path": "evals/observer",
      "name": "jev-eval-observer",
      "description": "Pass-through evaluation instrumentation; never changes tool results.",
      "author": null,
      "homepage": "https://github.com/tamaratran/jev-pruner",
      "url": "https://github.com/tamaratran/jev-pruner/tree/main/evals/observer",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./observer.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "http.fetch",
          "matcher": {}
        },
        {
          "event": "ui.log",
          "matcher": {}
        },
        {
          "event": "fs.write",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.fs.write"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 156,
      "pushedAt": "2026-09-30T08:14:47Z",
      "createdAt": "2026-09-18T03:00:58Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "tamaratran/jev-pruner:tests/fixtures/long-session-observer",
      "repo": "tamaratran/jev-pruner",
      "path": "tests/fixtures/long-session-observer",
      "name": "jev-long-session-observer",
      "description": "Capture synthetic live-test evidence without changing Jev requests.",
      "author": "Jev integration tests",
      "homepage": "https://github.com/tamaratran/jev-pruner",
      "url": "https://github.com/tamaratran/jev-pruner/tree/main/tests/fixtures/long-session-observer",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./observer.ts"
      ],
      "hooks": [
        {
          "event": "session.messages",
          "matcher": {}
        },
        {
          "event": "http.fetch",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.write"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 156,
      "pushedAt": "2026-09-30T08:14:47Z",
      "createdAt": "2026-09-18T03:00:58Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "danyuchn/pii-guard:examples/claude-code-mod",
      "repo": "danyuchn/pii-guard",
      "path": "examples/claude-code-mod",
      "name": "pii-guard",
      "description": "De-identifies personal data before it reaches the model and restores it on the way back out, by asking the resident pii-guard hookd service on loopback. Tool results are redacted, writes and shell commands are restored, a prompt's @ references become guarded reads, and the commands that would carry content off the machine are refused.",
      "author": "pii-guard-tw",
      "homepage": "https://github.com/danyuchn/pii-guard",
      "url": "https://github.com/danyuchn/pii-guard/tree/main/examples/claude-code-mod",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.read",
        "$.http.fetch",
        "$.process.run",
        "$.session.cwd",
        "$.session.id"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: EVAL_PII_GUARD_HOOKD_HOME, HOME, PII_GUARD_HOOKD_HOME"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "reads files",
          "reads env vars"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call",
        "compaction"
      ],
      "draws": [],
      "stars": 149,
      "pushedAt": "2026-09-16T12:04:20Z",
      "createdAt": "2026-03-30T08:35:00Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "VKirill/claude-lane-stack:plugins/lane-stack",
      "repo": "VKirill/claude-lane-stack",
      "path": "plugins/lane-stack",
      "name": "lane-stack",
      "description": "Solo PM conveyor for Claude Code: orchestrator agents, lane playbooks, onboard and resume commands.",
      "author": "VKirill",
      "homepage": "https://github.com/VKirill/claude-lane-stack",
      "url": "https://github.com/VKirill/claude-lane-stack/tree/main/plugins/lane-stack",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./lane-mods.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.http.fetch",
        "$.session.compact",
        "$.session.cwd",
        "$.session.id",
        "$.session.messages",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./lane-mods.ts env writes: nothing",
          "./lane-mods.ts env reads: LANE_JEV_EFFORT, TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "compaction",
        "? calls",
        "every prompt",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 120,
      "pushedAt": "2026-10-02T01:06:52Z",
      "createdAt": "2026-07-11T04:14:51Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "GhalebDweikat/winnow:.",
      "repo": "GhalebDweikat/winnow",
      "path": ".",
      "name": "winnow",
      "description": "A calibrated context sieve for Claude Code. Every large tool result is judged by a System One model before it enters context; irrelevant blocks are replaced with a summary and a recall key.",
      "author": "Ghaleb Dweikat",
      "homepage": "https://github.com/GhalebDweikat/winnow",
      "url": "https://github.com/GhalebDweikat/winnow",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./winnow.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.http.fetch",
        "$.session.cwd",
        "$.session.id",
        "$.session.messages",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "? calls",
        "every prompt"
      ],
      "draws": [],
      "stars": 100,
      "pushedAt": "2026-09-30T02:32:52Z",
      "createdAt": "2026-09-16T03:31:47Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "WingedGuardian/GENesis-AGI:plugins/genesis-web-override",
      "repo": "WingedGuardian/GENesis-AGI",
      "path": "plugins/genesis-web-override",
      "name": "genesis-web-override",
      "description": "Answers Claude Code's built-in WebSearch with Genesis's web_search chain, falling back to the built-in on any failure. Needs CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1.",
      "author": null,
      "homepage": "https://github.com/WingedGuardian/GENesis-AGI",
      "url": "https://github.com/WingedGuardian/GENesis-AGI/tree/main/plugins/genesis-web-override",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.js"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "WebSearch"
          }
        }
      ],
      "calls": [
        "$.mcp.call",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "MCP servers",
          "draws"
        ]
      },
      "sees": [
        "WebSearch calls"
      ],
      "draws": [],
      "stars": 95,
      "pushedAt": "2026-10-02T02:08:49Z",
      "createdAt": "2026-03-21T21:29:36Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "halluton/Mindful-Claude:.",
      "repo": "halluton/Mindful-Claude",
      "path": ".",
      "name": "mindful-claude",
      "description": "Guided breathing exercises above the prompt while Claude works: coherent, box, 4-7-8 and the physiological sigh, four animation styles, and the spinner reads the breath. Appears when Claude starts, disappears when Claude answers. Needs function hooks (early access) and an interactive terminal.",
      "author": "Anthony",
      "homepage": "https://github.com/halluton/Mindful-Claude",
      "url": "https://github.com/halluton/Mindful-Claude",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "breathe"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Spinner"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [
        "hooks/breathe.tsx"
      ],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"mindful-claude\" reads as one of Anthropic's own. Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it."
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt",
        "Spinner"
      ],
      "stars": 82,
      "pushedAt": "2026-09-14T23:01:33Z",
      "createdAt": "2026-03-02T10:41:44Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "IAmUnbounded/save-token-jev-clean:plugins/claude-save-token-jev",
      "repo": "IAmUnbounded/save-token-jev-clean",
      "path": "plugins/claude-save-token-jev",
      "name": "save-token-jev",
      "description": "Jev-guided, verbatim context compaction for Claude Code.",
      "author": null,
      "homepage": "https://github.com/IAmUnbounded/save-token-jev-clean",
      "url": "https://github.com/IAmUnbounded/save-token-jev-clean/tree/main/plugins/claude-save-token-jev",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "../../../dist/integrations/claude.js"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "userConfig.keepThreshold.description: Invalid input: expected string, received undefined",
          "userConfig.preserveRecentMessages.description: Invalid input: expected string, received undefined",
          "userConfig.minReductionRatio.description: Invalid input: expected string, received undefined",
          "userConfig.maxStateTokens.description: Invalid input: expected string, received undefined",
          "userConfig.maxRequestTokens.description: Invalid input: expected string, received undefined",
          "userConfig.truncateHeadChars.description: Invalid input: expected string, received undefined",
          "userConfig.model.description: Invalid input: expected string, received undefined",
          "modules.../../../dist/integrations/claude.js: The module path leaves the plugin directory"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 79,
      "pushedAt": "2026-09-18T06:08:12Z",
      "createdAt": "2026-09-18T05:58:07Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "EliaAlberti/jev-rules:plugins/jev-rules",
      "repo": "EliaAlberti/jev-rules",
      "path": "plugins/jev-rules",
      "name": "jev-rules",
      "description": "Jev picks which of your rules apply to each prompt, so Claude only sees the ones that matter.",
      "author": "Elia Alberti",
      "homepage": "https://github.com/EliaAlberti/jev-rules",
      "url": "https://github.com/EliaAlberti/jev-rules/tree/main/plugins/jev-rules",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./pane.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "rules"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.session.id",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./pane.tsx env writes: nothing",
          "./pane.tsx env reads: TEMP, TMP, TMPDIR"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 62,
      "pushedAt": "2026-09-27T12:29:30Z",
      "createdAt": "2026-09-18T09:18:35Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "darrell-tw/darrelltw-mods:mods/tw-stock-mod",
      "repo": "darrell-tw/darrelltw-mods",
      "path": "mods/tw-stock-mod",
      "name": "tw-stock-mod",
      "description": "Watchlist band above the Claude Code prompt: Taiwan hours show the Taiwan list (紅漲綠跌), US hours show the US list (綠漲紅跌), in a broker-style table with a Solari split-flap footer, plus a 損益 mode (P&L view) for your holdings. 20 symbols a market, 10 on screen at a time. Live prices from Yahoo by default, no key and no account; 永豐 Shioaji (macOS/Linux) and 群益 Capital (Windows) are opt-in real-time routes the band runs itself, tried in your own preference order (twSources) - keep that order and any broker paths in a user-level ~/.claude/stock-band.json so a shared project config stays neutral. Needs function hooks (early access) and an interactive terminal. Zero model tokens.",
      "author": "Darrell Wang",
      "homepage": "https://github.com/darrell-tw/darrelltw-mods",
      "url": "https://github.com/darrell-tw/darrelltw-mods/tree/main/mods/tw-stock-mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.message",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.process.run",
        "$.session.cwd",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [
        "hooks/board.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: HOME, USERPROFILE"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "writes files",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 57,
      "pushedAt": "2026-09-19T13:07:47Z",
      "createdAt": "2026-09-16T06:11:23Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "darkroomengineering/cc-settings:plugins/compaction-trigger",
      "repo": "darkroomengineering/cc-settings",
      "path": "plugins/compaction-trigger",
      "name": "compaction-trigger",
      "description": "Requests a session compaction when the live context passes a token threshold, so verbatim compaction plugins run near the working ceiling instead of at the model window.",
      "author": "Darkroom Engineering",
      "homepage": "https://github.com/darkroomengineering/cc-settings",
      "url": "https://github.com/darkroomengineering/cc-settings/tree/main/plugins/compaction-trigger",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./trigger.ts"
      ],
      "hooks": [
        {
          "event": "ui.log",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.env.set",
        "$.session.compact",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./trigger.ts env writes: TYPESAFE_API_KEY",
          "./trigger.ts env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "sets env vars",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 47,
      "pushedAt": "2026-10-01T18:34:23Z",
      "createdAt": "2026-01-12T16:56:22Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "darkroomengineering/cc-settings:plugins/context-report",
      "repo": "darkroomengineering/cc-settings",
      "path": "plugins/context-report",
      "name": "context-report",
      "description": "Prints which instruction files the engine loaded (tier, path, @ imports, size) once per context load, and hints when a project CLAUDE.md keeps its AGENTS.md from being read.",
      "author": "Darkroom Engineering",
      "homepage": "https://github.com/darkroomengineering/cc-settings",
      "url": "https://github.com/darkroomengineering/cc-settings/tree/main/plugins/context-report",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.context",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.stat",
        "$.session.cwd",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "the system prompt"
      ],
      "draws": [],
      "stars": 47,
      "pushedAt": "2026-10-01T18:34:23Z",
      "createdAt": "2026-01-12T16:56:22Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "darkroomengineering/cc-settings:plugins/drift-fuse",
      "repo": "darkroomengineering/cc-settings",
      "path": "plugins/drift-fuse",
      "name": "drift-fuse",
      "description": "Scores each unattended turn against the task the person asked for with TypeSafe's Jev model, and after consecutive off-task turns redirects or pauses the next machine-submitted prompt.",
      "author": "Darkroom Engineering",
      "homepage": "https://github.com/darkroomengineering/cc-settings",
      "url": "https://github.com/darkroomengineering/cc-settings/tree/main/plugins/drift-fuse",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fuse.ts"
      ],
      "hooks": [
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.env.get",
        "$.http.fetch",
        "$.settings.read",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./fuse.ts env writes: nothing",
          "./fuse.ts env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call"
      ],
      "draws": [],
      "stars": 47,
      "pushedAt": "2026-10-01T18:34:23Z",
      "createdAt": "2026-01-12T16:56:22Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "hex/claude-sessions:mods/cs",
      "repo": "hex/claude-sessions",
      "path": "mods/cs",
      "name": "cs",
      "description": "cs's in-session mod: the rotate band above the prompt, forced rotation past CS_ROTATE_FORCE_CTX, and the wrap key",
      "author": "cs",
      "homepage": "https://github.com/hex/claude-sessions",
      "url": "https://github.com/hex/claude-sessions/tree/main/mods/cs",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "queue"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.command.register",
        "$.command.run",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.process.run",
        "$.prompt.submit",
        "$.session.compact",
        "$.session.cwd",
        "$.session.id",
        "$.session.usage",
        "$.ui.ask",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: CS_BIN, CS_ROTATE_BUTTON_CTX, CS_ROTATE_FORCE_CTX, CS_STATUSLINE_CTX_WARN, CS_TERM_BG_RGB, CS_TERM_THEME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 44,
      "pushedAt": "2026-10-01T16:59:02Z",
      "createdAt": "2025-11-24T08:19:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "hex/claude-sessions:mods/cs-update",
      "repo": "hex/claude-sessions",
      "path": "mods/cs-update",
      "name": "cs-update",
      "description": "Release notes for a pending cs update, once per launch, with 1 to install it in place; /cs-update reopens the pane.",
      "author": "cs",
      "homepage": "https://github.com/hex/claude-sessions",
      "url": "https://github.com/hex/claude-sessions/tree/main/mods/cs-update",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "cs-update"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.process.run",
        "$.session.cwd",
        "$.session.id",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: CS_BIN, CS_UPDATE_AVAILABLE, HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 44,
      "pushedAt": "2026-10-01T16:59:02Z",
      "createdAt": "2025-11-24T08:19:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "karanb192/awesome-claude-code-mods:examples/hello-mod",
      "repo": "karanb192/awesome-claude-code-mods",
      "path": "examples/hello-mod",
      "name": "hello-mod",
      "description": "The smallest Claude Mod: logs one line when the session starts and refuses one Bash command. Three files, no dependencies, exists so you can see the validator print a footprint.",
      "author": "Karan Bansal",
      "homepage": "https://github.com/karanb192/awesome-claude-code-mods",
      "url": "https://github.com/karanb192/awesome-claude-code-mods/tree/main/examples/hello-mod",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 44,
      "pushedAt": "2026-09-29T02:31:13Z",
      "createdAt": "2026-09-15T05:56:55Z",
      "license": "CC0-1.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "tdimino/claude-code-minoan:plugins/jev-compact-gate",
      "repo": "tdimino/claude-code-minoan",
      "path": "plugins/jev-compact-gate",
      "name": "jev-compact-gate",
      "description": "Jev decides when the session compacts, inside a 280k: 400k token band; Claude's own summary does the compacting.",
      "author": "Tom di Mino",
      "homepage": "https://github.com/tdimino/claude-code-minoan",
      "url": "https://github.com/tdimino/claude-code-minoan/tree/main/plugins/jev-compact-gate",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./jev-compact-gate.ts"
      ],
      "hooks": [
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.session.compact",
        "$.session.id",
        "$.session.messages",
        "$.session.usage",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./jev-compact-gate.ts env writes: nothing",
          "./jev-compact-gate.ts env reads: HOME, OPENROUTER_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 41,
      "pushedAt": "2026-09-27T21:35:45Z",
      "createdAt": "2026-01-02T05:23:14Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "karanb192/cache-tax:.",
      "repo": "karanb192/cache-tax",
      "path": ".",
      "name": "cache-tax",
      "description": "cache-tax, the Mod. Everything the hook form does, from inside Claude Code instead of the transcript: stops a cold send once with its price (the resend goes through), keeps the 1-hour prompt cache warm for a window you set with one cache-shared fork per idle stretch, arms that for you after a paid cold write, and keeps score of this session's cold writes. Needs function hooks (early access).",
      "author": "Karan Bansal",
      "homepage": "https://github.com/karanb192/cache-tax",
      "url": "https://github.com/karanb192/cache-tax",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "keepwarm"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "cache-tax"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.command.list",
        "$.command.register",
        "$.model.fork",
        "$.session.id",
        "$.session.model",
        "$.session.usage",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "every prompt",
        "compaction"
      ],
      "draws": [],
      "stars": 39,
      "pushedAt": "2026-09-20T11:38:49Z",
      "createdAt": "2026-09-18T17:24:57Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "lossless-claude/lcm:.",
      "repo": "lossless-claude/lcm",
      "path": ".",
      "name": "lcm",
      "description": "Lossless context management: DAG-based summarization that preserves every message",
      "author": "Pedro Almeida",
      "homepage": "https://lossless-claude.com",
      "url": "https://github.com/lossless-claude/lcm",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./lcm-hooks.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "prompt.section",
          "matcher": {
            "name": "memory"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.sleep",
        "$.env.get",
        "$.fs.write",
        "$.http.fetch",
        "$.model.complete",
        "$.model.fork",
        "$.process.run",
        "$.session.cwd",
        "$.session.id",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "./lcm-hooks.ts env writes: nothing",
          "./lcm-hooks.ts env reads: LCM_SUMMARIZE_WORKER, LCM_SUMMARIZE_WORKER_MAX_OUTPUT_TOKENS, LCM_SUMMARIZE_WORKER_MODEL"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "writes files",
          "drives Claude",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "the system prompt",
        "every prompt",
        "every tool call"
      ],
      "draws": [],
      "stars": 36,
      "pushedAt": "2026-10-01T18:47:21Z",
      "createdAt": "2026-03-22T12:42:59Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "sezaakgun/cc-arcade:.",
      "repo": "sezaakgun/cc-arcade",
      "path": ".",
      "name": "cc-arcade",
      "description": "Games above the Claude Code prompt (snake, Tetris, 2048, Minesweeper, Flappy, Pong, typing test, Space Invaders, Doom) plus a pet that grows as Claude tests, commits and edits. Clones of the genre, not affiliated with or endorsed by Tetris Holding, Taito, Atari or id Software. Needs function hooks (early access) and an interactive terminal.",
      "author": "Seza Akgün",
      "homepage": "https://github.com/sezaakgun/cc-arcade",
      "url": "https://github.com/sezaakgun/cc-arcade",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "arcade"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/doom.tsx",
        "hooks/boards/flappy.tsx",
        "hooks/boards/invaders.tsx",
        "hooks/boards/minesweeper.tsx",
        "hooks/boards/pet.tsx",
        "hooks/boards/pong.tsx",
        "hooks/boards/snake.tsx",
        "hooks/boards/tetris.tsx",
        "hooks/boards/twenty48.tsx",
        "hooks/boards/typing.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 36,
      "pushedAt": "2026-09-15T00:19:51Z",
      "createdAt": "2026-09-13T14:36:00Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "saadshahd/moo.md:hope",
      "repo": "saadshahd/moo.md",
      "path": "hope",
      "name": "hope",
      "description": "Thinking discipline for AI work. Clarify intent, shape approach, consult experts, guard unsupervised work, hand work back so you own it. The slop hook needs CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1.",
      "author": "Saad Shahd",
      "homepage": "https://github.com/saadshahd/moo.md",
      "url": "https://github.com/saadshahd/moo.md/tree/main/hope",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./slop.tsx"
      ],
      "hooks": [
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.fs.read",
        "$.fs.write",
        "$.process.run",
        "$.prompt.fill",
        "$.session.messages",
        "$.session.root",
        "$.state.get",
        "$.state.set",
        "$.ui.close",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./slop.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./slop.d.ts declares state: hope.slop",
          "./slop.tsx state writes: hope.slop",
          "./slop.tsx state reads: hope.slop"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "runs processes",
          "writes files",
          "writes the prompt box",
          "reads files",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 34,
      "pushedAt": "2026-09-30T23:50:47Z",
      "createdAt": "2025-11-29T15:45:06Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "saadshahd/moo.md:hunch",
      "repo": "saadshahd/moo.md",
      "path": "hunch",
      "name": "hunch",
      "description": "A grab bag of hunches: experimental skills and plugin features tried here before they earn a place in hope or sound. Everything graduates or dies. The tend mod needs CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1.",
      "author": "Saad Shahd",
      "homepage": "https://github.com/saadshahd/moo.md",
      "url": "https://github.com/saadshahd/moo.md/tree/main/hunch",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./tend.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "classic.Stop",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "long"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "cards"
          }
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "prompt.suggest",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "UserMessage"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.agent.list",
        "$.clock.after",
        "$.clock.every",
        "$.command.list",
        "$.command.register",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.model.complete",
        "$.process.run",
        "$.prompt.fill",
        "$.prompt.read",
        "$.prompt.suggest",
        "$.session.id",
        "$.session.messages",
        "$.session.root",
        "$.session.surfaces",
        "$.session.usage",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/band.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.prompt.read",
          "runs processes",
          "drives Claude",
          "writes the prompt box",
          "reads files",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "every tool call",
        "every prompt",
        "compaction"
      ],
      "draws": [
        "AssistantMessage",
        "UserMessage",
        "AbovePrompt",
        "Pane"
      ],
      "stars": 34,
      "pushedAt": "2026-09-30T23:50:47Z",
      "createdAt": "2025-11-29T15:45:06Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "karanb192/claude-code-mods:plugins/fable-pin",
      "repo": "karanb192/claude-code-mods",
      "path": "plugins/fable-pin",
      "name": "fable-pin",
      "description": "Pins every subagent to the fable model: rewrites the model on agent.spawn unless the spawn is a fork, with /fable-pin on, off and status. Touches nothing but its own store. Needs function hooks (early access).",
      "author": "Karan Bansal",
      "homepage": "https://github.com/karanb192/claude-code-mods",
      "url": "https://github.com/karanb192/claude-code-mods/tree/main/plugins/fable-pin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "fable-pin"
          }
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state"
        ]
      },
      "sees": [
        "subagent spawns"
      ],
      "draws": [],
      "stars": 32,
      "pushedAt": "2026-09-18T19:45:46Z",
      "createdAt": "2026-09-15T12:43:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "wandercom/kindex:src/kindex/claude_modern",
      "repo": "wandercom/kindex",
      "path": "src/kindex/claude_modern",
      "name": "kindex-modern",
      "description": "Repo-local Kindex memory and durable tasks for Claude function hooks (qualified on 2.1.274)",
      "author": "Wander",
      "homepage": "https://kindex.tools/",
      "url": "https://github.com/wandercom/kindex/tree/main/src/kindex/claude_modern",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./kindex.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.describe",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.process.run",
        "$.session.cwd",
        "$.session.id",
        "$.tool.register",
        "$.ui.invalidate",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "draws"
        ]
      },
      "sees": [
        "the system prompt",
        "every prompt",
        "every tool call"
      ],
      "draws": [],
      "stars": 32,
      "pushedAt": "2026-10-02T00:03:48Z",
      "createdAt": "2026-02-24T21:54:13Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:engine/mods/claude-runtime",
      "repo": "ucsandman/claude-harness",
      "path": "engine/mods/claude-runtime",
      "name": "claude-runtime",
      "description": "Shared Claude runtime adapter: normalises function-hook events into ClaudeRuntimeEvent, exposes $.runtime (emit bus, supports, judge, snapshot) to other plugins, and writes a JSONL event log",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/engine/mods/claude-runtime",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "engine.create",
          "matcher": {}
        },
        {
          "event": "runtime.judge",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "tool.check",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.model.complete",
        "$.runtime.emit",
        "$.session.id",
        "$.session.model",
        "$.session.usage",
        "$.settings.read",
        "$.store.set"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-runtime\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it.",
          "types ./types/index.d.ts declares on $: $.runtime",
          "./index.ts env writes: nothing",
          "./index.ts env reads: CLAUDE_CONFIG_DIR, HOME, USERPROFILE"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.runtime.emit",
          "network",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads settings",
          "persists state"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:engine/mods/harness-mods",
      "repo": "ucsandman/claude-harness",
      "path": "engine/mods/harness-mods",
      "name": "harness-mods",
      "description": "Harness Mod layer: heartbeat/canary, native usage, rewrite explanations, measured subagent accounting, supervisor routing, secret redaction. Modes per guard in ~/.claude/mods/mods-config.json (classic | shadow_mod | mod).",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/engine/mods/harness-mods",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "runtime.emit",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "mods"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.runtime.supports",
        "$.session.id",
        "$.session.model",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./index.tsx env writes: nothing",
          "./index.tsx env reads: CLAUDE_CONFIG_DIR, HARNESS_MODS, HARNESS_MOD_READ_CACHE, HARNESS_MOD_ROUTING, HARNESS_MOD_SECRET_REDACTION, HARNESS_MOD_SUBAGENT_ACCOUNTING, HOME, USERPROFILE"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.runtime.supports",
          "writes files",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "subagent spawns",
        "every tool call",
        "every prompt"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/bench",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/bench",
      "name": "bench",
      "description": "Benchmark: classic settings hooks vs function hooks per tool call",
      "author": null,
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/bench",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "classic.PreToolUse",
          "matcher": {}
        },
        {
          "event": "classic.PostToolUse",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "tool.check",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.write",
        "$.process.run",
        "$.session.model"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files"
        ]
      },
      "sees": [
        "classic hooks",
        "every tool call"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/demos/bender",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/demos/bender",
      "name": "bender",
      "description": "REALITY BENDER: intercepts a harmless tool result and alters what Claude receives; prints REAL vs RECEIVED",
      "author": null,
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/demos/bender",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"bend\"/i"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/demos/blackbox",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/demos/blackbox",
      "name": "blackbox",
      "description": "BLACK BOX RECORDER: structured per-session timeline of prompts, model steps, tool calls, subagents and denials; /blackbox prints it",
      "author": null,
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/demos/blackbox",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "blackbox"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.fs.write",
        "$.session.id",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/demos/guardian",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/demos/guardian",
      "name": "guardian",
      "description": "GUARDIAN: executable policy that protects lab/demos/protected/** from Write/Edit/Bash, whatever CLAUDE.md says",
      "author": null,
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/demos/guardian",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write|Edit|NotebookEdit|Bash"
          }
        },
        {
          "event": "tool.check",
          "matcher": {
            "tool": "Write|Edit|NotebookEdit|Bash"
          }
        }
      ],
      "calls": [
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Write|Edit|NotebookEdit|Bash calls"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/demos/matrix",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/demos/matrix",
      "name": "matrix",
      "description": "MATRIX: freezes a harmless tool call before it runs, shows what Claude intended, asks you, then continues or denies. /matrix on|off",
      "author": null,
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/demos/matrix",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "matrix"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"matrix\"/i"
          }
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.command.register",
        "$.ui.ask",
        "$.ui.log",
        "$.ui.notice",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/demos/tunnel/cost",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/demos/tunnel/cost",
      "name": "tunnel-cost",
      "description": "MIDDLEWARE TUNNEL stage 2: Cost analyzer: estimates the call's token cost from the args size",
      "author": null,
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/demos/tunnel/cost",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"tunnel\"/i"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/demos/tunnel/observer",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/demos/tunnel/observer",
      "name": "tunnel-observer",
      "description": "MIDDLEWARE TUNNEL stage 1: Observer: sees the call first, stamps t0, prints what enters",
      "author": null,
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/demos/tunnel/observer",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"tunnel\"/i"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/demos/tunnel/policy",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/demos/tunnel/policy",
      "name": "tunnel-policy",
      "description": "MIDDLEWARE TUNNEL stage 3: Policy: allows everything harmless; denies a matching rule",
      "author": null,
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/demos/tunnel/policy",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"tunnel\"/i"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/demos/tunnel/telemetry",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/demos/tunnel/telemetry",
      "name": "tunnel-telemetry",
      "description": "MIDDLEWARE TUNNEL stage 4: Telemetry: records the call and its result for the ledger",
      "author": null,
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/demos/tunnel/telemetry",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"tunnel\"/i"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/probe",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/probe",
      "name": "probe",
      "description": "Function-hooks probe: proves modules load and events fire headlessly",
      "author": null,
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/probe",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "*",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.write",
        "$.session.cwd",
        "$.session.model",
        "$.session.usage",
        "$.tool.list"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.tool.list",
          "writes files"
        ]
      },
      "sees": [
        "everything"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/probe-ui",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/probe-ui",
      "name": "probe-ui",
      "description": "Interactive UI probe: ui.render components, toast, status, log, pane, command register",
      "author": null,
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/probe-ui",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "probeui"
          }
        },
        {
          "event": "ui.render",
          "matcher": {}
        },
        {
          "event": "ui.press",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.fs.write",
        "$.session.surfaces",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "any component"
      ],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/probe2",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/probe2",
      "name": "probe2",
      "description": "Interception probe: deny, rewrite, replace result, delay, throw, register tool, classify",
      "author": null,
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/probe2",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.*",
          "matcher": {}
        },
        {
          "event": "classic.*",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"DENYME\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"echo ORIGINAL\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Read",
            "file_path": "/\"secret\\\\.txt$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"echo SLOW\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"echo BOOM\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"echo CRASH\"/"
          }
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__probe2__probe_echo"
          }
        },
        {
          "event": "tool.check",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.fs.write",
        "$.model.classify",
        "$.tool.register"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude"
        ]
      },
      "sees": [
        "classic hooks",
        "Bash calls",
        "Read calls",
        "mcp__probe2__probe_echo calls"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/probe3",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/probe3",
      "name": "probe3",
      "description": "Permission override, subagent visibility, agent.spawn model rewrite, turn.step routing, prompt context injection",
      "author": null,
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/probe3",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.check",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "agent.offer",
          "matcher": {
            "agent": "Plan"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.list",
        "$.fs.write",
        "$.session.id",
        "$.session.messages",
        "$.session.repo",
        "$.session.usage",
        "$.settings.read"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads settings",
          "reads the transcript"
        ]
      },
      "sees": [
        "every tool call",
        "subagent spawns",
        "every prompt"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/spike-compact",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/spike-compact",
      "name": "spike-compact",
      "description": "Spike: does $.session.compact() work from a plugin, and what does the session.compact event carry?",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/spike-compact",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.write",
        "$.session.compact",
        "$.session.turns",
        "$.session.usage"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/spike-describe",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/spike-describe",
      "name": "spike-describe",
      "description": "Spike: does a tool.describe rewrite reach the model, does agent.offer hide a type, does prompt.suggest fire?",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/spike-describe",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "agent.offer",
          "matcher": {
            "agent": "Plan"
          }
        },
        {
          "event": "agent.offer",
          "matcher": {}
        },
        {
          "event": "prompt.suggest",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.write",
        "$.prompt.suggest"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "writes the prompt box"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/spike-handoff",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/spike-handoff",
      "name": "spike-handoff",
      "description": "Spike: safe-boundary handoff (bundle written at turn.complete from the runtime bus) and $.turn.abort semantics",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/spike-handoff",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.write",
        "$.process.run",
        "$.runtime.snapshot",
        "$.session.id",
        "$.session.messages",
        "$.session.usage",
        "$.turn.abort",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.runtime.snapshot",
          "runs processes",
          "writes files",
          "drives Claude",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/lab/xray",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/lab/xray",
      "name": "xray",
      "description": "CLAUDE RUNTIME X-RAY: wildcard inspector with filters (/xray all|tools|subagents|session|usage|ui|errors|unknown|off), a HUD above the prompt, and a black-box timeline file",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/lab/xray",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "*",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "xray"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt",
            "surface": "terminal"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.fs.write",
        "$.session.id",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "everything"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/prototypes/costclaw-live",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/prototypes/costclaw-live",
      "name": "costclaw-live",
      "description": "COSTCLAW LIVE: per-request cost, cache decay and repeated-read detection while the session runs, and it serves the Nth identical Read of an unchanged file from its own cache instead of paying for it",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/prototypes/costclaw-live",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt",
            "surface": "terminal"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "costclaw"
          }
        },
        {
          "event": "session.start",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.fs.stat",
        "$.fs.write",
        "$.session.id",
        "$.session.repo",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/prototypes/prodguard",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/prototypes/prodguard",
      "name": "prodguard",
      "description": "PRODUCTION GUARD: ambient project/environment context + a transport-independent policy core (DashClaw evidence classifier + offlocal policy engine) enforced natively on tool.call and tool.check. Blocks, asks, or contains before the command runs. /prodguard",
      "author": "claude-mods-rnd",
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/prototypes/prodguard",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash|Write|Edit|NotebookEdit"
          }
        },
        {
          "event": "tool.check",
          "matcher": {
            "tool": "Bash|Write|Edit|NotebookEdit"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "prodguard"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt",
            "surface": "terminal"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.session.id",
        "$.session.repo",
        "$.ui.ask",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads files",
          "draws"
        ]
      },
      "sees": [
        "Bash|Write|Edit|NotebookEdit calls"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/claude-harness:labs/claude-mods/prototypes/supervisor",
      "repo": "ucsandman/claude-harness",
      "path": "labs/claude-mods/prototypes/supervisor",
      "name": "supervisor",
      "description": "SUBAGENT SUPERVISOR: routing-and-budget Mod. Rewrites a spawn's model onto the capability graph instead of denying it, keeps a measured per-agent-type token ledger in $.store, caps tool calls per subagent, and shows live subagents + the last routing decision above the prompt. /supervisor prints the routing log and the ledger.",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/claude-harness",
      "url": "https://github.com/ucsandman/claude-harness/tree/main/labs/claude-mods/prototypes/supervisor",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "supervisor"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt",
            "surface": "terminal"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.fs.write",
        "$.session.id",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "subagent spawns",
        "every tool call"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 26,
      "pushedAt": "2026-09-29T04:23:13Z",
      "createdAt": "2026-08-13T21:10:11Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "AlmogBaku/ContextSaver:.",
      "repo": "AlmogBaku/ContextSaver",
      "path": ".",
      "name": "contextsaver",
      "description": "Diagnoses wrong processes, workflows and habits in Claude Code sessions: fires on plan acceptance, workflow launches, pace complaints and the clock, names the lean alternative with its measured cost, and lets the user fix it in one click.",
      "author": "Almog Baku",
      "homepage": "https://github.com/AlmogBaku/ContextSaver",
      "url": "https://github.com/AlmogBaku/ContextSaver",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "?"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "?"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear|resume"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "?"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.model.fork",
        "$.session.messages",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CONTEXTSAVER_DEBUG"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "subagent spawns",
        "compaction",
        "every prompt"
      ],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 25,
      "pushedAt": "2026-09-27T12:11:36Z",
      "createdAt": "2026-09-16T21:35:27Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "TheSmokeDev/taskchad-os:.claude/plugins/persona-cognition",
      "repo": "TheSmokeDev/taskchad-os",
      "path": ".claude/plugins/persona-cognition",
      "name": "homie-persona-cognition",
      "description": "Host-bound cognitive lifecycle events for The Homie.",
      "author": null,
      "homepage": "https://github.com/TheSmokeDev/taskchad-os",
      "url": "https://github.com/TheSmokeDev/taskchad-os/tree/master/.claude/plugins/persona-cognition",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.process.run"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOMIE_COGNITION_HOOK_COMMAND, HOMIE_COGNITION_HOOK_PYTHON"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads env vars"
        ]
      },
      "sees": [
        "every tool call",
        "every prompt"
      ],
      "draws": [],
      "stars": 25,
      "pushedAt": "2026-09-30T08:44:53Z",
      "createdAt": "2026-04-08T08:15:22Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "FazalAAli/pi-agent-for-claude:.",
      "repo": "FazalAAli/pi-agent-for-claude",
      "path": ".",
      "name": "pi-agent-for-claude",
      "description": "pi agent for claude: a `pi` subagent type whose model steps run the pi CLI, so pi subagents and agent-team teammates live in Claude Code's own agent UI, streamed live.",
      "author": "Fazal Ali",
      "homepage": "https://github.com/FazalAAli/pi-agent-for-claude",
      "url": "https://github.com/FazalAAli/pi-agent-for-claude",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.process.run",
        "$.session.cwd",
        "$.session.messages",
        "$.tool.register"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"pi-agent-for-claude\" reads as one of Anthropic's own. Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it."
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads the transcript"
        ]
      },
      "sees": [
        "every tool call",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-18T04:48:45Z",
      "createdAt": "2026-09-18T04:24:12Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Nasrallah-AL/jev-cli:plugin",
      "repo": "Nasrallah-AL/jev-cli",
      "path": "plugin",
      "name": "jev",
      "description": "Cheap, fast, typed AI judgments inside Claude Code via the jevctl CLI (verify, screen, find, classify, extract, rerank, match, route, ask, batch), plus verbatim Jev-guided context compaction that replaces the built-in summary.",
      "author": "Nasr Shaer",
      "homepage": "https://github.com/Nasrallah-AL/jev-cli",
      "url": "https://github.com/Nasrallah-AL/jev-cli/tree/main/plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-jev.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.http.fetch",
        "$.session.compact",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./fast-jev.ts env writes: nothing",
          "./fast-jev.ts env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-27T07:06:05Z",
      "createdAt": "2026-09-18T08:16:41Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ucsandman/Agnostic-AI:engine/mods/claude-runtime",
      "repo": "ucsandman/Agnostic-AI",
      "path": "engine/mods/claude-runtime",
      "name": "claude-runtime",
      "description": "Shared Claude runtime adapter: normalises function-hook events into ClaudeRuntimeEvent, exposes $.runtime (emit bus, supports, judge, snapshot) to other plugins, and writes a JSONL event log",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/engine/mods/claude-runtime",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "engine.create",
          "matcher": {}
        },
        {
          "event": "runtime.judge",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "tool.check",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.model.complete",
        "$.runtime.emit",
        "$.session.id",
        "$.session.model",
        "$.session.usage",
        "$.settings.read",
        "$.store.set"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-runtime\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it.",
          "types ./types/index.d.ts declares on $: $.runtime",
          "./index.ts env writes: nothing",
          "./index.ts env reads: CLAUDE_CONFIG_DIR, HOME, USERPROFILE"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.runtime.emit",
          "network",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads settings",
          "persists state"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:engine/mods/harness-mods",
      "repo": "ucsandman/Agnostic-AI",
      "path": "engine/mods/harness-mods",
      "name": "harness-mods",
      "description": "Harness Mod layer: heartbeat/canary, native usage, rewrite explanations, measured subagent accounting, supervisor routing, secret redaction. Modes per guard in ~/.claude/mods/mods-config.json (classic | shadow_mod | mod).",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/engine/mods/harness-mods",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "runtime.emit",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "mods"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.runtime.supports",
        "$.session.id",
        "$.session.model",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./index.tsx env writes: nothing",
          "./index.tsx env reads: CLAUDE_CONFIG_DIR, HARNESS_MODS, HARNESS_MOD_READ_CACHE, HARNESS_MOD_ROUTING, HARNESS_MOD_SECRET_REDACTION, HARNESS_MOD_SUBAGENT_ACCOUNTING, HOME, USERPROFILE"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.runtime.supports",
          "writes files",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "subagent spawns",
        "every tool call",
        "every prompt"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/bench",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/bench",
      "name": "bench",
      "description": "Benchmark: classic settings hooks vs function hooks per tool call",
      "author": null,
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/bench",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "classic.PreToolUse",
          "matcher": {}
        },
        {
          "event": "classic.PostToolUse",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "tool.check",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.write",
        "$.process.run",
        "$.session.model"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files"
        ]
      },
      "sees": [
        "classic hooks",
        "every tool call"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/demos/bender",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/demos/bender",
      "name": "bender",
      "description": "REALITY BENDER: intercepts a harmless tool result and alters what Claude receives; prints REAL vs RECEIVED",
      "author": null,
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/demos/bender",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"bend\"/i"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/demos/blackbox",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/demos/blackbox",
      "name": "blackbox",
      "description": "BLACK BOX RECORDER: structured per-session timeline of prompts, model steps, tool calls, subagents and denials; /blackbox prints it",
      "author": null,
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/demos/blackbox",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "blackbox"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.fs.write",
        "$.session.id",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/demos/guardian",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/demos/guardian",
      "name": "guardian",
      "description": "GUARDIAN: executable policy that protects lab/demos/protected/** from Write/Edit/Bash, whatever CLAUDE.md says",
      "author": null,
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/demos/guardian",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write|Edit|NotebookEdit|Bash"
          }
        },
        {
          "event": "tool.check",
          "matcher": {
            "tool": "Write|Edit|NotebookEdit|Bash"
          }
        }
      ],
      "calls": [
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Write|Edit|NotebookEdit|Bash calls"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/demos/matrix",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/demos/matrix",
      "name": "matrix",
      "description": "MATRIX: freezes a harmless tool call before it runs, shows what Claude intended, asks you, then continues or denies. /matrix on|off",
      "author": null,
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/demos/matrix",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "matrix"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"matrix\"/i"
          }
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.command.register",
        "$.ui.ask",
        "$.ui.log",
        "$.ui.notice",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/demos/tunnel/cost",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/demos/tunnel/cost",
      "name": "tunnel-cost",
      "description": "MIDDLEWARE TUNNEL stage 2: Cost analyzer: estimates the call's token cost from the args size",
      "author": null,
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/demos/tunnel/cost",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"tunnel\"/i"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/demos/tunnel/observer",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/demos/tunnel/observer",
      "name": "tunnel-observer",
      "description": "MIDDLEWARE TUNNEL stage 1: Observer: sees the call first, stamps t0, prints what enters",
      "author": null,
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/demos/tunnel/observer",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"tunnel\"/i"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/demos/tunnel/policy",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/demos/tunnel/policy",
      "name": "tunnel-policy",
      "description": "MIDDLEWARE TUNNEL stage 3: Policy: allows everything harmless; denies a matching rule",
      "author": null,
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/demos/tunnel/policy",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"tunnel\"/i"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/demos/tunnel/telemetry",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/demos/tunnel/telemetry",
      "name": "tunnel-telemetry",
      "description": "MIDDLEWARE TUNNEL stage 4: Telemetry: records the call and its result for the ledger",
      "author": null,
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/demos/tunnel/telemetry",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"tunnel\"/i"
          }
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/probe",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/probe",
      "name": "probe",
      "description": "Function-hooks probe: proves modules load and events fire headlessly",
      "author": null,
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/probe",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "*",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.write",
        "$.session.cwd",
        "$.session.model",
        "$.session.usage",
        "$.tool.list"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.tool.list",
          "writes files"
        ]
      },
      "sees": [
        "everything"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/probe-ui",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/probe-ui",
      "name": "probe-ui",
      "description": "Interactive UI probe: ui.render components, toast, status, log, pane, command register",
      "author": null,
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/probe-ui",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "probeui"
          }
        },
        {
          "event": "ui.render",
          "matcher": {}
        },
        {
          "event": "ui.press",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.fs.write",
        "$.session.surfaces",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "any component"
      ],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/probe2",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/probe2",
      "name": "probe2",
      "description": "Interception probe: deny, rewrite, replace result, delay, throw, register tool, classify",
      "author": null,
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/probe2",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.*",
          "matcher": {}
        },
        {
          "event": "classic.*",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"DENYME\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"echo ORIGINAL\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Read",
            "file_path": "/\"secret\\\\.txt$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"echo SLOW\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"echo BOOM\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash",
            "command": "/\"echo CRASH\"/"
          }
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__probe2__probe_echo"
          }
        },
        {
          "event": "tool.check",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.fs.write",
        "$.model.classify",
        "$.tool.register"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude"
        ]
      },
      "sees": [
        "classic hooks",
        "Bash calls",
        "Read calls",
        "mcp__probe2__probe_echo calls"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/probe3",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/probe3",
      "name": "probe3",
      "description": "Permission override, subagent visibility, agent.spawn model rewrite, turn.step routing, prompt context injection",
      "author": null,
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/probe3",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.check",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "agent.offer",
          "matcher": {
            "agent": "Plan"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.list",
        "$.fs.write",
        "$.session.id",
        "$.session.messages",
        "$.session.repo",
        "$.session.usage",
        "$.settings.read"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads settings",
          "reads the transcript"
        ]
      },
      "sees": [
        "every tool call",
        "subagent spawns",
        "every prompt"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/spike-compact",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/spike-compact",
      "name": "spike-compact",
      "description": "Spike: does $.session.compact() work from a plugin, and what does the session.compact event carry?",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/spike-compact",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.write",
        "$.session.compact",
        "$.session.turns",
        "$.session.usage"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/spike-describe",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/spike-describe",
      "name": "spike-describe",
      "description": "Spike: does a tool.describe rewrite reach the model, does agent.offer hide a type, does prompt.suggest fire?",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/spike-describe",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "agent.offer",
          "matcher": {
            "agent": "Plan"
          }
        },
        {
          "event": "agent.offer",
          "matcher": {}
        },
        {
          "event": "prompt.suggest",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.write",
        "$.prompt.suggest"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "writes the prompt box"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/spike-handoff",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/spike-handoff",
      "name": "spike-handoff",
      "description": "Spike: safe-boundary handoff (bundle written at turn.complete from the runtime bus) and $.turn.abort semantics",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/spike-handoff",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.write",
        "$.process.run",
        "$.runtime.snapshot",
        "$.session.id",
        "$.session.messages",
        "$.session.usage",
        "$.turn.abort",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.runtime.snapshot",
          "runs processes",
          "writes files",
          "drives Claude",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/lab/xray",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/lab/xray",
      "name": "xray",
      "description": "CLAUDE RUNTIME X-RAY: wildcard inspector with filters (/xray all|tools|subagents|session|usage|ui|errors|unknown|off), a HUD above the prompt, and a black-box timeline file",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/lab/xray",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "*",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "xray"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt",
            "surface": "terminal"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.fs.write",
        "$.session.id",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "everything"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/prototypes/costclaw-live",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/prototypes/costclaw-live",
      "name": "costclaw-live",
      "description": "COSTCLAW LIVE: per-request cost, cache decay and repeated-read detection while the session runs, and it serves the Nth identical Read of an unchanged file from its own cache instead of paying for it",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/prototypes/costclaw-live",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt",
            "surface": "terminal"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "costclaw"
          }
        },
        {
          "event": "session.start",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.fs.stat",
        "$.fs.write",
        "$.session.id",
        "$.session.repo",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/prototypes/prodguard",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/prototypes/prodguard",
      "name": "prodguard",
      "description": "PRODUCTION GUARD: ambient project/environment context + a transport-independent policy core (DashClaw evidence classifier + offlocal policy engine) enforced natively on tool.call and tool.check. Blocks, asks, or contains before the command runs. /prodguard",
      "author": "claude-mods-rnd",
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/prototypes/prodguard",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash|Write|Edit|NotebookEdit"
          }
        },
        {
          "event": "tool.check",
          "matcher": {
            "tool": "Bash|Write|Edit|NotebookEdit"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "prodguard"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt",
            "surface": "terminal"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.session.id",
        "$.session.repo",
        "$.ui.ask",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads files",
          "draws"
        ]
      },
      "sees": [
        "Bash|Write|Edit|NotebookEdit calls"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ucsandman/Agnostic-AI:labs/claude-mods/prototypes/supervisor",
      "repo": "ucsandman/Agnostic-AI",
      "path": "labs/claude-mods/prototypes/supervisor",
      "name": "supervisor",
      "description": "SUBAGENT SUPERVISOR: routing-and-budget Mod. Rewrites a spawn's model onto the capability graph instead of denying it, keeps a measured per-agent-type token ledger in $.store, caps tool calls per subagent, and shows live subagents + the last routing decision above the prompt. /supervisor prints the routing log and the ledger.",
      "author": "Wes Sander",
      "homepage": "https://github.com/ucsandman/Agnostic-AI",
      "url": "https://github.com/ucsandman/Agnostic-AI/tree/master/labs/claude-mods/prototypes/supervisor",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "supervisor"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt",
            "surface": "terminal"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.fs.write",
        "$.session.id",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "subagent spawns",
        "every tool call"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 22,
      "pushedAt": "2026-09-29T04:23:12Z",
      "createdAt": "2026-08-18T17:40:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "0x7067/claude-jev:.",
      "repo": "0x7067/claude-jev",
      "path": ".",
      "name": "claude-jev",
      "description": "Hands the small judgments in a session to TypeSafe's Jev, a System One model that returns typed answers instead of generating text: what kind of request each prompt is, which model tier a subagent needs, whether an edit breaks a rule already written in your CLAUDE.md or AGENTS.md, and which transcript blocks survive compaction. Kept blocks carry over verbatim: no LLM writes a summary.",
      "author": "0x7067",
      "homepage": "https://github.com/0x7067/claude-jev",
      "url": "https://github.com/0x7067/claude-jev",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "claude-jev"
          }
        },
        {
          "event": "config.describe",
          "matcher": {
            "key": "\"claude-jev.typesafeApiKey\""
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "claude-jev"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "session.compact",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.command.register",
        "$.config.list",
        "$.config.set",
        "$.process.run",
        "$.session.cwd",
        "$.session.id",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-jev\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it.",
          "hooks.UserPromptSubmit: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: node --experimental-strip-types ${CLAUDE_PLUGIN_ROOT}/src/prompt-router.ts. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}.",
          "hooks.PreToolUse: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: node --experimental-strip-types ${CLAUDE_PLUGIN_ROOT}/src/subagent-router.ts. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}.",
          "hooks.PreToolUse: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: node --experimental-strip-types ${CLAUDE_PLUGIN_ROOT}/src/rules.ts. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}.",
          "hooks.PostToolUse: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: node --experimental-strip-types ${CLAUDE_PLUGIN_ROOT}/src/rules.ts. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}.",
          "hooks.PostToolUse: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: node --experimental-strip-types ${CLAUDE_PLUGIN_ROOT}/src/rules.ts. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}.",
          "hooks.Stop: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: node --experimental-strip-types ${CLAUDE_PLUGIN_ROOT}/src/rules.ts. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}.",
          "hooks.PostToolUseFailure: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: node --experimental-strip-types ${CLAUDE_PLUGIN_ROOT}/src/rules.ts. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}."
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "changes config",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 19,
      "pushedAt": "2026-10-01T21:32:12Z",
      "createdAt": "2026-09-18T15:46:56Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "bendrucker/claude:plugins/classifier-telemetry",
      "repo": "bendrucker/claude",
      "path": "plugins/classifier-telemetry",
      "name": "classifier-telemetry",
      "description": "Records each tool call's permission verdict and wall time so auto-mode classifier cost is measurable from the session index",
      "author": "Ben Drucker",
      "homepage": "https://github.com/bendrucker/claude",
      "url": "https://github.com/bendrucker/claude/tree/main/plugins/classifier-telemetry",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "../mod/register.ts"
      ],
      "hooks": [
        {
          "event": "tool.check",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.env.get",
        "$.fs.write",
        "$.session.id"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "version: No version specified. Consider adding a version following semver (e.g., \"1.0.0\")",
          "../mod/register.ts env writes: nothing",
          "../mod/register.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads env vars"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [],
      "stars": 17,
      "pushedAt": "2026-09-29T21:18:48Z",
      "createdAt": "2025-06-26T04:43:34Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "bendrucker/claude:plugins/herdr",
      "repo": "bendrucker/claude",
      "path": "plugins/herdr",
      "name": "herdr",
      "description": "Drive the herdr terminal workspace manager: panes, tabs, workspaces, and sibling coding agents",
      "author": "Ben Drucker",
      "homepage": "https://github.com/bendrucker/claude",
      "url": "https://github.com/bendrucker/claude/tree/main/plugins/herdr",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "../mod/register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "AskUserQuestion"
          }
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.env.get",
        "$.process.run",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "version: No version specified. Consider adding a version following semver (e.g., \"1.0.0\")",
          "../mod/register.ts env writes: nothing",
          "../mod/register.ts env reads: HERDR_BIN_PATH, HERDR_ENV, HERDR_PANE_ID"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "AskUserQuestion calls"
      ],
      "draws": [],
      "stars": 17,
      "pushedAt": "2026-09-29T21:18:48Z",
      "createdAt": "2025-06-26T04:43:34Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "bendrucker/claude:plugins/run-command",
      "repo": "bendrucker/claude",
      "path": "plugins/run-command",
      "name": "run-command",
      "description": "Pick a reply's `! <command>` suggestion by click or digit to fill it into the shell prompt",
      "author": "Ben Drucker",
      "homepage": "https://github.com/bendrucker/claude",
      "url": "https://github.com/bendrucker/claude/tree/main/plugins/run-command",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "../mod/register.tsx"
      ],
      "hooks": [
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "prompt.edit",
          "matcher": {}
        },
        {
          "event": "ui.press",
          "matcher": {
            "plugin": "run-command"
          }
        }
      ],
      "calls": [
        "$.prompt.fill",
        "$.ui.invalidate",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "version: No version specified. Consider adding a version following semver (e.g., \"1.0.0\")"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "writes the prompt box",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "PromptHint",
        "AssistantMessage",
        "AbovePrompt"
      ],
      "stars": 17,
      "pushedAt": "2026-09-29T21:18:48Z",
      "createdAt": "2025-06-26T04:43:34Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "takahirom/takahirom-claude-code-marketplace:plugins/idle-compact",
      "repo": "takahirom/takahirom-claude-code-marketplace",
      "path": "plugins/idle-compact",
      "name": "idle-compact",
      "description": "Compact once after 50 idle minutes, while the 1h prompt cache is still warm.",
      "author": null,
      "homepage": "https://github.com/takahirom/takahirom-claude-code-marketplace",
      "url": "https://github.com/takahirom/takahirom-claude-code-marketplace/tree/main/plugins/idle-compact",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./idle-compact.ts"
      ],
      "hooks": [
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.session.compact",
        "$.session.id",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 17,
      "pushedAt": "2026-09-26T04:15:49Z",
      "createdAt": "2025-08-03T06:43:53Z",
      "license": "Apache-2.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "oikon48/prompt-rail:plugins/prompt-rail",
      "repo": "oikon48/prompt-rail",
      "path": "plugins/prompt-rail",
      "name": "prompt-rail",
      "description": "A rail of your session's prompts beside the transcript or above the prompt; hover to read one, click to jump to it.",
      "author": "oikon48",
      "homepage": "https://github.com/oikon48/prompt-rail",
      "url": "https://github.com/oikon48/prompt-rail/tree/main/plugins/prompt-rail",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "classic.Stop",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "session.receive",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "UserMessage"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolUse"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolResult"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolGroup"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "prompt-rail"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.focus",
          "matcher": {
            "component": "AbovePrompt",
            "plugin": "prompt-rail"
          }
        },
        {
          "event": "ui.focus",
          "matcher": {
            "component": "Pane",
            "requestId": "prompt-rail",
            "plugin": "prompt-rail"
          }
        },
        {
          "event": "ui.press",
          "matcher": {
            "plugin": "prompt-rail"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.register",
        "$.config.set",
        "$.fs.read",
        "$.fs.stat",
        "$.process.spawn",
        "$.session.id",
        "$.state.get",
        "$.state.set",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.ui.close",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.scroll",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/prompt-rail.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/prompt-rail.d.ts declares state: prompt-rail.moved",
          "./index.tsx state writes: prompt-rail.moved",
          "./index.tsx state reads: prompt-rail.moved"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.process.spawn",
          "other: $.state.get",
          "other: $.state.set",
          "changes config",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "every prompt"
      ],
      "draws": [
        "UserMessage",
        "AssistantMessage",
        "ToolUse",
        "ToolResult",
        "ToolGroup",
        "Pane",
        "AbovePrompt"
      ],
      "stars": 12,
      "pushedAt": "2026-10-01T03:31:56Z",
      "createdAt": "2026-09-23T15:33:59Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "thkt/dotclaude:.ja/mods/redact",
      "repo": "thkt/dotclaude",
      "path": ".ja/mods/redact",
      "name": "redact",
      "description": "Read ツールの結果に含まれる認証情報の形をした文字列を、モデルが読む前に伏せる。",
      "author": "thkt",
      "homepage": "https://github.com/thkt/dotclaude",
      "url": "https://github.com/thkt/dotclaude/tree/main/.ja/mods/redact",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Read"
          }
        }
      ],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [
        "Read calls"
      ],
      "draws": [],
      "stars": 12,
      "pushedAt": "2026-09-29T18:55:30Z",
      "createdAt": "2025-08-06T04:39:30Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Aitherium/awdk:adk/harnesses/claude_mod",
      "repo": "Aitherium/awdk",
      "path": "adk/harnesses/claude_mod",
      "name": "awsh",
      "description": "awsh for Claude Code: an `aw` subagent type whose model steps are answered by a session on the local awsh harness daemon, so any harness and any backend the daemon can drive runs as a native Claude Code subagent, streamed live. Also carries the Aither World skills, the `aither` output style, MCP servers for installed bricks and portable brick hooks.",
      "author": "Aitherium",
      "homepage": "https://github.com/Aitherium/awdk",
      "url": "https://github.com/Aitherium/awdk/tree/main/adk/harnesses/claude_mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.http.fetch",
        "$.session.cwd",
        "$.session.id",
        "$.tool.register"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: AITHER_AW_DEPTH, AITHER_HARNESS_HOST, AITHER_HARNESS_PORT, AITHER_HARNESS_TOKEN_FILE, HOME, USERPROFILE"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads files",
          "reads env vars"
        ]
      },
      "sees": [
        "every tool call",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 11,
      "pushedAt": "2026-10-01T22:00:51Z",
      "createdAt": "2026-03-15T19:52:46Z",
      "license": "NOASSERTION",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Aitherium/awdk:adk/mods/compact",
      "repo": "Aitherium/awdk",
      "path": "adk/mods/compact",
      "name": "awcompact",
      "description": "Compacts a long tool result through the AitherOS decision door before the model reads it: per LINE SHAPE, learned from outcomes, never dropping a traceback or a summary line.",
      "author": "Aitherium",
      "homepage": "https://github.com/Aitherium/awdk",
      "url": "https://github.com/Aitherium/awdk/tree/main/adk/mods/compact",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./compact.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.process.run",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [],
      "stars": 11,
      "pushedAt": "2026-10-01T22:00:51Z",
      "createdAt": "2026-03-15T19:52:46Z",
      "license": "NOASSERTION",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "hex/claude-image-generation:.",
      "repo": "hex/claude-image-generation",
      "path": ".",
      "name": "claude-image-generation",
      "description": "Generate and edit images using Google Gemini, OpenAI GPT Image, xAI Grok Image, and OpenRouter APIs",
      "author": "hex",
      "homepage": "https://github.com/hex/claude-image-generation",
      "url": "https://github.com/hex/claude-image-generation",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__claude-image-generation__generate"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.fs.exists",
        "$.process.run",
        "$.tool.register"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-image-generation\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it."
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads files"
        ]
      },
      "sees": [
        "mcp__claude-image-generation__generate calls"
      ],
      "draws": [],
      "stars": 10,
      "pushedAt": "2026-09-25T11:22:28Z",
      "createdAt": "2026-02-09T16:14:03Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "mpolatcan/flowpane:.",
      "repo": "mpolatcan/flowpane",
      "path": ".",
      "name": "flowpane",
      "description": "A live workflow pane: replaces the default Workflow progress list with a phase-by-phase graph or a timeline beside the transcript, showing each agent's state, timing, live token spend, tool calls, what it is saying, and prompt.",
      "author": "Mutlu Polatcan",
      "homepage": "https://github.com/mpolatcan/flowpane",
      "url": "https://github.com/mpolatcan/flowpane",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Workflow"
          }
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.press",
          "matcher": {
            "plugin": "flowpane"
          }
        },
        {
          "event": "ui.select",
          "matcher": {
            "plugin": "flowpane"
          }
        },
        {
          "event": "ui.scroll",
          "matcher": {
            "requestId": "flowpane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "flowpane"
          }
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "flowpane"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.session.id",
        "$.store.get",
        "$.store.set",
        "$.ui.blit",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Workflow calls",
        "every tool call"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 9,
      "pushedAt": "2026-09-22T17:11:20Z",
      "createdAt": "2026-09-15T16:59:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "jagreehal/autotel:packages/autotel-claude-code",
      "repo": "jagreehal/autotel",
      "path": "packages/autotel-claude-code",
      "name": "autotel",
      "description": "OpenTelemetry for Claude Code plugins: adds $.autotel in the engine.create fold so a plugin records spans, traces every hook dispatch with the chain beneath it, and shows each tool call's settled duration on its row. Exports OTLP/HTTP to OTEL_EXPORTER_OTLP_ENDPOINT (autotel-devtools claude sets it).",
      "author": "Jag Reehal",
      "homepage": "https://github.com/jagreehal/autotel/tree/main/packages/autotel-claude-code#readme",
      "url": "https://github.com/jagreehal/autotel/tree/main/packages/autotel-claude-code",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "engine.create",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "*",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolUse"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.env.get",
        "$.http.fetch",
        "$.session.id",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_HEADERS, OTEL_SERVICE_NAME"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "everything"
      ],
      "draws": [
        "ToolUse"
      ],
      "stars": 8,
      "pushedAt": "2026-10-01T22:34:07Z",
      "createdAt": "2025-11-26T06:43:32Z",
      "license": "Apache-2.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "mmurakaru/cueloop:.",
      "repo": "mmurakaru/cueloop",
      "path": ".",
      "name": "cueloop",
      "description": "Claude Mod for cueloop Threads: plan, reply, prototype, diff, review, and refine",
      "author": "cueloop",
      "homepage": "https://github.com/mmurakaru/cueloop",
      "url": "https://github.com/mmurakaru/cueloop",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.env.get",
        "$.process.run",
        "$.prompt.submit",
        "$.session.cwd",
        "$.session.id",
        "$.store.get",
        "$.store.set",
        "$.tool.register"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CODE_ENABLE_FUNCTION_HOOKS, CUELOOP_DISABLE, CUELOOP_HARNESS_ENTRY"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads env vars",
          "persists state"
        ]
      },
      "sees": [
        "every tool call",
        "compaction"
      ],
      "draws": [],
      "stars": 8,
      "pushedAt": "2026-09-28T01:32:35Z",
      "createdAt": "2026-07-26T09:42:47Z",
      "license": "Apache-2.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "muratcakmak/jev-guard:.",
      "repo": "muratcakmak/jev-guard",
      "path": ".",
      "name": "jev-guard",
      "description": "Probability-scored guardrails for Claude Code: deny rule-breaking edits and unasked-for deploys, route your own docs into each prompt, and check the final answer against the turn's own evidence.",
      "author": "Oguzhan Cakmak",
      "homepage": "https://github.com/muratcakmak/jev-guard",
      "url": "https://github.com/muratcakmak/jev-guard",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./guard.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit|Write|Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Skill"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Agent"
          }
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.read",
        "$.http.fetch",
        "$.prompt.submit",
        "$.session.cwd",
        "$.session.messages",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./guard.ts env writes: nothing",
          "./guard.ts env reads: JEV_API_KEY, JEV_BASE_URL, JEV_MODEL, TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "Edit|Write|Bash calls",
        "Skill calls",
        "every prompt",
        "Agent calls"
      ],
      "draws": [],
      "stars": 7,
      "pushedAt": "2026-09-22T08:21:56Z",
      "createdAt": "2026-09-22T08:21:52Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "wasd96040501/taskcut:.",
      "repo": "wasd96040501/taskcut",
      "path": ".",
      "name": "taskcut",
      "description": "Compacts when the work moves on from one sub-task to the next instead of when the context window fills, including in the middle of a long turn. Once the context is past a floor, a model judges each step, reading what you asked for and where Claude has got to but never any tool output, for whether the work moves on from a finished piece to another; if it does, taskcut runs Claude Code's own compaction. Below the floor it does nothing and costs nothing.",
      "author": "Yangze Luo",
      "homepage": "https://github.com/wasd96040501/taskcut",
      "url": "https://github.com/wasd96040501/taskcut",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.model.complete",
        "$.prompt.submit",
        "$.session.compact",
        "$.session.messages",
        "$.session.usage",
        "$.turn.abort",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: TASKCUT"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "reads env vars",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 7,
      "pushedAt": "2026-09-27T11:15:00Z",
      "createdAt": "2026-09-22T03:06:05Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "wasd96040501/taskcut:eval/judge",
      "repo": "wasd96040501/taskcut",
      "path": "eval/judge",
      "name": "taskcut-judgebench",
      "description": "Benchmark harness, not a plugin to install: runs taskcut's judge over labelled steps.",
      "author": null,
      "homepage": "https://github.com/wasd96040501/taskcut",
      "url": "https://github.com/wasd96040501/taskcut/tree/main/eval/judge",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./bench.ts"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "modules../bench.ts: judge: cannot import \"./judge\" (from hooks/bench.ts): no such file under /tmp/acm-clones/wasd96040501__taskcut/eval/judge"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 7,
      "pushedAt": "2026-09-27T11:15:00Z",
      "createdAt": "2026-09-22T03:06:05Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "wasd96040501/taskcut:eval/replaycheck",
      "repo": "wasd96040501/taskcut",
      "path": "eval/replaycheck",
      "name": "taskcut-replaycheck",
      "description": "Benchmark harness, not a plugin to install: records the judge's prompt at every step of a live session, to check the replay against.",
      "author": null,
      "homepage": "https://github.com/wasd96040501/taskcut",
      "url": "https://github.com/wasd96040501/taskcut/tree/main/eval/replaycheck",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./record.ts"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "modules../record.ts: replaycheck: cannot import \"./judge\" (from hooks/record.ts): no such file under /tmp/acm-clones/wasd96040501__taskcut/eval/replaycheck"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 7,
      "pushedAt": "2026-09-27T11:15:00Z",
      "createdAt": "2026-09-22T03:06:05Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Akramovic1/jev-pilot:.",
      "repo": "Akramovic1/jev-pilot",
      "path": ".",
      "name": "jev-pilot",
      "description": "TypeSafe's Jev decides how Claude Code works on each prompt: the main conversation's reasoning effort (low to xhigh, raised to max mid-turn when tool calls keep failing), each subagent's model, whether to split the work across subagents, and the one skill the prompt needs. Brings in custom OpenRouter models (a junior coder reviewed by Opus, or cheap bulk work) and Codex or OpenCode as reviewers, in modes you choose, each health-checked. Reads the prompt with recent context, records every decision, and suggests its own tuning. Backends: OpenRouter, TypeSafe's API, the Vercel AI Gateway, or Claude Code's built-in classifier. Built on claude-code-templates' jev-model-router and jev-skill-suggestion.",
      "author": "Ahmed Akram",
      "homepage": "https://github.com/Akramovic1/jev-pilot",
      "url": "https://github.com/Akramovic1/jev-pilot",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./jev-pilot.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {
            "sessionId": "/\"(?:)\"/"
          }
        },
        {
          "event": "session.compact",
          "matcher": {
            "trigger": "/\"(?:)\"/"
          }
        },
        {
          "event": "skill.prompt",
          "matcher": {
            "skill": "jev-pilot:report"
          }
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "prompt.attachment",
          "matcher": {
            "type": "skill_listing"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {
            "text": "/\"(?:)\"/"
          }
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "skill.prompt",
          "matcher": {
            "skill": "jev-pilot:setup"
          }
        },
        {
          "event": "skill.prompt",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {
            "cwd": "/\"(?:)\"/"
          }
        },
        {
          "event": "session.end",
          "matcher": {
            "reason": "/\"(?:)\"/"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "jev"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {
            "turnId": "/\"(?:)\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"(?:)\"/"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {
            "turnId": "/\"(?:)\"/"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.agent.list",
        "$.agent.register",
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.clock.sleep",
        "$.command.list",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.model.classify",
        "$.process.run",
        "$.session.cwd",
        "$.session.messages",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.tool.list",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./jev-pilot.ts env writes: nothing",
          "./jev-pilot.ts env reads: ANTHROPIC_BASE_URL, CLAUDE_CODE_USE_BEDROCK, CLAUDE_CODE_USE_VERTEX, HOME, JEV_ANTHROPIC_UPSTREAM, JEV_ROUTER_URL"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.agent.register",
          "other: $.tool.list",
          "network",
          "runs processes",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call",
        "compaction",
        "the jev-pilot:report skill",
        "subagent spawns",
        "the jev-pilot:setup skill",
        "every skill",
        "/\"(?:)\"/ calls"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 6,
      "pushedAt": "2026-09-30T19:47:41Z",
      "createdAt": "2026-09-23T12:21:51Z",
      "license": "NOASSERTION",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Charlie0113-T/claude-agent-flow:.",
      "repo": "Charlie0113-T/claude-agent-flow",
      "path": ".",
      "name": "agent-flow",
      "description": "The agent flow pane: /flow opens a live tree of the session's subagents and teammates beside the transcript, fed by engine events, with a text fallback where no pane can be drawn.",
      "author": "Charles Tao",
      "homepage": "https://github.com/Charlie0113-T/claude-agent-flow",
      "url": "https://github.com/Charlie0113-T/claude-agent-flow",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "?"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear|resume"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "classic.PermissionRequest",
          "matcher": {}
        },
        {
          "event": "classic.Notification",
          "matcher": {
            "notification_type": "permission_prompt"
          }
        }
      ],
      "calls": [
        "$.agent.list",
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "subagent spawns",
        "every tool call",
        "classic hooks"
      ],
      "draws": [
        "PromptHint",
        "Pane"
      ],
      "stars": 6,
      "pushedAt": "2026-09-14T18:40:11Z",
      "createdAt": "2026-09-14T18:39:49Z",
      "license": "Apache-2.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "mukiwu/jev-search-mcp:.",
      "repo": "mukiwu/jev-search-mcp",
      "path": ".",
      "name": "jev-search",
      "description": "Web search through Jev Search. Answers Claude Code's built-in WebSearch with Jev (sources and time window chosen by Jev, every result ranked by relevance) and falls back to the built-in search when Jev cannot answer. Also adds the jev_search MCP tool for explicit source or time filters, and a skill on when to use it.",
      "author": "Muki Wu",
      "homepage": "https://github.com/mukiwu/jev-search-mcp",
      "url": "https://github.com/mukiwu/jev-search-mcp",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./jev.js"
      ],
      "hooks": [
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "WebSearch"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "WebSearch"
          }
        }
      ],
      "calls": [
        "$.http.fetch",
        "$.ui.log",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "draws"
        ]
      },
      "sees": [
        "the system prompt",
        "WebSearch calls"
      ],
      "draws": [],
      "stars": 6,
      "pushedAt": "2026-09-21T02:37:04Z",
      "createdAt": "2026-09-21T01:00:37Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "djnsty23/claude-auto-dev:plugins/autodev-core",
      "repo": "djnsty23/claude-auto-dev",
      "path": "plugins/autodev-core",
      "name": "autodev-core",
      "description": "Autonomous development workflow: brainstorm, auto, iterate, audit, review, ship, plus the prd.json sprint system.",
      "author": "djnsty23",
      "homepage": "https://github.com/djnsty23/claude-auto-dev",
      "url": "https://github.com/djnsty23/claude-auto-dev/tree/main/plugins/autodev-core",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fn/autodev-fn.mjs"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "attribution.text",
          "matcher": {
            "kind": "commit"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.exists",
        "$.fs.readFile",
        "$.session.cwd",
        "$.session.repo",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "Bash calls"
      ],
      "draws": [],
      "stars": 5,
      "pushedAt": "2026-10-02T01:10:29Z",
      "createdAt": "2026-01-12T01:04:54Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "furqan-khan07/pixelband:.",
      "repo": "furqan-khan07/pixelband",
      "path": ".",
      "name": "pixelband",
      "description": "Animated pixel art above your Claude Code prompt that reacts while Claude works: seven scenes, or your own image or GIF. Zero tokens.",
      "author": "Furqan Khan",
      "homepage": "https://github.com/furqan-khan07/pixelband",
      "url": "https://github.com/furqan-khan07/pixelband",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "pixelband"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "pixelband"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.command.register",
        "$.env.get",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.process.run",
        "$.session.root",
        "$.state.get",
        "$.state.set",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.blit",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: pixelband.frame",
          "./register.ts env writes: nothing",
          "./register.ts env reads: COLORTERM, HOME, TERM_PROGRAM, TMPDIR",
          "./register.ts state writes: pixelband.frame",
          "./register.ts state reads: pixelband.frame"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "runs processes",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 5,
      "pushedAt": "2026-10-02T01:13:36Z",
      "createdAt": "2026-09-25T17:30:53Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "HyunjunJeon/jev-context:.",
      "repo": "HyunjunJeon/jev-context",
      "path": ".",
      "name": "jev-context",
      "description": "Jev keeps the context window lean so compaction comes later: prunes tool output on entry, caps subagent reports, carries exact facts across compaction, compacts when the cache is cold.",
      "author": "jhj",
      "homepage": "https://github.com/HyunjunJeon/jev-context",
      "url": "https://github.com/HyunjunJeon/jev-context",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./verbatim-compact.mjs"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "modules../verbatim-compact.mjs: HyunjunJeon__jev-context: cannot import \"../vendor/jev-pruner/dist/jev.js\" (from hooks/verbatim-compact.mjs): no such file under /tmp/acm-clones/HyunjunJeon__jev-context"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 5,
      "pushedAt": "2026-09-29T14:36:49Z",
      "createdAt": "2026-09-29T11:21:48Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "pleaseai/honmoon:packages/claude-plugin",
      "repo": "pleaseai/honmoon",
      "path": "packages/claude-plugin",
      "name": "honmoon-redact",
      "description": "Client-side secret/PII redaction hooks: keep API keys and sensitive identifiers out of Claude Code's model context by redacting Read/Bash/Grep tool output, blocking prompts that carry secrets, and denying reads of known credential files. Session-transcript scrubbing verified on Claude Code 2.1.263 (updatedToolOutput is what gets persisted); re-verify on other versions.",
      "author": "Honmoon",
      "homepage": "https://github.com/pleaseai/honmoon",
      "url": "https://github.com/pleaseai/honmoon/tree/main/packages/claude-plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./honmoon.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Read|Bash|Grep|WebFetch"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.http.fetch",
        "$.process.run",
        "$.session.cwd",
        "$.session.id",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "draws"
        ]
      },
      "sees": [
        "Read|Bash|Grep|WebFetch calls",
        "every prompt"
      ],
      "draws": [],
      "stars": 5,
      "pushedAt": "2026-09-28T19:56:51Z",
      "createdAt": "2026-06-17T15:42:44Z",
      "license": "Apache-2.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "tomada1114/tomada-claude-plugins:tomada-kit/skills/building-function-hook-mods/assets/starter-mod",
      "repo": "tomada1114/tomada-claude-plugins",
      "path": "tomada-kit/skills/building-function-hook-mods/assets/starter-mod",
      "name": "my-mod",
      "description": "A band above the prompt. Replace with what your mod actually does.",
      "author": "your name",
      "homepage": "https://github.com/tomada1114/tomada-claude-plugins",
      "url": "https://github.com/tomada1114/tomada-claude-plugins/tree/main/tomada-kit/skills/building-function-hook-mods/assets/starter-mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 5,
      "pushedAt": "2026-09-30T04:16:40Z",
      "createdAt": "2025-12-11T23:58:16Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "bengous/claude-code-plugins:vellum",
      "repo": "bengous/claude-code-plugins",
      "path": "vellum",
      "name": "vellum",
      "description": "Plan at the frontiers and review the plan in the browser: decisions and interfaces before mechanics, vertical slices each closed by a check. /vellum:start opens a planning mode of its own: Claude writes the plan and its mockups and grills the reviewer on the open choices; the reviewer comments, edits or approves in a page, and the answer reaches Claude as a prompt.",
      "author": "Augustin BENGOLEA",
      "homepage": "https://github.com/bengous/claude-code-plugins/tree/main/vellum",
      "url": "https://github.com/bengous/claude-code-plugins/tree/main/vellum",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "../src/runtime/hooks/register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "skill.prompt",
          "matcher": {
            "skill": "vellum:start"
          }
        },
        {
          "event": "skill.prompt",
          "matcher": {
            "skill": "vellum:stop"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear|resume"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "tool.check",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__vellum__submit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__vellum__state"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__vellum__grill_ask|mcp__vellum__propose|AskUserQuestion"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.list",
        "$.agent.spawn",
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.env.get",
        "$.env.set",
        "$.fs.stat",
        "$.http.fetch",
        "$.process.spawn",
        "$.prompt.submit",
        "$.session.cwd",
        "$.session.id",
        "$.session.root",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.tool.call",
        "$.tool.register",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "../src/runtime/hooks/register.ts env writes: CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR",
          "../src/runtime/hooks/register.ts env reads: CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.process.spawn",
          "network",
          "sets env vars",
          "drives Claude",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "the vellum:start skill",
        "the vellum:stop skill",
        "mcp__vellum__submit calls",
        "mcp__vellum__state calls",
        "mcp__vellum__grill_ask|mcp__vellum__propose|AskUserQuestion calls",
        "every prompt"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 4,
      "pushedAt": "2026-09-30T16:59:27Z",
      "createdAt": "2025-10-09T18:47:35Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "BenjaminG/ai-skills:.",
      "repo": "BenjaminG/ai-skills",
      "path": ".",
      "name": "ai-skills",
      "description": "Benjamin's collection of Claude Code skills: daily workflow, code quality, dev tools, and specialist agents.",
      "author": "Benjamin Gelis",
      "homepage": "https://github.com/BenjaminG/ai-skills",
      "url": "https://github.com/BenjaminG/ai-skills",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "prs"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "prs"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "prs"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "wt"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "wt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "wt"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.process.run",
        "$.prompt.fill",
        "$.tool.call",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead."
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "writes the prompt box",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 4,
      "pushedAt": "2026-10-01T20:18:28Z",
      "createdAt": "2026-02-03T16:18:51Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "jmgirard/cairn:.",
      "repo": "jmgirard/cairn",
      "path": ".",
      "name": "cairn",
      "description": "Milestone-driven development workflow and tracking system for Claude Code projects: a language-agnostic core with per-repo toolchain profiles (R, Python, Claude Code plugin, Docker image, or generic), plan/implement/review skills, hotfix and release paths, Fable review briefs, and a self-auditing cairn/ file system.",
      "author": "Jeffrey Girard",
      "homepage": "https://github.com/jmgirard/cairn",
      "url": "https://github.com/jmgirard/cairn",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./status/register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.fs.read",
        "$.fs.stat",
        "$.session.cwd",
        "$.state.get",
        "$.state.set",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: cairn.band",
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "./status/register.tsx state writes: cairn.band",
          "./status/register.tsx state reads: cairn.band"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "reads files",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 4,
      "pushedAt": "2026-10-02T01:31:14Z",
      "createdAt": "2026-07-11T06:21:57Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/action-pin",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/action-pin",
      "name": "action-pin",
      "description": "After an edit that adds a GitHub Actions step pinned to a tag or a branch, names the commit SHA to write instead, from the GitHub API. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/action-pin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "action-pin"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.fs.exists",
        "$.fs.read",
        "$.http.fetch",
        "$.process.run",
        "$.session.cwd",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "network",
          "runs processes",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "Bash calls",
        "Edit calls",
        "Write calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/ask-autopick",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/ask-autopick",
      "name": "ask-autopick",
      "description": "Picks the recommended option of a question that waited unanswered for a set time, so a session you left does not stop. Off until you turn it on. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/ask-autopick",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "ask-autopick"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^AskUserQuestion$\"/"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.register",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.sidebar.set",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "/\"^AskUserQuestion$\"/ calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/bash-diet",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/bash-diet",
      "name": "bash-diet",
      "description": "Shrinks each Bash result before the model reads it: per-command filters for git, test runners, linters, package managers, containers and file tools, the full output kept in a file. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/bash-diet",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "bash-diet"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.process.run",
        "$.process.spawn",
        "$.session.id",
        "$.session.model",
        "$.session.root",
        "$.session.usage",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.tool.check",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CONFIG_DIR, HOME, TMPDIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.process.spawn",
          "other: $.sidebar.set",
          "other: $.tool.check",
          "runs processes",
          "writes files",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "Bash calls",
        "? calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/bg-tasks",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/bg-tasks",
      "name": "bg-tasks",
      "description": "Shows the background shell tasks of the session on the status line or in the shared sidebar, with the oldest one's age, and stops one from the /bg-tasks pane. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/bg-tasks",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "bg-tasks"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "TaskStop"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {
            "origin has {kind": "task-notification"
          }
        },
        {
          "event": "prompt.attachment",
          "matcher": {
            "type": "queued_command"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.session.messages",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.tool.call",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "drives Claude",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Bash calls",
        "TaskStop calls",
        "every prompt"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/bughunt",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/bughunt",
      "name": "bughunt",
      "description": "Runs proof-driven bug hunt rounds with /bughunt: each round proves one bug with a failing command the mod runs itself, fixes it, and proves the fix, and the loop stops on a blocked or unverified round. /bughunt collab runs a read-only scanner, planner and critic in sequence. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/bughunt",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "bughunt"
          }
        },
        {
          "event": "agent.offer",
          "matcher": {
            "agent": "/\"^bughunt:(scanner|planner|critic)$\"/"
          }
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "/\"^mcp__bughunt__(proof|found|collab)$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__bughunt__proof$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__bughunt__found$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__bughunt__collab$\"/"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "skill.prompt",
          "matcher": {
            "skill": "bughunt:hunt"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Skill"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "NotebookEdit"
          }
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.register",
        "$.agent.spawn",
        "$.clock.after",
        "$.command.register",
        "$.command.run",
        "$.process.run",
        "$.prompt.submit",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.tool.register",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.agent.register",
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "runs processes",
          "drives Claude",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "/\"^mcp__bughunt__proof$\"/ calls",
        "/\"^mcp__bughunt__found$\"/ calls",
        "/\"^mcp__bughunt__collab$\"/ calls",
        "every prompt",
        "the bughunt:hunt skill",
        "Skill calls",
        "Edit calls",
        "Write calls",
        "NotebookEdit calls",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/cache-warm",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/cache-warm",
      "name": "cache-warm",
      "description": "Keeps the 1-hour prompt cache warm for a window you set, or with no end in every session under always, with one cache-shared fork per idle stretch and one keep-warm message after a resume, arms a window for you after a paid cold write, and shows the cache state, the cold price and this session's cold writes. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/cache-warm",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "cache-warm"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "cache-status"
          }
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.command.run",
        "$.env.get",
        "$.fs.exists",
        "$.fs.stat",
        "$.model.fork",
        "$.prompt.submit",
        "$.session.id",
        "$.session.model",
        "$.session.root",
        "$.session.usage",
        "$.settings.read",
        "$.sidebar.set",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CONFIG_DIR, HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.set",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads settings",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "every prompt",
        "compaction"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/commit-cadence",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/commit-cadence",
      "name": "commit-cadence",
      "description": "Names the uncommitted files to you at the end of each turn, and tells the model at the next prompt to commit each finished piece as it lands. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/commit-cadence",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "commit-cadence"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.process.run",
        "$.session.cwd",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "runs processes",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/config-parse",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/config-parse",
      "name": "config-parse",
      "description": "Parses each JSON, YAML, TOML or .env file an Edit or Write touches, notes a parse error at once instead of at the next build, and says so again when a later edit fixes it. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/config-parse",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "config-parse"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.fs.exists",
        "$.fs.read",
        "$.process.run",
        "$.session.cwd",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "runs processes",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Edit calls",
        "Write calls",
        "every prompt",
        "Bash calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/context-restore",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/context-restore",
      "name": "context-restore",
      "description": "Hands a skill or command call the current text of its file when the file changed on disk after the session loaded it, and hands the model a rules file or the global CLAUDE.md that changed on disk. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/context-restore",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "context-restore"
          }
        },
        {
          "event": "skill.prompt",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Read"
          }
        },
        {
          "event": "prompt.attachment",
          "matcher": {
            "type": "instructions"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CONFIG_DIR, HOME"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.sidebar.set",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every skill",
        "Read calls",
        "every prompt"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/contract-watch",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/contract-watch",
      "name": "contract-watch",
      "description": "After the model changes a function signature with Edit, adds the callers ripwire finds to the Edit's result, so the model fixes them before the build does. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/contract-watch",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "contract-watch"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.process.run",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "runs processes",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "Bash calls",
        "Edit calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/council",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/council",
      "name": "council",
      "description": "Asks a council of models about a hard problem, when the model calls its tool or you run /council <question>: Claude models, and Gemini models when gemini-core has a key, answer in parallel, and the model of the session writes one verdict from their answers. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/council",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "council"
          }
        },
        {
          "event": "prompt.section",
          "matcher": {
            "name": "env_info_simple"
          }
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "/\"^mcp__council__convene$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__council__convene$\"/"
          }
        },
        {
          "event": "turn.step",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.command.register",
        "$.command.run",
        "$.gemini.enroll",
        "$.gemini.read",
        "$.gemini.request",
        "$.gemini.settings",
        "$.http.fetch",
        "$.model.complete",
        "$.model.fork",
        "$.prompt.submit",
        "$.session.messages",
        "$.sidebar.set",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.tool.register",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.gemini.enroll",
          "other: $.gemini.read",
          "other: $.gemini.request",
          "other: $.gemini.settings",
          "other: $.sidebar.set",
          "network",
          "drives Claude",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "the system prompt",
        "/\"^mcp__council__convene$\"/ calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/dep-sentinel",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/dep-sentinel",
      "name": "dep-sentinel",
      "description": "Checks each package the model installs against its registry and OSV.dev, and stops a missing, brand-new, look-alike, outdated or vulnerable one, naming the latest version. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/dep-sentinel",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "dep-sentinel"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.http.fetch",
        "$.process.run",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "network",
          "runs processes",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "Bash calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/desk-notify",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/desk-notify",
      "name": "desk-notify",
      "description": "Sends a desktop notification when a question or a plan waits for your answer, and when a turn ends or fails. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/desk-notify",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "desk-notify"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^AskUserQuestion$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^ExitPlanMode$\"/"
          }
        },
        {
          "event": "classic.Stop",
          "matcher": {}
        },
        {
          "event": "classic.StopFailure",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.process.run",
        "$.session.cwd",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: OS"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "/\"^AskUserQuestion$\"/ calls",
        "/\"^ExitPlanMode$\"/ calls",
        "classic hooks"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/diagram-render",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/diagram-render",
      "name": "diagram-render",
      "description": "Renders the mermaid blocks of the model's replies with an installed mmdc after each turn and draws each picture under its reply. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/diagram-render",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "diagram-render"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.process.run",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: TMPDIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AssistantMessage"
      ],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/disk-janitor",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/disk-janitor",
      "name": "disk-janitor",
      "description": "Measures the build artifacts of the repository, shows them on the status line from 5 GB, and deletes the ones you pick in the /disk-janitor pane; data directories are never listed. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/disk-janitor",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "disk-janitor"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.stat",
        "$.process.run",
        "$.session.cwd",
        "$.sidebar.clear",
        "$.sidebar.isOpen",
        "$.sidebar.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.isOpen",
          "other: $.sidebar.set",
          "runs processes",
          "reads files",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/doc-drift-watch",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/doc-drift-watch",
      "name": "doc-drift-watch",
      "description": "After each commit the model makes, adds the doc lines that commit made stale (file:line references, symbol names) to the commit's result, from ripwire doc-drift, and holds each finding open until the doc holds again. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/doc-drift-watch",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "doc-drift-watch"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.fs.read",
        "$.process.run",
        "$.session.cwd",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "runs processes",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Bash calls",
        "every prompt"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/edit-loop",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/edit-loop",
      "name": "edit-loop",
      "description": "Adds a note to the fifth edit of one file in one turn, so the model re-reads the code path and states the root cause instead of trying again. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/edit-loop",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "edit-loop"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "NotebookEdit"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.process.run",
        "$.session.cwd",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.set",
          "runs processes",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Edit calls",
        "Write calls",
        "NotebookEdit calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/effort-auto",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/effort-auto",
      "name": "effort-auto",
      "description": "Has a small model rate how hard each prompt is and runs that turn and its subagents at the matching effort, within the levels you allow, on the models whose prompt cache survives an effort change. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/effort-auto",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "effort-auto"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.model.complete",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "drives Claude",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/env-sync",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/env-sync",
      "name": "env-sync",
      "description": "After each commit the model makes, names the env variables its added lines read that .env.example lacks, with the file and line of each. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/env-sync",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "env-sync"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.fs.exists",
        "$.fs.read",
        "$.process.run",
        "$.session.cwd",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "runs processes",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "Bash calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/error-poke",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/error-poke",
      "name": "error-poke",
      "description": "Sends one continue prompt after a turn an API error killed, so the half-done work carries on instead of the session going idle, at most 99 times in a row by default. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/error-poke",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "error-poke"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.command.register",
        "$.command.run",
        "$.prompt.submit",
        "$.session.messages",
        "$.session.usage",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.set",
          "drives Claude",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/flaky-memory",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/flaky-memory",
      "name": "flaky-memory",
      "description": "Remembers which tests failed on which code, and tells the model when a failing test has both passed and failed on the same code, so it runs the test again instead of changing code. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/flaky-memory",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "flaky-memory"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.process.run",
        "$.session.cwd",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "runs processes",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/gemini-advisor",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/gemini-advisor",
      "name": "gemini-advisor",
      "description": "Gives the model a Gemini advisor tool it calls by itself: Gemini reads the whole conversation and the model's message and answers with a second opinion. Off until /gemini-advisor on; gemini-core holds the key, tier, model and thinking level. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/gemini-advisor",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "gemini-advisor"
          }
        },
        {
          "event": "prompt.section",
          "matcher": {
            "name": "env_info_simple"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__gemini-advisor__advise"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.gemini.enroll",
        "$.gemini.read",
        "$.gemini.request",
        "$.gemini.settings",
        "$.http.fetch",
        "$.session.messages",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.tool.register",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.gemini.enroll",
          "other: $.gemini.read",
          "other: $.gemini.request",
          "other: $.gemini.settings",
          "network",
          "drives Claude",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "the system prompt",
        "mcp__gemini-advisor__advise calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/gemini-compact",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/gemini-compact",
      "name": "gemini-compact",
      "description": "Moves compaction from Claude to Gemini: in summary mode Gemini summarizes the conversation and the newest messages stay verbatim, in prune mode every message stays and Gemini keeps, cuts or drops older tool calls. Off until /gemini-compact on; gemini-core holds the key, tier, model and thinking level. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/gemini-compact",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "gemini-compact"
          }
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.gemini.enroll",
        "$.gemini.read",
        "$.gemini.request",
        "$.gemini.settings",
        "$.http.fetch",
        "$.session.compact",
        "$.session.usage",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.gemini.enroll",
          "other: $.gemini.read",
          "other: $.gemini.request",
          "other: $.gemini.settings",
          "network",
          "drives Claude",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/gemini-core",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/gemini-core",
      "name": "gemini-core",
      "description": "Keeps the Gemini keys and tier of every Gemini mod, and each mod's model and thinking level, in one place: adds $.gemini, which builds their Gemini requests, reads the answers and moves to the next key after a quota or key error, and picks a model from Google's list. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/gemini-core",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "engine.create",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "gemini-core"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.gemini.configure",
        "$.gemini.settings",
        "$.http.fetch",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: $.gemini",
          "./register.ts env writes: nothing",
          "./register.ts env reads: GEMINI_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.gemini.configure",
          "other: $.gemini.settings",
          "network",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/gemini-plan-review",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/gemini-plan-review",
      "name": "gemini-plan-review",
      "description": "Has Gemini review each plan before the approval dialog, from the plan and the conversation, and sends a plan with a blocking finding back to the model, at most twice. Off until /gemini-plan-review on; gemini-core holds the key, tier, model and thinking level. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/gemini-plan-review",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "gemini-plan-review"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "prompt.attachment",
          "matcher": {
            "type": "plan_mode"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "ExitPlanMode"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.fs.read",
        "$.gemini.enroll",
        "$.gemini.read",
        "$.gemini.request",
        "$.gemini.settings",
        "$.http.fetch",
        "$.session.messages",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.gemini.enroll",
          "other: $.gemini.read",
          "other: $.gemini.request",
          "other: $.gemini.settings",
          "network",
          "reads files",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "ExitPlanMode calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/gemini-review",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/gemini-review",
      "name": "gemini-review",
      "description": "Has Gemini review every git commit the model runs, from the staged diff and the conversation, and stops a commit with a blocking finding: a bug, data loss, a security hole or a committed secret. Off until /gemini-review on; gemini-core holds the key, tier, model and thinking level. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/gemini-review",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "gemini-review"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.gemini.enroll",
        "$.gemini.read",
        "$.gemini.request",
        "$.gemini.settings",
        "$.http.fetch",
        "$.process.run",
        "$.session.cwd",
        "$.session.messages",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.gemini.enroll",
          "other: $.gemini.read",
          "other: $.gemini.request",
          "other: $.gemini.settings",
          "network",
          "runs processes",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/git-commit",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/git-commit",
      "name": "git-commit",
      "description": "Ships a commit skill and holds every Bash git commit to it: a commit the skill did not open, a blanket git add, a signature trailer, a secret, an ignored path, or a push or branch change nobody asked for is stopped before git runs. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/git-commit",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "git-commit"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Skill"
          }
        },
        {
          "event": "skill.prompt",
          "matcher": {
            "skill": "git-commit:commit"
          }
        },
        {
          "event": "attribution.text",
          "matcher": {
            "kind": "commit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.process.run",
        "$.session.cwd",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.set",
          "runs processes",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "Skill calls",
        "the git-commit:commit skill",
        "Bash calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/i18n-watch",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/i18n-watch",
      "name": "i18n-watch",
      "description": "After an edit that calls translation keys, names the keys the JSON, Laravel PHP, YAML or gettext locale files lack, and the languages that lack them. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/i18n-watch",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "i18n-watch"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.process.run",
        "$.session.cwd",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "runs processes",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Bash calls",
        "every prompt",
        "Edit calls",
        "Write calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/idle-art",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/idle-art",
      "name": "idle-art",
      "description": "Draws an ASCII animation above the prompt while the model works: matrix rain, fire, an aquarium, a cat, or a GIF of your own imported as a character clip for every project. Display only: nothing reaches the model. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/idle-art",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "idle-art"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.process.spawn",
        "$.session.cwd",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [
        "hooks/scene.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: HOME"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.process.spawn",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/limit-watch",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/limit-watch",
      "name": "limit-watch",
      "description": "Shows the subscription usage limits under the prompt or in the shared sidebar with a reset countdown and a projection, opens a /limit-watch pane, and logs once when a limit passes 80% and 95%. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/limit-watch",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "limit-watch"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.session.usage",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.sidebar.set",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/lockfile-sync",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/lockfile-sync",
      "name": "lockfile-sync",
      "description": "After each commit the model makes, names the manifests whose dependencies it changed without their lockfile (npm, Composer, Cargo, Go, Python, Bundler, Dart, Mix). Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/lockfile-sync",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "lockfile-sync"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.process.run",
        "$.session.cwd",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: TMPDIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "runs processes",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "Bash calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/mcp-doctor",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/mcp-doctor",
      "name": "mcp-doctor",
      "description": "Tells you when an MCP server failed to connect or dropped, with the engine's reason and a reconnect button, and when it is back; claude.ai connectors are left out. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/mcp-doctor",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "mcp-doctor"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.attachment",
          "matcher": {
            "type": "deferred_tools_delta"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.register",
        "$.command.run",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.tool.call",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "drives Claude",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/memory-save",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/memory-save",
      "name": "memory-save",
      "description": "Loads MEMORY.md into the session and saves project learnings to it after every turn through a tool-less fork in the background, without blocking the stop. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/memory-save",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.write",
        "$.model.fork",
        "$.process.run",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "runs processes",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "every prompt",
        "every tool call"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/mod-doctor",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/mod-doctor",
      "name": "mod-doctor",
      "description": "Names each installed plugin, of every marketplace, whose local clone already offers a newer version, with the claude plugin update command that closes the gap. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/mod-doctor",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "mod-doctor"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.env.get",
        "$.fs.read",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CONFIG_DIR, HOME"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/orphan-server",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/orphan-server",
      "name": "orphan-server",
      "description": "Lists the servers a Bash call of the model started in this repository and left listening on a port, with their age and session, and stops one with SIGTERM, then SIGKILL. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/orphan-server",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "orphan-server"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.process.run",
        "$.session.id",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CONFIG_DIR, HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "runs processes",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/output-flood",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/output-flood",
      "name": "output-flood",
      "description": "Measures how much context each Bash command spent and tells the model, past a size limit, which narrower command would have answered the same question. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/output-flood",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "output-flood"
          }
        },
        {
          "event": "classic.PostToolBatch",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.sidebar.set",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/pin-note",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/pin-note",
      "name": "pin-note",
      "description": "Keeps the notes you pin with /pin-note for the whole session and sends them to the model again, word for word, after each compaction and /clear. Off until /pin-note on. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/pin-note",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "pin-note"
          }
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.session.id",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/probe-runner",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/probe-runner",
      "name": "probe-runner",
      "description": "For mod development: runs a live check of plugins in a fresh Claude Code session in tmux, types the steps one by one, collects the pane and the transcript, then deletes the temp directory, its transcripts and the inline store files. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/probe-runner",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "/\"^mcp__probe-runner__probe$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__probe-runner__probe$\"/"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "probe-runner"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.register",
        "$.command.run",
        "$.env.get",
        "$.fs.exists",
        "$.process.run",
        "$.prompt.submit",
        "$.session.cwd",
        "$.session.repo",
        "$.tool.register",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "/\"^mcp__probe-runner__probe$\"/ calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/prompt-deck",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/prompt-deck",
      "name": "prompt-deck",
      "description": "Learns the short prompts you send often in this project and draws them, with the ones you pin by hand, above the prompt; with the prompt box empty, a digit key sends one at once. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/prompt-deck",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "prompt-deck"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.command.register",
        "$.command.run",
        "$.process.run",
        "$.prompt.submit",
        "$.session.cwd",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/prompt-offload",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/prompt-offload",
      "name": "prompt-offload",
      "description": "Writes a prompt longer than the limit (2000 characters by default) to a temp file and sends the model its first 200 characters with the path, so one paste does not fill the context. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/prompt-offload",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "prompt-offload"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.fs.write",
        "$.process.run",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: TMPDIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/prompt-time",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/prompt-time",
      "name": "prompt-time",
      "description": "Draws the time under each of your messages and each text block of the model's replies, also for a resumed session whose transcript is 4 MiB or smaller. Display only: nothing reaches the model. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/prompt-time",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "UserMessage"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "every prompt"
      ],
      "draws": [
        "UserMessage",
        "AssistantMessage"
      ],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/sage-memory",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/sage-memory",
      "name": "sage-memory",
      "description": "Keeps project and global memories in SQLite through a shared local daemon, hands the model the entries that match its file tool calls, prompts and subagent tasks, and saves new ones with a haiku consolidator after each main-loop turn. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/sage-memory",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "/\"^mcp__sage-memory__\"/"
          }
        },
        {
          "event": "tool.check",
          "matcher": {
            "tool": "/\"^mcp__sage-memory__\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__sage-memory__\"/"
          }
        },
        {
          "event": "prompt.section",
          "matcher": {
            "name": "env_info_simple"
          }
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "prompt.attachment",
          "matcher": {}
        },
        {
          "event": "classic.PostToolBatch",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^(Read|Grep|Glob|LSP|Edit|Write|NotebookEdit|MultiEdit|mcp__(?!sage-memory__).+)$\"/"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^(Edit|Write|NotebookEdit|MultiEdit)$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "sage-memory"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.fs.read",
        "$.http.fetch",
        "$.model.complete",
        "$.process.run",
        "$.session.cwd",
        "$.session.id",
        "$.session.usage",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.tool.call",
        "$.tool.register"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: CLAUDE_CONFIG_DIR, HOME"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.sidebar.set",
          "network",
          "runs processes",
          "drives Claude",
          "reads files",
          "reads env vars",
          "persists state"
        ]
      },
      "sees": [
        "/\"^mcp__sage-memory__\"/ calls",
        "the system prompt",
        "classic hooks",
        "compaction",
        "/\"^(Read|Grep|Glob|LSP|Edit|Write|NotebookEdit|MultiEdit|mcp__(?!sage-memory__).+)$\"/ calls",
        "every prompt",
        "subagent spawns",
        "/\"^(Edit|Write|NotebookEdit|MultiEdit)$\"/ calls",
        "Bash calls"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/self-command",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/self-command",
      "name": "self-command",
      "description": "For mod development: lets the model run a slash command in its own session, such as /reload-plugins after a plugin update, and read the output as the next prompt. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/self-command",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "/\"^mcp__self-command__run$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__self-command__run$\"/"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.list",
        "$.command.run",
        "$.prompt.submit",
        "$.tool.register",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "draws"
        ]
      },
      "sees": [
        "/\"^mcp__self-command__run$\"/ calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/session-watch",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/session-watch",
      "name": "session-watch",
      "description": "Shows this session's state in the sidebar: context fill, token totals, cost, model and effort, the Claude Code version, the other sessions of this machine, and the git branch and status. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/session-watch",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "model.fork",
          "matcher": {}
        },
        {
          "event": "model.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "session-watch"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.process.run",
        "$.process.spawn",
        "$.session.id",
        "$.session.model",
        "$.session.root",
        "$.session.usage",
        "$.session.version",
        "$.settings.read",
        "$.sidebar.set",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CODE_EFFORT_LEVEL, CLAUDE_CONFIG_DIR, HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.process.spawn",
          "other: $.sidebar.set",
          "runs processes",
          "reads files",
          "reads env vars",
          "reads settings",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "compaction",
        "Bash calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/shot-inline",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/shot-inline",
      "name": "shot-inline",
      "description": "Draws each PNG or JPG the model saves or reads under its tool row: pixels in kitty and Ghostty, quadrant block cells in every other terminal. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/shot-inline",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "shot-inline"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Read"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__(plugin_playwright_)?playwright__browser_take_screenshot$\"/"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolUse"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.process.run",
        "$.session.cwd",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: KITTY_WINDOW_ID, TERM, TERM_PROGRAM, TMPDIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Read calls",
        "Bash calls",
        "/\"^mcp__(plugin_playwright_)?playwright__browser_take_screenshot$\"/ calls"
      ],
      "draws": [
        "ToolUse"
      ],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/sidebar",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/sidebar",
      "name": "sidebar",
      "description": "Opens one shared pane beside the transcript and draws the sections, lines and buttons every other mod writes into it through $.sidebar; each stream entry is stamped with its time and kept in a per-project log the next session takes back. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/sidebar",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "engine.create",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "/\"^mcp__sidebar__read$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__sidebar__read$\"/"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "sidebar"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.list",
        "$.command.register",
        "$.command.run",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.write",
        "$.session.cwd",
        "$.settings.read",
        "$.store.get",
        "$.store.set",
        "$.tool.register",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: $.sidebar",
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads settings",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "/\"^mcp__sidebar__read$\"/ calls"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/slash-chain",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/slash-chain",
      "name": "slash-chain",
      "description": "Runs slash commands joined with && one after another, waits for each command's turn, pane or dialog to end, and stops the chain at a command that failed or a turn that ended without an answer. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/slash-chain",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "mcp__slash-chain__fail"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__slash-chain__fail"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "slash-chain"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "args": "/\"(?:^|\\\\s)&&\\\\s*\\\\/[A-Za-z0-9_:.-]+(?"
          }
        },
        {
          "event": "skill.prompt",
          "matcher": {}
        },
        {
          "event": "ui.open",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.register",
        "$.command.run",
        "$.store.get",
        "$.store.set",
        "$.tool.register",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "mcp__slash-chain__fail calls",
        "every skill",
        "every prompt"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/sql-concat-watch",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/sql-concat-watch",
      "name": "sql-concat-watch",
      "description": "After an edit that builds SQL by joining or interpolating strings, names each line, so the model passes the values as query parameters. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/sql-concat-watch",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "sql-concat-watch"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.fs.exists",
        "$.fs.read",
        "$.process.run",
        "$.session.cwd",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "runs processes",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "Bash calls",
        "Edit calls",
        "Write calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/storage-guard",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/storage-guard",
      "name": "storage-guard",
      "description": "After an edit that keeps browser data in localStorage or sessionStorage, names each line, so the model stores the data in a cookie instead. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/storage-guard",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "storage-guard"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.fs.exists",
        "$.fs.read",
        "$.process.run",
        "$.session.cwd",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "runs processes",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "Bash calls",
        "Edit calls",
        "Write calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/subagent-ledger",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/subagent-ledger",
      "name": "subagent-ledger",
      "description": "Shows each subagent of the session with its turns, time, model and tokens, the costliest first, yellow while it runs and green once it answered, and marks one that passed the token limit. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/subagent-ledger",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "subagent-ledger"
          }
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "subagent spawns"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/task-poke",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/task-poke",
      "name": "task-poke",
      "description": "Submits a continue prompt while the task list has unfinished tasks, at most 99 times in a row by default, and turns the task tools on for every model unless CLAUDE_CODE_ENABLE_TODO_TOOLS is set. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/task-poke",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "task-poke"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "classic.Stop",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.register",
        "$.command.run",
        "$.env.get",
        "$.env.set",
        "$.prompt.submit",
        "$.session.messages",
        "$.sidebar.clear",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.tool.call",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: CLAUDE_CODE_ENABLE_TODO_TOOLS",
          "./register.ts env reads: CLAUDE_CODE_ENABLE_TODO_TOOLS"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.sidebar.clear",
          "other: $.sidebar.set",
          "sets env vars",
          "drives Claude",
          "reads env vars",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "classic hooks"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/tool-coach",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/tool-coach",
      "name": "tool-coach",
      "description": "Stops the model from repeating a tool call that just failed with the same input, until a file or command has changed something. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/tool-coach",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "tool-coach"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.sidebar.set",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:plugins/ua-fallback",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "plugins/ua-fallback",
      "name": "ua-fallback",
      "description": "After a curl or wget an automated-client filter answered 403 or 429, gives the model the browser User-Agent to retry with, and the two cases where it must not. Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/plugins/ua-fallback",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "ua-fallback"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.sidebar.set",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.sidebar.set",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "KilimcininKorOglu/claude-code-mods:templates/mod",
      "repo": "KilimcininKorOglu/claude-code-mods",
      "path": "templates/mod",
      "name": "MOD_NAME",
      "description": "MOD_DESCRIPTION Needs function hooks (early access).",
      "author": "Kerem Gok",
      "homepage": "https://github.com/KilimcininKorOglu/claude-code-mods",
      "url": "https://github.com/KilimcininKorOglu/claude-code-mods/tree/main/templates/mod",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"MOD_NAME\" is not kebab-case. Claude Code accepts it, but the Claude.ai marketplace sync requires kebab-case (lowercase letters, digits, and hyphens only, e.g., \"my-plugin\")."
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T00:39:24Z",
      "createdAt": "2026-09-18T16:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "OpenScribbler/Katharsis:.",
      "repo": "OpenScribbler/Katharsis",
      "path": ".",
      "name": "katharsis",
      "description": "An output style that classifies each message by exchange type and shapes the reply to fit it: the answer first, a ceiling per type, reference codes that survive the session, and decisions handed back as questions",
      "author": "Holden Hewett",
      "homepage": "https://github.com/OpenScribbler/Katharsis",
      "url": "https://github.com/OpenScribbler/Katharsis",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "classic.Stop",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.focus",
          "matcher": {
            "requestId": "kdrawer"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "kdrawer"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "kdrawer"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.write",
        "$.model.fork",
        "$.process.run",
        "$.session.cwd",
        "$.session.id",
        "$.session.model",
        "$.session.turns",
        "$.settings.read",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CONFIG_DIR, HOME, KATHARSIS_DATA"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "classic hooks"
      ],
      "draws": [
        "AbovePrompt",
        "Pane",
        "AssistantMessage"
      ],
      "stars": 4,
      "pushedAt": "2026-10-02T00:43:50Z",
      "createdAt": "2026-08-27T04:53:58Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "popmechanic/ultrapowers:.",
      "repo": "popmechanic/ultrapowers",
      "path": ".",
      "name": "ultrapowers",
      "description": "The client for ultrapowers: /ultrapowers <plan-path> commits an approved plan and runs on an exe.dev fleet you provision: a disposable sandbox runs the plan as a pool of tasks, a pool of builders, the plan's own probes and checks as the proof, and opens its own PR. No local engine.",
      "author": "Marcus Estes",
      "homepage": "https://github.com/popmechanic/ultrapowers",
      "url": "https://github.com/popmechanic/ultrapowers",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.js"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "tray"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "note"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__ultrapowers__show_screen"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "intent-tray"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.fs.read",
        "$.prompt.submit",
        "$.store.get",
        "$.store.set",
        "$.tool.register",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead."
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "mcp__ultrapowers__show_screen calls"
      ],
      "draws": [
        "Pane",
        "AbovePrompt"
      ],
      "stars": 4,
      "pushedAt": "2026-10-02T02:06:09Z",
      "createdAt": "2026-06-02T22:52:06Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "satviksinha/jev-model-router:.",
      "repo": "satviksinha/jev-model-router",
      "path": ".",
      "name": "jev-router",
      "description": "Routes each turn to a Claude model chosen by TypeSafe's Jev, asked through the Vercel AI Gateway.",
      "author": "Satvik Sinha",
      "homepage": "https://github.com/satviksinha/jev-model-router",
      "url": "https://github.com/satviksinha/jev-model-router",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "jev"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "SessionMode"
          }
        }
      ],
      "calls": [
        "$.agent.list",
        "$.clock.sleep",
        "$.command.register",
        "$.env.get",
        "$.http.fetch",
        "$.session.surface"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: AI_GATEWAY_API_KEY, JEV_ROUTER_EXCLUDE, JEV_ROUTER_PROVIDER, JEV_ROUTER_STICKY, JEV_ROUTER_STICKY_CONFIDENCE, JEV_ROUTER_TIMEOUT_MS, TYPESAFE_API_KEY, TYPESAFE_BASE_URL"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "reads env vars"
        ]
      },
      "sees": [],
      "draws": [
        "SessionMode"
      ],
      "stars": 4,
      "pushedAt": "2026-09-23T01:55:36Z",
      "createdAt": "2026-09-20T12:32:14Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "savinofiore/lexi:jev",
      "repo": "savinofiore/lexi",
      "path": "jev",
      "name": "jev",
      "description": "Three-level decision layer on TypeSafe's Jev: picks model and effort per session and per subagent, compacts context without rewriting it, and gates code review with calibrated closed questions. Pairs with lexi: the review runs after the last GREEN.",
      "author": "Savino Fiore",
      "homepage": "https://github.com/savinofiore/lexi",
      "url": "https://github.com/savinofiore/lexi/tree/main/jev",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.clock.sleep",
        "$.env.get",
        "$.http.fetch",
        "$.ui.log",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./index.ts env writes: nothing",
          "./index.ts env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "subagent spawns",
        "compaction"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-09-30T15:31:30Z",
      "createdAt": "2026-09-05T08:36:39Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ukwhatn/.claude:skills/idle-compact",
      "repo": "ukwhatn/.claude",
      "path": "skills/idle-compact",
      "name": "idle-compact",
      "description": "Compacts the main conversation once it has sat idle for idleMinutes, while the prompt cache is still warm, and hands every compaction of the main conversation (manual, auto, plugin, precompute) the Compact Instructions section of the user's AGENTS.md. Skips while a turn runs, below minMessageTokens of conversation, and past cutoffMinutes (a wake from sleep, when the cache has likely expired), saying which in the transcript; a reload of the plugin keeps the pending idle stretch.",
      "author": "ukwhatn",
      "homepage": "https://github.com/ukwhatn/.claude",
      "url": "https://github.com/ukwhatn/.claude/tree/main/skills/idle-compact",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.env.get",
        "$.fs.read",
        "$.session.compact",
        "$.session.usage",
        "$.state.get",
        "$.state.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./contract.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./contract.d.ts declares state: idle-compact.lastAnswer",
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CONFIG_DIR, HOME",
          "./register.ts state writes: idle-compact.lastAnswer",
          "./register.ts state reads: idle-compact.lastAnswer"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "drives Claude",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-10-02T00:01:08Z",
      "createdAt": "2026-01-12T07:55:52Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "wayne930242/straw-boss:.",
      "repo": "wayne930242/straw-boss",
      "path": ".",
      "name": "straw-boss",
      "description": "Route work through the smallest sufficient loop: handle bounded tasks directly, fan out clear branches, or coordinate durable app-rooted Claude and Codex workrooms with provider-neutral status and git lifecycle tracking.",
      "author": "Wei Hung",
      "homepage": "https://github.com/wayne930242/straw-boss",
      "url": "https://github.com/wayne930242/straw-boss",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./jev-pruning.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.env.set",
        "$.http.fetch",
        "$.process.run",
        "$.session.id",
        "$.session.model",
        "$.session.usage",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "./jev-pruning.ts env writes: STRAW_BOSS_JEV_READY_SESSION, STRAW_BOSS_JEV_WAITING_USAGE",
          "./jev-pruning.ts env reads: STRAW_BOSS_JEV, TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "sets env vars",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 4,
      "pushedAt": "2026-10-01T19:30:58Z",
      "createdAt": "2026-08-18T02:05:27Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "xtrm-dev/specialists:plugins/specialists",
      "repo": "xtrm-dev/specialists",
      "path": "plugins/specialists",
      "name": "specialists",
      "description": "Specialists execution runtime in Claude Code: specialist activation and dispatch over MCP, session continuity hooks, and the supervising-activations skill. Consumes the Substrate work authority; it is not Substrate.",
      "author": "XTRM",
      "homepage": "https://github.com/xtrm-dev/specialists#readme",
      "url": "https://github.com/xtrm-dev/specialists/tree/master/plugins/specialists",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "specialists"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "specialists-fleet"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.mcp.call",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "MCP servers",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 4,
      "pushedAt": "2026-10-01T14:12:13Z",
      "createdAt": "2025-11-01T10:47:44Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "Arunjay4213/claude-mods:plugins/budget-guard",
      "repo": "Arunjay4213/claude-mods",
      "path": "plugins/budget-guard",
      "name": "budget-guard",
      "description": "Stops a session before it runs past a budget. Three figures are guarded, each with a limit you set: the session cost in dollars, the 5-hour plan window and the 7-day plan window. It says nothing until a figure nears its limit, then pins a status line and warns once; past the limit it refuses tool calls and asks before sending another prompt. /guard shows the state and changes the limits.",
      "author": "Arunjay",
      "homepage": "https://github.com/Arunjay4213/claude-mods",
      "url": "https://github.com/Arunjay4213/claude-mods/tree/main/plugins/budget-guard",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "guard"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.register",
        "$.config.set",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.turn.abort",
        "$.ui.ask",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "changes config",
          "drives Claude",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "every prompt"
      ],
      "draws": [],
      "stars": 3,
      "pushedAt": "2026-09-15T19:01:52Z",
      "createdAt": "2026-09-14T19:20:11Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Arunjay4213/claude-mods:plugins/context-lens",
      "repo": "Arunjay4213/claude-mods",
      "path": "plugins/context-lens",
      "name": "context-lens",
      "description": "A live /context: a pinned line under the prompt with the window fill and the growth per turn, and /context-lens for a pane with the per-category bars and how many turns are left before auto-compaction.",
      "author": "Arunjay",
      "homepage": "https://github.com/Arunjay4213/claude-mods",
      "url": "https://github.com/Arunjay4213/claude-mods/tree/main/plugins/context-lens",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "context-lens"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "context-lens"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.session.usage",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 3,
      "pushedAt": "2026-09-15T19:01:52Z",
      "createdAt": "2026-09-14T19:20:11Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Arunjay4213/claude-mods:plugins/quota-meter",
      "repo": "Arunjay4213/claude-mods",
      "path": "plugins/quota-meter",
      "name": "quota-meter",
      "description": "Shows the subscription plan limits - the 5-hour window, the 7-day window and a gateway spend limit - as a pinned status line under the prompt, with a reset countdown and a projection of when you would hit 100% at the pace of the last few samples. /quota opens a pane with a bar, the reset clock time and the burn rate for each window.",
      "author": "Arunjay",
      "homepage": "https://github.com/Arunjay4213/claude-mods",
      "url": "https://github.com/Arunjay4213/claude-mods/tree/main/plugins/quota-meter",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "quota"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "quota"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 3,
      "pushedAt": "2026-09-15T19:01:52Z",
      "createdAt": "2026-09-14T19:20:11Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Arunjay4213/claude-mods:plugins/token-ledger",
      "repo": "Arunjay4213/claude-mods",
      "path": "plugins/token-ledger",
      "name": "token-ledger",
      "description": "A per-turn cost and token ledger: a pinned status line with the session cost, the last turn's tokens and the cache hit ratio, and /ledger for a table of the recent turns with their model, tokens, cache reads and writes, duration and cost.",
      "author": "Arunjay",
      "homepage": "https://github.com/Arunjay4213/claude-mods",
      "url": "https://github.com/Arunjay4213/claude-mods/tree/main/plugins/token-ledger",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "resume"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "ledger"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "ledger"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.session.id",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 3,
      "pushedAt": "2026-09-15T19:01:52Z",
      "createdAt": "2026-09-14T19:20:11Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "BeLazy167/claude-mods-skill:examples/hello-mod",
      "repo": "BeLazy167/claude-mods-skill",
      "path": "examples/hello-mod",
      "name": "hello-mod",
      "description": "Starter mod: logs each tool call and blocks Bash commands that contain rm -rf.",
      "author": "your-name",
      "homepage": "https://github.com/BeLazy167/claude-mods-skill",
      "url": "https://github.com/BeLazy167/claude-mods-skill/tree/main/examples/hello-mod",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [],
      "stars": 3,
      "pushedAt": "2026-09-14T21:08:07Z",
      "createdAt": "2026-09-14T21:08:03Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "BeLazy167/typesafe-mod:.",
      "repo": "BeLazy167/typesafe-mod",
      "path": ".",
      "name": "typesafe-mod",
      "description": "Routes decisions to TypeSafe's Jev model: ranks installed skills for each prompt, and answers the agent's own this-or-that questions when confident.",
      "author": "BeLazy167",
      "homepage": "https://github.com/BeLazy167/typesafe-mod",
      "url": "https://github.com/BeLazy167/typesafe-mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "AskUserQuestion"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AskUserQuestion"
          }
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.env.get",
        "$.http.fetch",
        "$.process.run",
        "$.session.cwd",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: TYPESAFE_API_KEY, TYPESAFE_AUTO_ANSWER, TYPESAFE_DECIDE_OFF, TYPESAFE_SKILL_ROUTER"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "AskUserQuestion calls"
      ],
      "draws": [
        "AskUserQuestion"
      ],
      "stars": 3,
      "pushedAt": "2026-09-17T04:53:26Z",
      "createdAt": "2026-09-17T01:58:25Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "leeovery/portal:.claude/skills/workflow-gates",
      "repo": "leeovery/portal",
      "path": ".claude/skills/workflow-gates",
      "name": "workflow-gates",
      "description": "Draws the agentic-workflows engine's gates in the band above the prompt: rows a click puts in the prompt and a second click sends: instead of a menu the model has to reproduce.",
      "author": "Lee Overy",
      "homepage": "https://github.com/leeovery/portal",
      "url": "https://github.com/leeovery/portal/tree/main/.claude/skills/workflow-gates",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "SendUserMessage"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.message",
          "matcher": {
            "element": "gate"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.env.set",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.prompt.fill",
        "$.prompt.read",
        "$.prompt.submit",
        "$.session.id",
        "$.session.messages",
        "$.session.surfaces",
        "$.session.version",
        "$.ui.invalidate",
        "$.ui.resolve"
      ],
      "surfaceModules": [
        "hooks/board.ts"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: CLAUDE_CODE_PEWTER_OWL_TOOL, CLAUDE_CODE_SILENT_TURN_REMINDER, CLAUDE_CODE_THINKING_DISPLAY_UPDATES, WORKFLOWS_GATE_SURFACE, WORKFLOWS_HARNESS_REPLACED",
          "./register.ts env reads: CLAUDE_CODE_ENTRYPOINT, CLAUDE_CODE_REMOTE, CLAUDE_CODE_SILENT_TURN_REMINDER, CLAUDE_CODE_THINKING_DISPLAY_UPDATES, HOME, WORKFLOWS_CONFIG_DIR, WORKFLOWS_GATE_SURFACE, WORKFLOWS_HARNESS_REPLACED"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.prompt.read",
          "writes files",
          "sets env vars",
          "drives Claude",
          "writes the prompt box",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "Bash calls",
        "every prompt"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 3,
      "pushedAt": "2026-10-01T21:21:00Z",
      "createdAt": "2026-01-22T10:04:57Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "leeovery/portal:.claude/skills/workflow-gates-rows",
      "repo": "leeovery/portal",
      "path": ".claude/skills/workflow-gates-rows",
      "name": "workflow-gates-rows",
      "description": "Draws the transcript row of an answer the workflow-gates mod sent as the question it answered and the answer, instead of Claude Code's framing.",
      "author": "Lee Overy",
      "homepage": "https://github.com/leeovery/portal",
      "url": "https://github.com/leeovery/portal/tree/main/.claude/skills/workflow-gates-rows",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "ui.render",
          "matcher": {
            "component": "UserMessage"
          }
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.session.id"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME, WORKFLOWS_CONFIG_DIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads files",
          "reads env vars"
        ]
      },
      "sees": [],
      "draws": [
        "UserMessage"
      ],
      "stars": 3,
      "pushedAt": "2026-10-01T21:21:00Z",
      "createdAt": "2026-01-22T10:04:57Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "noopz/commonplace:.",
      "repo": "noopz/commonplace",
      "path": ".",
      "name": "commonplace",
      "description": "LLM-maintained knowledge base for Obsidian vaults. Auto-triggers on paper sharing, vault health queries, concept compilation, research questions, and domain management.",
      "author": null,
      "homepage": "https://github.com/noopz/commonplace",
      "url": "https://github.com/noopz/commonplace",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write|Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "Agent"
          }
        },
        {
          "event": "skill.prompt",
          "matcher": {}
        },
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.model.classify",
        "$.model.complete",
        "$.process.run",
        "$.session.cwd",
        "$.session.id",
        "$.session.repo",
        "$.session.turnCount",
        "$.store.get",
        "$.store.set",
        "$.tool.register",
        "$.ui.invalidate",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "hooks.SessionStart: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: node ${CLAUDE_PLUGIN_ROOT}/bin/commonplace cleanup-cache 2>/dev/null || true. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}.",
          "hooks.UserPromptSubmit: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: node ${CLAUDE_PLUGIN_ROOT}/bin/commonplace prompt-context. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}.",
          "hooks.PreToolUse: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: node ${CLAUDE_PLUGIN_ROOT}/bin/commonplace agent-guard. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}.",
          "hooks.PostToolUse: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: node ${CLAUDE_PLUGIN_ROOT}/bin/commonplace post-write. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}."
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Bash calls",
        "Write|Edit calls",
        "every tool call",
        "subagent spawns",
        "every skill",
        "the system prompt",
        "every prompt"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 3,
      "pushedAt": "2026-09-05T06:24:55Z",
      "createdAt": "2026-04-08T03:00:10Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ray-amjad/awesome-claude-code-function-hooks:plugins/secret-redactor",
      "repo": "ray-amjad/awesome-claude-code-function-hooks",
      "path": "plugins/secret-redactor",
      "name": "secret-redactor",
      "description": "Keeps secrets, email addresses and IP addresses out of the session transcript: swaps each one for a stable placeholder on the way in, and puts the real value back on the way into a tool call",
      "author": "Ray Amjad",
      "homepage": "https://github.com/ray-amjad/awesome-claude-code-function-hooks",
      "url": "https://github.com/ray-amjad/awesome-claude-code-function-hooks/tree/main/plugins/secret-redactor",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./redact.ts"
      ],
      "hooks": [
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "prompt.context",
          "matcher": {}
        }
      ],
      "calls": [
        "$.ui.notice",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call",
        "the system prompt"
      ],
      "draws": [],
      "stars": 3,
      "pushedAt": "2026-09-10T15:01:57Z",
      "createdAt": "2026-09-05T02:54:28Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ray-amjad/awesome-claude-code-function-hooks:plugins/vercel-deploy-status",
      "repo": "ray-amjad/awesome-claude-code-function-hooks",
      "path": "plugins/vercel-deploy-status",
      "name": "vercel-deploy-status",
      "description": "Pins the Vercel deploy queue of the linked project under the prompt: every deploy queued, building or just finished, with its phase and elapsed time",
      "author": "Ray Amjad",
      "homepage": "https://github.com/ray-amjad/awesome-claude-code-function-hooks",
      "url": "https://github.com/ray-amjad/awesome-claude-code-function-hooks/tree/main/plugins/vercel-deploy-status",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./deploy-status.tsx"
      ],
      "hooks": [
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt",
            "surface": "terminal"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "session.start",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.fs.exists",
        "$.fs.readFile",
        "$.process.run",
        "$.session.repo",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads files",
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 3,
      "pushedAt": "2026-09-10T15:01:57Z",
      "createdAt": "2026-09-05T02:54:28Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "rjwittams/katzensteg:tools/claude-code-plugin",
      "repo": "rjwittams/katzensteg",
      "path": "tools/claude-code-plugin",
      "name": "katzensteg",
      "description": "Game and HTML panels backed by the headless Katzensteg WM. Needs CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1.",
      "author": null,
      "homepage": "https://github.com/rjwittams/katzensteg",
      "url": "https://github.com/rjwittams/katzensteg/tree/main/tools/claude-code-plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "katzensteg"
          }
        },
        {
          "event": "prompt.section",
          "matcher": {
            "name": "env_info_simple"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "katzensteg"
          }
        },
        {
          "event": "ui.scroll",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "katzensteg"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.sleep",
        "$.command.register",
        "$.env.get",
        "$.env.set",
        "$.fs.exists",
        "$.fs.write",
        "$.http.fetch",
        "$.process.run",
        "$.store.get",
        "$.store.set",
        "$.tool.register",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [
        "hooks/panel.tsx"
      ],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: KATZENSTEG_OBSERVE, KATZENSTEG_TARGET",
          "./register.tsx env reads: CLAUDE_PID, HOME, KATZENSTEG_HOST_BIN, KATZENSTEG_REPO, KATZENSTEG_WM_HOST, TMPDIR"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "writes files",
          "sets env vars",
          "drives Claude",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "the system prompt",
        "? calls"
      ],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 3,
      "pushedAt": "2026-10-01T14:00:11Z",
      "createdAt": "2026-04-27T14:15:57Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "sezaakgun/cc-pr-tracker:.",
      "repo": "sezaakgun/cc-pr-tracker",
      "path": ".",
      "name": "cc-pr-tracker",
      "description": "Watch GitHub PRs from a Claude Code session: merge state, review and required checks above the prompt, with alerts when they change",
      "author": "Seza Akgün",
      "homepage": "https://github.com/sezaakgun/cc-pr-tracker",
      "url": "https://github.com/sezaakgun/cc-pr-tracker",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "config.set",
          "matcher": {
            "key": "\"cc-pr-tracker.muteAll\""
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.config.list",
        "$.env.get",
        "$.fs.exists",
        "$.process.run",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: CMUX_BUNDLED_CLI_PATH, CMUX_SURFACE_ID"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "Bash calls"
      ],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 3,
      "pushedAt": "2026-09-29T10:05:09Z",
      "createdAt": "2026-09-13T14:29:52Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "TransmuteLabs/Catalyst:plugins/catalyst-probes",
      "repo": "TransmuteLabs/Catalyst",
      "path": "plugins/catalyst-probes",
      "name": "catalyst-probes",
      "description": "Consultation and prompt engine for Claude Mods. The module is the core; [probe.<id>] tables in probes.toml are the consultants and [prompt.<id>] tables author a system-prompt section, a tool description or a command description. The only carrier is the mod: a CLAUDE_*_CARRIER handle set to mod or left empty/unset arms the probe here; any other value loudly refuses the calls this probe acts on (the patch-side copy is gone).",
      "author": "Marat Karimov",
      "homepage": "https://github.com/TransmuteLabs/Catalyst",
      "url": "https://github.com/TransmuteLabs/Catalyst/tree/main/plugins/catalyst-probes",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "catalyst-fleet"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear|resume"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "catalyst-ladder"
          }
        },
        {
          "event": "prompt.section",
          "matcher": {}
        },
        {
          "event": "tool.describe",
          "matcher": {}
        },
        {
          "event": "command.describe",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "classic.ConfigChange",
          "matcher": {}
        },
        {
          "event": "classic.CwdChanged",
          "matcher": {}
        },
        {
          "event": "classic.DirectoryAdded",
          "matcher": {}
        },
        {
          "event": "classic.Elicitation",
          "matcher": {}
        },
        {
          "event": "classic.ElicitationResult",
          "matcher": {}
        },
        {
          "event": "classic.FileChanged",
          "matcher": {}
        },
        {
          "event": "classic.InstructionsLoaded",
          "matcher": {}
        },
        {
          "event": "classic.Notification",
          "matcher": {}
        },
        {
          "event": "classic.PermissionDenied",
          "matcher": {}
        },
        {
          "event": "classic.PermissionRequest",
          "matcher": {}
        },
        {
          "event": "classic.PostCompact",
          "matcher": {}
        },
        {
          "event": "classic.PostModelSwitch",
          "matcher": {}
        },
        {
          "event": "classic.PostToolBatch",
          "matcher": {}
        },
        {
          "event": "classic.PostToolUseFailure",
          "matcher": {}
        },
        {
          "event": "classic.PreCompact",
          "matcher": {}
        },
        {
          "event": "classic.PreModelSwitch",
          "matcher": {}
        },
        {
          "event": "classic.SessionEnd",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "classic.Setup",
          "matcher": {}
        },
        {
          "event": "classic.StopFailure",
          "matcher": {}
        },
        {
          "event": "classic.Stop",
          "matcher": {}
        },
        {
          "event": "classic.SubagentStart",
          "matcher": {}
        },
        {
          "event": "classic.SubagentStop",
          "matcher": {}
        },
        {
          "event": "classic.TaskCompleted",
          "matcher": {}
        },
        {
          "event": "classic.TaskCreated",
          "matcher": {}
        },
        {
          "event": "classic.TeammateIdle",
          "matcher": {}
        },
        {
          "event": "classic.UserPromptExpansion",
          "matcher": {}
        },
        {
          "event": "classic.UserPromptSubmit",
          "matcher": {}
        },
        {
          "event": "classic.WorktreeCreate",
          "matcher": {}
        },
        {
          "event": "classic.WorktreeRemove",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.list",
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.env.get",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.model.complete",
        "$.process.run",
        "$.prompt.submit",
        "$.session.id",
        "$.session.messages",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.tool.register",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CATALYST_ROUTING_TABLE, CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS, CLAUDE_CONFIG_DIR, CLAUDE_FORM, CLAUDE_FORM_CARRIER, CLAUDE_IDLE, CLAUDE_IDLE_CARRIER, CLAUDE_JUDGE, CLAUDE_JUDGE_CARRIER, CLAUDE_JUDGE_MODEL, CLAUDE_JUDGE_PROMPT, CLAUDE_JUDGE_TIMEOUT_MS, CLAUDE_PROBES, CLAUDE_PROBES_DIR, CLAUDE_PROMPTS, HOME, PWD"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "the system prompt",
        "every tool call",
        "classic hooks",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 3,
      "pushedAt": "2026-10-02T01:51:44Z",
      "createdAt": "2026-07-16T07:39:05Z",
      "license": "NOASSERTION",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "TransmuteLabs/Catalyst:plugins/catalyst-refusal-watch",
      "repo": "TransmuteLabs/Catalyst",
      "path": "plugins/catalyst-refusal-watch",
      "name": "catalyst-refusal-watch",
      "description": "Makes every response the service filter stopped visible at once and adds a rule: report it, do not drop work silently.",
      "author": "Marat Karimov",
      "homepage": "https://github.com/TransmuteLabs/Catalyst",
      "url": "https://github.com/TransmuteLabs/Catalyst/tree/main/plugins/catalyst-refusal-watch",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "settings.read",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "TaskStop"
          }
        },
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.env.get",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.session.version",
        "$.settings.read",
        "$.store.delete",
        "$.store.keys",
        "$.store.set",
        "$.ui.log",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_REFUSAL_WATCH, HOME"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "reads env vars",
          "reads settings",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "TaskStop calls",
        "the system prompt"
      ],
      "draws": [],
      "stars": 3,
      "pushedAt": "2026-10-02T01:51:44Z",
      "createdAt": "2026-07-16T07:39:05Z",
      "license": "NOASSERTION",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "TransmuteLabs/Catalyst:plugins/catalyst-statusline",
      "repo": "TransmuteLabs/Catalyst",
      "path": "plugins/catalyst-statusline",
      "name": "catalyst-statusline",
      "description": "Multi-line status HUD above the prompt over data families (hooks/data/*.ts pure collectors, one core subscription per event), with the /statusline-mod pill panel: live preview, six tabs (layout, elements, per-element settings, view axes, themes, number formats). Based on konsta95/ClaudeCodeMods statusline 0.3.2 (MIT, c49ad4a).",
      "author": "Marat Karimov",
      "homepage": "https://github.com/TransmuteLabs/Catalyst",
      "url": "https://github.com/TransmuteLabs/Catalyst/tree/main/plugins/catalyst-statusline",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./statusline.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "config.set",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "classic.UserPromptSubmit",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {}
        },
        {
          "event": "config.describe",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.focus",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.config.list",
        "$.config.set",
        "$.env.get",
        "$.fs.read",
        "$.process.run",
        "$.session.cwd",
        "$.session.id",
        "$.session.messages",
        "$.session.model",
        "$.session.root",
        "$.session.surfaces",
        "$.session.turns",
        "$.session.usage",
        "$.store.delete",
        "$.store.get"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./statusline.ts env writes: nothing",
          "./statusline.ts env reads: CLAUDE_CODE_EXECPATH, CLAUDE_CONFIG_DIR, CLAUDE_INSTANCE_N, DEADLINE_TIME, HEADSIGN_OBSERVER, HOME, ITERM_SESSION_ID, KITTY_WINDOW_ID, NEON_API_KEY, NEON_DATABASE, NEON_ENDPOINT, NEON_PROJECT_ID, PWD, TERM_PROGRAM"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "changes config",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "persists state"
        ]
      },
      "sees": [
        "every tool call",
        "subagent spawns",
        "classic hooks"
      ],
      "draws": [
        "any component"
      ],
      "stars": 3,
      "pushedAt": "2026-10-02T01:51:44Z",
      "createdAt": "2026-07-16T07:39:05Z",
      "license": "NOASSERTION",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "TransmuteLabs/Catalyst:plugins/catalyst-swe-request",
      "repo": "TransmuteLabs/Catalyst",
      "path": "plugins/catalyst-swe-request",
      "name": "catalyst-swe-request",
      "description": "Request-text policy for devin/swe-2: registers one rule in the host's $.requestText noun.",
      "author": "Marat Karimov",
      "homepage": "https://github.com/TransmuteLabs/Catalyst",
      "url": "https://github.com/TransmuteLabs/Catalyst/tree/main/plugins/catalyst-swe-request",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        }
      ],
      "calls": [
        "$.requestText.register",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.requestText.register",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 3,
      "pushedAt": "2026-10-02T01:51:44Z",
      "createdAt": "2026-07-16T07:39:05Z",
      "license": "NOASSERTION",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "wandercom/signet-eval:adapters/claude-function",
      "repo": "wandercom/signet-eval",
      "path": "adapters/claude-function",
      "name": "signet-eval-functions",
      "description": "Optional Claude Code 2.1.274 and 2.1.280 function hooks for Signet-eval policy and output redaction",
      "author": "Wander",
      "homepage": "https://github.com/wandercom/signet-eval",
      "url": "https://github.com/wandercom/signet-eval/tree/main/adapters/claude-function",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./signet.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "classic.PreToolUse",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.process.run",
        "$.session.cwd",
        "$.session.id",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "classic hooks",
        "every tool call"
      ],
      "draws": [],
      "stars": 3,
      "pushedAt": "2026-09-24T17:33:05Z",
      "createdAt": "2026-03-21T07:01:57Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Flam1ngFir3ball/jev-claude-router:.",
      "repo": "Flam1ngFir3ball/jev-claude-router",
      "path": ".",
      "name": "jev-claude-router",
      "description": "Routes each Claude Code turn to the model and effort TypeSafe's Jev picks, weighed against what a switch costs, and compacts with Jev instead of a lossy summary.",
      "author": "Andrew Parrish (fork of Satvik Sinha's jev-model-router)",
      "homepage": "https://github.com/Flam1ngFir3ball/jev-claude-router",
      "url": "https://github.com/Flam1ngFir3ball/jev-claude-router",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "classic.PostModelSwitch",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "jev"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "SessionMode"
          }
        }
      ],
      "calls": [
        "$.agent.list",
        "$.clock.sleep",
        "$.command.register",
        "$.env.get",
        "$.http.fetch",
        "$.session.id",
        "$.session.model",
        "$.session.surfaces",
        "$.session.usage",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"jev-claude-router\" reads as one of Anthropic's own. Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it.",
          "./register.ts env writes: nothing",
          "./register.ts env reads: AI_GATEWAY_API_KEY, JEV_ROUTER_ALLOW_CUSTOM_BASE, JEV_ROUTER_ALLOW_OVERRIDE, JEV_ROUTER_CACHE_TTL, JEV_ROUTER_CEILING, JEV_ROUTER_COMPACT, JEV_ROUTER_COMPACT_MIN_REDUCTION, JEV_ROUTER_COMPACT_TIMEOUT_MS, JEV_ROUTER_EXCLUDE, JEV_ROUTER_JEV_MODEL, JEV_ROUTER_NOTIFY_CONTINUE, JEV_ROUTER_PRICE_CHECK, JEV_ROUTER_PROVIDER, JEV_ROUTER_STICKY, JEV_ROUTER_STICKY_CONFIDENCE, JEV_ROUTER_TIMEOUT_MS, JEV_ROUTER_UPGRADE_MAX, TYPESAFE_API_KEY, TYPESAFE_BASE_URL"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "reads env vars",
          "persists state"
        ]
      },
      "sees": [
        "classic hooks",
        "compaction",
        "subagent spawns"
      ],
      "draws": [
        "SessionMode"
      ],
      "stars": 2,
      "pushedAt": "2026-09-29T11:01:59Z",
      "createdAt": "2026-09-22T23:20:52Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "leeovery/tick:.claude/skills/workflow-gates",
      "repo": "leeovery/tick",
      "path": ".claude/skills/workflow-gates",
      "name": "workflow-gates",
      "description": "Draws the agentic-workflows engine's gates in the band above the prompt: rows a click puts in the prompt and a second click sends: instead of a menu the model has to reproduce.",
      "author": "Lee Overy",
      "homepage": "https://github.com/leeovery/tick",
      "url": "https://github.com/leeovery/tick/tree/main/.claude/skills/workflow-gates",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "SendUserMessage"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.message",
          "matcher": {
            "element": "gate"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.env.set",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.prompt.fill",
        "$.prompt.read",
        "$.prompt.submit",
        "$.session.id",
        "$.session.messages",
        "$.session.surfaces",
        "$.session.version",
        "$.ui.invalidate",
        "$.ui.resolve"
      ],
      "surfaceModules": [
        "hooks/board.ts"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: CLAUDE_CODE_PEWTER_OWL_TOOL, CLAUDE_CODE_SILENT_TURN_REMINDER, CLAUDE_CODE_THINKING_DISPLAY_UPDATES, WORKFLOWS_GATE_SURFACE, WORKFLOWS_HARNESS_REPLACED",
          "./register.ts env reads: CLAUDE_CODE_ENTRYPOINT, CLAUDE_CODE_REMOTE, CLAUDE_CODE_SILENT_TURN_REMINDER, CLAUDE_CODE_THINKING_DISPLAY_UPDATES, HOME, WORKFLOWS_CONFIG_DIR, WORKFLOWS_GATE_SURFACE, WORKFLOWS_HARNESS_REPLACED"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.prompt.read",
          "writes files",
          "sets env vars",
          "drives Claude",
          "writes the prompt box",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "Bash calls",
        "every prompt"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 2,
      "pushedAt": "2026-09-29T12:00:46Z",
      "createdAt": "2026-01-19T10:48:48Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "leeovery/tick:.claude/skills/workflow-gates-rows",
      "repo": "leeovery/tick",
      "path": ".claude/skills/workflow-gates-rows",
      "name": "workflow-gates-rows",
      "description": "Draws the transcript row of an answer the workflow-gates mod sent as the question it answered and the answer, instead of Claude Code's framing.",
      "author": "Lee Overy",
      "homepage": "https://github.com/leeovery/tick",
      "url": "https://github.com/leeovery/tick/tree/main/.claude/skills/workflow-gates-rows",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "ui.render",
          "matcher": {
            "component": "UserMessage"
          }
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.session.id"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME, WORKFLOWS_CONFIG_DIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads files",
          "reads env vars"
        ]
      },
      "sees": [],
      "draws": [
        "UserMessage"
      ],
      "stars": 2,
      "pushedAt": "2026-09-29T12:00:46Z",
      "createdAt": "2026-01-19T10:48:48Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "musingfox/cc-plugins:calendar",
      "repo": "musingfox/cc-plugins",
      "path": "calendar",
      "name": "calendar",
      "description": "[Experimental] Upcoming Google Calendar events in-session: /cal toggles a band above the prompt with the next 7 days, /cal N for N days (Claude Mod; needs CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 and the claude.ai Google Calendar connector)",
      "author": "Nick Huang",
      "homepage": "https://github.com/musingfox/cc-plugins/tree/main/calendar",
      "url": "https://github.com/musingfox/cc-plugins/tree/main/calendar",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "cal"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.mcp.call",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: TZ"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "MCP servers",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 2,
      "pushedAt": "2026-10-01T18:09:54Z",
      "createdAt": "2025-10-16T14:35:55Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "musingfox/cc-plugins:obsidian-workspace",
      "repo": "musingfox/cc-plugins",
      "path": "obsidian-workspace",
      "name": "obw",
      "description": "Obsidian Workspace: project-scoped vault productivity (capture / notes / PM). Skills own folder layout and templates; /obw:pm splits a spec into blocking tickets; /issue is a Claude Mod pane that lists a view of the project's dashboard, draws Mermaid as text diagrams, and can open a card in the browser through viz. Vault I/O uses the Obsidian CLI via the official obsidian-cli skill.",
      "author": "musingfox",
      "homepage": "https://github.com/musingfox/cc-plugins",
      "url": "https://github.com/musingfox/cc-plugins/tree/main/obsidian-workspace",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "issue"
          }
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.process.run",
        "$.session.cwd",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [
        "hooks/board.ts"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CONFIG_DIR, HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 2,
      "pushedAt": "2026-10-01T18:09:54Z",
      "createdAt": "2025-10-16T14:35:55Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "musingfox/cc-plugins:omp-quota",
      "repo": "musingfox/cc-plugins",
      "path": "omp-quota",
      "name": "omp-quota",
      "description": "[Experimental] Every omp provider's remaining quota in-session: a /quota band above the prompt, /quota refresh, and a toast when a provider worsens from ok (Claude Mod; needs CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1)",
      "author": "Nick Huang",
      "homepage": "https://github.com/musingfox/cc-plugins/tree/main/omp-quota",
      "url": "https://github.com/musingfox/cc-plugins/tree/main/omp-quota",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "quota"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.process.run",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 2,
      "pushedAt": "2026-10-01T18:09:54Z",
      "createdAt": "2025-10-16T14:35:55Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "nalyk/nalyk-skills:plugins/proctor",
      "repo": "nalyk/nalyk-skills",
      "path": "plugins/proctor",
      "name": "proctor",
      "description": "Hook-enforced development discipline for Claude Code. Skills teach methodology; hooks enforce compliance mechanically (git gates, planning mode, step budgets, quiet mode, pre-flight checks, self-diagnosis, autonomy metrics); store + tracing survive compaction.",
      "author": "nalyk",
      "homepage": "https://github.com/nalyk/nalyk-skills",
      "url": "https://github.com/nalyk/nalyk-skills/tree/master/plugins/proctor",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./proctor.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "NotebookEdit"
          }
        },
        {
          "event": "skill.prompt",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Read"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Agent"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "attribution.text",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "Agent"
          }
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "Write"
          }
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "Edit"
          }
        }
      ],
      "calls": [
        "$.fs.exists",
        "$.fs.read",
        "$.model.fork",
        "$.process.run",
        "$.session.cwd",
        "$.session.model",
        "$.store.get",
        "$.store.set",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "the system prompt",
        "Bash calls",
        "Write calls",
        "Edit calls",
        "NotebookEdit calls",
        "every skill",
        "Read calls",
        "subagent spawns",
        "Agent calls",
        "every prompt"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 2,
      "pushedAt": "2026-09-22T19:48:55Z",
      "createdAt": "2026-01-07T17:37:34Z",
      "license": null,
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "nalyk/nalyk-skills:tests/proctor-configured",
      "repo": "nalyk/nalyk-skills",
      "path": "tests/proctor-configured",
      "name": "proctor",
      "description": "Test fixture: Proctor loaded with every userConfig option set away from its default.",
      "author": "nalyk",
      "homepage": "https://github.com/nalyk/nalyk-skills",
      "url": "https://github.com/nalyk/nalyk-skills/tree/master/tests/proctor-configured",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./proctor.tsx"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "modules../proctor.tsx: proctor-configured: /tmp/acm-clones/nalyk__nalyk-skills/tests/proctor-configured/hooks/proctor.tsx: no such file"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 2,
      "pushedAt": "2026-09-22T19:48:55Z",
      "createdAt": "2026-01-07T17:37:34Z",
      "license": null,
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ray-manaloto/dotfiles:.agents/skills/install-doctor",
      "repo": "ray-manaloto/dotfiles",
      "path": ".agents/skills/install-doctor",
      "name": "install-doctor",
      "description": "Reports the install-doctor verdict at session start and refuses tool calls while the install is provably broken",
      "author": "Raymond Manaloto",
      "homepage": "https://github.com/ray-manaloto/dotfiles",
      "url": "https://github.com/ray-manaloto/dotfiles/tree/main/.agents/skills/install-doctor",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "classic.PreToolUse",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.env.get",
        "$.fs.stat",
        "$.process.run",
        "$.session.root"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_PROJECT_DIR, PATH"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads files",
          "reads env vars"
        ]
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [],
      "stars": 2,
      "pushedAt": "2026-10-02T02:09:36Z",
      "createdAt": "2026-03-23T07:39:46Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ray-manaloto/dotfiles:.claude/skills/plugin-health",
      "repo": "ray-manaloto/dotfiles",
      "path": ".claude/skills/plugin-health",
      "name": "plugin-health",
      "description": "Reports at session start when plugins declared in settings are not actually installed or are disabled for this project",
      "author": "Raymond Manaloto",
      "homepage": "https://github.com/ray-manaloto/dotfiles",
      "url": "https://github.com/ray-manaloto/dotfiles/tree/main/.claude/skills/plugin-health",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./plugin-health.ts"
      ],
      "hooks": [
        {
          "event": "classic.SessionStart",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.process.run"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./plugin-health.ts env writes: nothing",
          "./plugin-health.ts env reads: CLAUDE_PROJECT_DIR, PATH"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads env vars"
        ]
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [],
      "stars": 2,
      "pushedAt": "2026-10-02T02:09:36Z",
      "createdAt": "2026-03-23T07:39:46Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ray-manaloto/dotfiles:tests/fixtures/fnhook/bad-event",
      "repo": "ray-manaloto/dotfiles",
      "path": "tests/fixtures/fnhook/bad-event",
      "name": "fnhook-fixture-bad-event",
      "description": "Invalid event-name function-hook fixture",
      "author": "dotfiles test suite",
      "homepage": "https://github.com/ray-manaloto/dotfiles",
      "url": "https://github.com/ray-manaloto/dotfiles/tree/main/tests/fixtures/fnhook/bad-event",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "modules../register.ts: bad-event: /tmp/acm-clones/ray-manaloto__dotfiles/tests/fixtures/fnhook/bad-event/hooks/register.ts, compiled line 2 `on(\"classic.SessionStartt\", async (_$, e, next) => next(e));`: \"classic.SessionStartt\" is not an event; $ is always spelled $.noun.event(...) at the call site, on is always on(\"<event>\", hook), and next.to always next.to(e, \"<tier>\")"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 2,
      "pushedAt": "2026-10-02T02:09:36Z",
      "createdAt": "2026-03-23T07:39:46Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ray-manaloto/dotfiles:tests/fixtures/fnhook/bad-return",
      "repo": "ray-manaloto/dotfiles",
      "path": "tests/fixtures/fnhook/bad-return",
      "name": "fnhook-fixture-bad-return",
      "description": "Bad-return function-hook fixture",
      "author": "dotfiles test suite",
      "homepage": "https://github.com/ray-manaloto/dotfiles",
      "url": "https://github.com/ray-manaloto/dotfiles/tree/main/tests/fixtures/fnhook/bad-return",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "classic.PreToolUse",
          "matcher": {
            "tool": "Read"
          }
        }
      ],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [],
      "stars": 2,
      "pushedAt": "2026-10-02T02:09:36Z",
      "createdAt": "2026-03-23T07:39:46Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ray-manaloto/dotfiles:tests/fixtures/fnhook/escape-hatch-unconsulted",
      "repo": "ray-manaloto/dotfiles",
      "path": "tests/fixtures/fnhook/escape-hatch-unconsulted",
      "name": "fnhook-fixture-escape-hatch-unconsulted",
      "description": "Deny-capable module declaring the escape-hatch set but never consulting it",
      "author": "dotfiles test suite",
      "homepage": "https://github.com/ray-manaloto/dotfiles",
      "url": "https://github.com/ray-manaloto/dotfiles/tree/main/tests/fixtures/fnhook/escape-hatch-unconsulted",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "classic.PreToolUse",
          "matcher": {}
        }
      ],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [],
      "stars": 2,
      "pushedAt": "2026-10-02T02:09:36Z",
      "createdAt": "2026-03-23T07:39:46Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ray-manaloto/dotfiles:tests/fixtures/fnhook/no-escape-hatch",
      "repo": "ray-manaloto/dotfiles",
      "path": "tests/fixtures/fnhook/no-escape-hatch",
      "name": "fnhook-fixture-no-escape-hatch",
      "description": "Deny-capable module that permits no escape-hatch tool",
      "author": "dotfiles test suite",
      "homepage": "https://github.com/ray-manaloto/dotfiles",
      "url": "https://github.com/ray-manaloto/dotfiles/tree/main/tests/fixtures/fnhook/no-escape-hatch",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "classic.PreToolUse",
          "matcher": {}
        }
      ],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [],
      "stars": 2,
      "pushedAt": "2026-10-02T02:09:36Z",
      "createdAt": "2026-03-23T07:39:46Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ray-manaloto/dotfiles:tests/fixtures/fnhook/parse-error",
      "repo": "ray-manaloto/dotfiles",
      "path": "tests/fixtures/fnhook/parse-error",
      "name": "fnhook-fixture-parse-error",
      "description": "Parse-error function-hook fixture",
      "author": "dotfiles test suite",
      "homepage": "https://github.com/ray-manaloto/dotfiles",
      "url": "https://github.com/ray-manaloto/dotfiles/tree/main/tests/fixtures/fnhook/parse-error",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "modules../register.ts: parse-error: /tmp/acm-clones/ray-manaloto__dotfiles/tests/fixtures/fnhook/parse-error/hooks/register.ts does not parse: Unexpected end of file (line 3, column 36)"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 2,
      "pushedAt": "2026-10-02T02:09:36Z",
      "createdAt": "2026-03-23T07:39:46Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ray-manaloto/dotfiles:tests/fixtures/fnhook/reserved-name",
      "repo": "ray-manaloto/dotfiles",
      "path": "tests/fixtures/fnhook/reserved-name",
      "name": "claude-fnhook-fixture-reserved",
      "description": "Reserved-prefix plugin name: validate must reject it (#1496)",
      "author": "dotfiles test suite",
      "homepage": "https://github.com/ray-manaloto/dotfiles",
      "url": "https://github.com/ray-manaloto/dotfiles/tree/main/tests/fixtures/fnhook/reserved-name",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "classic.PreToolUse",
          "matcher": {
            "tool": "Read"
          }
        }
      ],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-fnhook-fixture-reserved\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it."
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [],
      "stars": 2,
      "pushedAt": "2026-10-02T02:09:36Z",
      "createdAt": "2026-03-23T07:39:46Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ray-manaloto/dotfiles:tests/fixtures/fnhook/untyped",
      "repo": "ray-manaloto/dotfiles",
      "path": "tests/fixtures/fnhook/untyped",
      "name": "fnhook-fixture-untyped",
      "description": "Untyped function-hook fixture",
      "author": "dotfiles test suite",
      "homepage": "https://github.com/ray-manaloto/dotfiles",
      "url": "https://github.com/ray-manaloto/dotfiles/tree/main/tests/fixtures/fnhook/untyped",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "classic.PreToolUse",
          "matcher": {
            "tool": "Read"
          }
        }
      ],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [],
      "stars": 2,
      "pushedAt": "2026-10-02T02:09:36Z",
      "createdAt": "2026-03-23T07:39:46Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ray-manaloto/dotfiles:tests/fixtures/fnhook/valid",
      "repo": "ray-manaloto/dotfiles",
      "path": "tests/fixtures/fnhook/valid",
      "name": "fnhook-fixture-valid",
      "description": "Valid function-hook gate fixture",
      "author": "dotfiles test suite",
      "homepage": "https://github.com/ray-manaloto/dotfiles",
      "url": "https://github.com/ray-manaloto/dotfiles/tree/main/tests/fixtures/fnhook/valid",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "classic.PreToolUse",
          "matcher": {
            "tool": "Read"
          }
        }
      ],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [],
      "stars": 2,
      "pushedAt": "2026-10-02T02:09:36Z",
      "createdAt": "2026-03-23T07:39:46Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "riethmayer/dotfiles:stow/claude/.claude/skills/websearch-perplexity",
      "repo": "riethmayer/dotfiles",
      "path": "stow/claude/.claude/skills/websearch-perplexity",
      "name": "websearch-perplexity",
      "description": "Routes the WebSearch tool to Perplexity (pplx CLI) via a function hook; falls back to native search on failure",
      "author": "Jan Riethmayer",
      "homepage": "https://github.com/riethmayer/dotfiles",
      "url": "https://github.com/riethmayer/dotfiles/tree/main/stow/claude/.claude/skills/websearch-perplexity",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./websearch.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "WebSearch"
          }
        }
      ],
      "calls": [
        "$.env.get",
        "$.process.run",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./websearch.ts env writes: nothing",
          "./websearch.ts env reads: HOME, OP_SERVICE_ACCOUNT_TOKEN, PERPLEXITY_API_KEY, PPLX_WEBSEARCH"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "WebSearch calls"
      ],
      "draws": [],
      "stars": 2,
      "pushedAt": "2026-10-01T10:15:13Z",
      "createdAt": "2009-10-08T22:13:58Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "satiricalguru/Fast-Jev-Agents:.",
      "repo": "satiricalguru/Fast-Jev-Agents",
      "path": ".",
      "name": "fast-jev-compaction",
      "description": "Verbatim Jev-guided compaction for Claude Code sessions.",
      "author": null,
      "homepage": "https://github.com/satiricalguru/Fast-Jev-Agents",
      "url": "https://github.com/satiricalguru/Fast-Jev-Agents",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-jev.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.http.fetch",
        "$.session.compact",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./fast-jev.ts env writes: nothing",
          "./fast-jev.ts env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 2,
      "pushedAt": "2026-09-21T19:38:56Z",
      "createdAt": "2026-09-21T09:46:34Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "tomstagl/cctop:plugin",
      "repo": "tomstagl/cctop",
      "path": "plugin",
      "name": "cctop",
      "description": "btop-style live dashboard for Claude Code internals: /cctop opens it in a side pane, cctop-insights lets the session answer questions from its numbers",
      "author": "Thomas Stagl",
      "homepage": "https://github.com/tomstagl/cctop",
      "url": "https://github.com/tomstagl/cctop/tree/main/plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./pane.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "cctop-pane"
          }
        },
        {
          "event": "skill.prompt",
          "matcher": {
            "skill": "cctop"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "cctop"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.process.run",
        "$.prompt.fill",
        "$.session.id",
        "$.session.model",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./pane.tsx env writes: nothing",
          "./pane.tsx env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "writes the prompt box",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "compaction",
        "every tool call",
        "the cctop skill"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 2,
      "pushedAt": "2026-10-01T18:07:18Z",
      "createdAt": "2026-09-11T19:26:30Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "badaniya/.stowed:claude/.claude/plugins/marketplaces/claude-plugins-official/plugins/code-modernization",
      "repo": "badaniya/.stowed",
      "path": "claude/.claude/plugins/marketplaces/claude-plugins-official/plugins/code-modernization",
      "name": "code-modernization",
      "description": "Guided modernization for any legacy codebase: start with /modernize, get an assessment, an interactive map, the business rules mined from the code, and a plan you approve, then an upgrade, a rewrite or a rebuild with independent proof that the new code behaves like the old. Includes security hardening, a one-page report, specialist agents, and an optional live progress pane (early access).",
      "author": "Anthropic",
      "homepage": "https://github.com/badaniya/.stowed",
      "url": "https://github.com/badaniya/.stowed/tree/main/claude/.claude/plugins/marketplaces/claude-plugins-official/plugins/code-modernization",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "modernize-panel"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "modernize-review-pane"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "modernize-sign"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear|resume"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.prompt.fill",
        "$.prompt.submit",
        "$.store.get",
        "$.store.set",
        "$.turn.abort",
        "$.ui.blit",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude",
          "writes the prompt box",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call"
      ],
      "draws": [
        "PromptHint",
        "AbovePrompt",
        "Pane"
      ],
      "stars": 1,
      "pushedAt": "2026-09-30T18:44:07Z",
      "createdAt": "2025-05-15T16:48:36Z",
      "license": "Unlicense",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "benjaminmodayil/live-recap:.",
      "repo": "benjaminmodayil/live-recap",
      "path": ".",
      "name": "live-recap",
      "description": "A card above the prompt that says what Claude is working on, refreshed every few minutes while a turn runs",
      "author": "Benjamin Modayil",
      "homepage": "https://github.com/benjaminmodayil/live-recap",
      "url": "https://github.com/benjaminmodayil/live-recap",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "classic.Stop",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Spinner"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.config.list",
        "$.config.set",
        "$.model.complete",
        "$.model.fork",
        "$.session.messages",
        "$.state.get",
        "$.state.set",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: live-recap.card, live-recap.now",
          "./register.tsx state writes: live-recap.card, live-recap.now",
          "./register.tsx state reads: live-recap.card, live-recap.now"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "changes config",
          "drives Claude",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "every tool call"
      ],
      "draws": [
        "AbovePrompt",
        "Spinner"
      ],
      "stars": 1,
      "pushedAt": "2026-10-01T23:47:30Z",
      "createdAt": "2026-09-30T11:17:20Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "benjaminmodayil/live-recap:plugins/message-timestamps",
      "repo": "benjaminmodayil/live-recap",
      "path": "plugins/message-timestamps",
      "name": "message-timestamps",
      "description": "Prefixes each Claude reply in the transcript with the local time it arrived, with no model calls",
      "author": "Benjamin Modayil",
      "homepage": "https://github.com/benjaminmodayil/live-recap",
      "url": "https://github.com/benjaminmodayil/live-recap/tree/main/plugins/message-timestamps",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.append",
          "matcher": {
            "door": "response"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.state.get",
        "$.state.set"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: message-timestamps.sentAt",
          "./register.tsx state writes: message-timestamps.sentAt",
          "./register.tsx state reads: message-timestamps.sentAt"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.state.get",
          "other: $.state.set"
        ]
      },
      "sees": [],
      "draws": [
        "AssistantMessage"
      ],
      "stars": 1,
      "pushedAt": "2026-10-01T23:47:30Z",
      "createdAt": "2026-09-30T11:17:20Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "bn-l/claude-autoresearch-mod:plugin",
      "repo": "bn-l/claude-autoresearch-mod",
      "path": "plugin",
      "name": "autoresearch",
      "description": "Autonomous experiment loop for Claude Code: run, measure, keep or discard. A port of pi-autoresearch.",
      "author": "bn-l",
      "homepage": "https://github.com/bn-l/claude-autoresearch-mod",
      "url": "https://github.com/bn-l/claude-autoresearch-mod/tree/main/plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear|resume"
          }
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "prompt.section",
          "matcher": {
            "name": "env_info_simple"
          }
        },
        {
          "event": "tool.describe",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "tool.check",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "autoresearch"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "autoresearch-dashboard"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "autoresearch-export"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "autoresearch-off"
          }
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolUse",
            "props has {tool": "?"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolResult",
            "props has {tool": "?"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "?"
          }
        },
        {
          "event": "ui.scroll",
          "matcher": {
            "component": "Pane",
            "requestId": "?"
          }
        },
        {
          "event": "ui.message",
          "matcher": {
            "requestId": "?"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.command.register",
        "$.command.run",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.http.fetch",
        "$.process.run",
        "$.process.spawn",
        "$.prompt.submit",
        "$.session.cwd",
        "$.session.id",
        "$.session.surfaces",
        "$.session.usage",
        "$.state.get",
        "$.state.set",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.tool.register",
        "$.turn.abort",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/ui/dashboard-client.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: autoresearch.mode, autoresearch.experiment, autoresearch.running, autoresearch.runTail, autoresearch.loop, autoresearch.pane, autoresearch.toolDetails",
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: CLAUDE_PID, TMPDIR",
          "./register.tsx state writes: autoresearch.experiment, autoresearch.loop, autoresearch.mode, autoresearch.pane, autoresearch.runTail, autoresearch.running, autoresearch.toolDetails",
          "./register.tsx state reads: autoresearch.experiment, autoresearch.loop, autoresearch.mode, autoresearch.pane, autoresearch.runTail, autoresearch.running, autoresearch.toolDetails"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.process.spawn",
          "other: $.state.get",
          "other: $.state.set",
          "network",
          "runs processes",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "the system prompt",
        "? calls",
        "compaction"
      ],
      "draws": [
        "AbovePrompt",
        "ToolUse",
        "ToolResult",
        "Pane"
      ],
      "stars": 1,
      "pushedAt": "2026-10-01T21:39:58Z",
      "createdAt": "2026-10-01T21:39:51Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Bulls-Work/bullswarm:mods/bullswarm",
      "repo": "Bulls-Work/bullswarm",
      "path": "mods/bullswarm",
      "name": "bullswarm",
      "description": "Bullswarm as a Claude Mod: live subscription meters for every installed coding-agent CLI above the prompt, quota-aware routing of Claude's own subagents to whichever pool has surplus, a verdict note on every bullswarm command the model runs, a /bullswarm command, and $.bullswarm for other plugins.",
      "author": "cowcow02",
      "homepage": "https://github.com/Bulls-Work/bullswarm",
      "url": "https://github.com/Bulls-Work/bullswarm/tree/main/mods/bullswarm",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "engine.create",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Agent"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "bullswarm"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__bullswarm__route$\"/"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.scroll",
          "matcher": {
            "requestId": "bullswarm"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "bullswarm"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.fs.read",
        "$.process.run",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.tool.register",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.notice",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: $.bullswarm",
          "./register.ts env writes: nothing",
          "./register.ts env reads: BULLSWARM_DEPTH"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "the system prompt",
        "Agent calls",
        "Bash calls",
        "/\"^mcp__bullswarm__route$\"/ calls"
      ],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 1,
      "pushedAt": "2026-10-01T10:41:27Z",
      "createdAt": "2026-08-21T14:59:53Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "designnotdrum/fast-jev-compaction-codex:.",
      "repo": "designnotdrum/fast-jev-compaction-codex",
      "path": ".",
      "name": "fast-jev-compaction",
      "description": "Verbatim Jev-guided compaction for Claude Code and Codex sessions.",
      "author": null,
      "homepage": "https://github.com/designnotdrum/fast-jev-compaction-codex",
      "url": "https://github.com/designnotdrum/fast-jev-compaction-codex",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-jev.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.http.fetch",
        "$.session.compact",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "extensions: Unknown field 'extensions'. Claude Code ignores it at load time.",
          "./fast-jev.ts env writes: nothing",
          "./fast-jev.ts env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-18T20:04:19Z",
      "createdAt": "2026-09-18T19:54:39Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "drewpayment/jev-route:.",
      "repo": "drewpayment/jev-route",
      "path": ".",
      "name": "jev-route",
      "description": "Routes each turn to the cheapest capable Claude model using Jev, TypeSafe's decision model. Toggle with /route.",
      "author": "Drew Payment",
      "homepage": "https://github.com/drewpayment/jev-route",
      "url": "https://github.com/drewpayment/jev-route",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "route"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.command.register",
        "$.http.fetch",
        "$.model.classify",
        "$.settings.read",
        "$.state.get",
        "$.state.set",
        "$.store.get",
        "$.store.set",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: jev-route.pending, jev-route.unbound, jev-route.last, jev-route.context",
          "./register.ts state writes: jev-route.context, jev-route.last, jev-route.pending, jev-route.unbound",
          "./register.ts state reads: jev-route.context, jev-route.last, jev-route.pending, jev-route.unbound"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "network",
          "drives Claude",
          "reads settings",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-29T03:09:35Z",
      "createdAt": "2026-09-29T01:29:22Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "galElmalah/claude-mods:claude-mermaid",
      "repo": "galElmalah/claude-mods",
      "path": "claude-mermaid",
      "name": "claude-mermaid",
      "description": "Mermaid diagrams in Claude Code: every ```mermaid block Claude writes is drawn as box art, in colour, right where the fence was in the transcript. Needs function hooks (early access) and an interactive terminal.",
      "author": "Gal Elmalah",
      "homepage": "https://github.com/galElmalah/claude-mods",
      "url": "https://github.com/galElmalah/claude-mods/tree/main/claude-mermaid",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "mermaid"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-mermaid\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it."
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AssistantMessage"
      ],
      "stars": 1,
      "pushedAt": "2026-09-15T19:47:38Z",
      "createdAt": "2026-09-14T21:01:27Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "galElmalah/claude-mods:claude-queue",
      "repo": "galElmalah/claude-mods",
      "path": "claude-queue",
      "name": "claude-queue",
      "description": "A prompt typed while Claude is working is held in a stack above the prompt instead of landing in the running turn, and sent once the turn ends. Reorder the stack, edit a row in place, send one first, remove one, flush the lot. Needs function hooks (early access) and an interactive terminal.",
      "author": "Gal Elmalah",
      "homepage": "https://github.com/galElmalah/claude-mods/tree/main/claude-queue",
      "url": "https://github.com/galElmalah/claude-mods/tree/main/claude-queue",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "classic.Stop",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "ui.focus",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "q"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.register",
        "$.command.run",
        "$.prompt.fill",
        "$.prompt.submit",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-queue\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it."
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "writes the prompt box",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "every tool call",
        "every prompt"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 1,
      "pushedAt": "2026-09-15T19:47:38Z",
      "createdAt": "2026-09-14T21:01:27Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "getexcited/stepwarden:.",
      "repo": "getexcited/stepwarden",
      "path": ".",
      "name": "stepwarden",
      "description": "Every tool call your agent makes, checked before it runs. Verifies each pending tool call against the session's plan using TypeSafe AI's Jev model, then allows it, asks you, or blocks it.",
      "author": "Stefan Trockel",
      "homepage": "https://github.com/getexcited/stepwarden",
      "url": "https://github.com/getexcited/stepwarden",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./verify.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "stepwarden"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.config.set",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.session.id",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.ui.ask",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./verify.ts env writes: nothing",
          "./verify.ts env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "writes files",
          "changes config",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-18T10:22:00Z",
      "createdAt": "2026-09-18T10:21:30Z",
      "license": "Apache-2.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "GGGODLIN/cc-mod-waitwhat:.",
      "repo": "GGGODLIN/cc-mod-waitwhat",
      "path": ".",
      "name": "cc-mod-waitwhat",
      "description": "Retell what Claude just said, in plain words: in the band above the prompt, or in a split pane when running under Herdr. Nothing enters the transcript or the model's context.",
      "author": "gggodlin",
      "homepage": "https://github.com/GGGODLIN/cc-mod-waitwhat",
      "url": "https://github.com/GGGODLIN/cc-mod-waitwhat",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.model.complete",
        "$.process.run",
        "$.prompt.read",
        "$.session.id",
        "$.session.messages",
        "$.session.surfaces",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: HERDR_PANE_ID, HERDR_WORKSPACE_ID, HOME, PWD, SIDECAR_API_KEY, SIDECAR_CMD, SIDECAR_MODEL, SIDECAR_PROXY, SIDECAR_SOURCE, WW_MODEL"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.prompt.read",
          "network",
          "runs processes",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 1,
      "pushedAt": "2026-09-29T02:30:20Z",
      "createdAt": "2026-09-15T07:44:34Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "giovaborgogno/cc-dino:.",
      "repo": "giovaborgogno/cc-dino",
      "path": ".",
      "name": "cc-dino",
      "description": "The T-rex from the browser's offline page, above the Claude Code prompt: jump cacti and duck birds while Claude works. Needs function hooks (early access) and an interactive terminal.",
      "author": "Giovanni Borgogno",
      "homepage": "https://giovaborgogno.com",
      "url": "https://github.com/giovaborgogno/cc-dino",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "dino"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.command.register",
        "$.http.fetch",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/dino.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 1,
      "pushedAt": "2026-09-15T19:43:16Z",
      "createdAt": "2026-09-15T18:24:32Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "jackboykin/quarry:plugin",
      "repo": "jackboykin/quarry",
      "path": "plugin",
      "name": "quarry",
      "description": "Adds Exa's results to WebSearch, and saves each WebFetch page to disk with the lines that answer the prompt",
      "author": "Jack Boykin",
      "homepage": "https://github.com/jackboykin/quarry",
      "url": "https://github.com/jackboykin/quarry/tree/master/plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "WebFetch"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "WebSearch"
          }
        }
      ],
      "calls": [
        "$.process.run",
        "$.tool.check"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "version: No version specified. Consider adding a version following semver (e.g., \"1.0.0\")"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.tool.check",
          "runs processes"
        ]
      },
      "sees": [
        "the system prompt",
        "WebFetch calls",
        "WebSearch calls"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-21T10:41:16Z",
      "createdAt": "2026-09-19T21:27:06Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "JayDoubleu/cc-mod-jev:.",
      "repo": "JayDoubleu/cc-mod-jev",
      "path": ".",
      "name": "jev-context",
      "description": "Jev-scored context pruning for Claude Code through OpenRouter: at compaction every tool call and result is scored by TypeSafe's Jev decision model, stale ones are dropped or truncated, everything kept stays verbatim. An optional gate truncates oversized tool outputs as they arrive.",
      "author": "Jay W",
      "homepage": "https://github.com/JayDoubleu/cc-mod-jev",
      "url": "https://github.com/JayDoubleu/cc-mod-jev",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./jev-context.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {
            "trigger": "precompute"
          }
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "jev"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.http.fetch",
        "$.session.compact",
        "$.session.messages",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "./jev-context.ts env writes: nothing",
          "./jev-context.ts env reads: EVAL_JEV_CONTEXT_BASE_URL, EVAL_JEV_CONTEXT_COMPACT_AT_PERCENT, EVAL_JEV_CONTEXT_GATE, EVAL_JEV_CONTEXT_GATE_HEAD_CHARS, EVAL_JEV_CONTEXT_GATE_MIN_CHARS, EVAL_JEV_CONTEXT_GATE_TAIL_CHARS, EVAL_JEV_CONTEXT_GATE_THRESHOLD, EVAL_JEV_CONTEXT_GATE_TOOLS, EVAL_JEV_CONTEXT_GOAL, EVAL_JEV_CONTEXT_KEEP_THRESHOLD, EVAL_JEV_CONTEXT_LOG, EVAL_JEV_CONTEXT_MAX_REQUEST_TOKENS, EVAL_JEV_CONTEXT_MAX_STATE_TOKENS, EVAL_JEV_CONTEXT_MIN_PAIR_CHARS, EVAL_JEV_CONTEXT_MIN_REDUCTION_RATIO, EVAL_JEV_CONTEXT_MODEL, EVAL_JEV_CONTEXT_PRESERVE_RECENT_MESSAGES, EVAL_JEV_CONTEXT_TRUNCATE_HEAD_CHARS, EVAL_OPENROUTER_API_KEY, JEV_CONTEXT_BASE_URL, JEV_CONTEXT_COMPACT_AT_PERCENT, JEV_CONTEXT_GATE, JEV_CONTEXT_GATE_HEAD_CHARS, JEV_CONTEXT_GATE_MIN_CHARS, JEV_CONTEXT_GATE_TAIL_CHARS, JEV_CONTEXT_GATE_THRESHOLD, JEV_CONTEXT_GATE_TOOLS, JEV_CONTEXT_GOAL, JEV_CONTEXT_KEEP_THRESHOLD, JEV_CONTEXT_LOG, JEV_CONTEXT_MAX_REQUEST_TOKENS, JEV_CONTEXT_MAX_STATE_TOKENS, JEV_CONTEXT_MIN_PAIR_CHARS, JEV_CONT… [+133 chars]"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "compaction",
        "every tool call"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-19T13:03:34Z",
      "createdAt": "2026-09-19T11:50:39Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Kiy-K/oxide:.agents/skills/jev-model-router",
      "repo": "Kiy-K/oxide",
      "path": ".agents/skills/jev-model-router",
      "name": "jev-model-router",
      "description": "Picks the model and the reasoning effort for each task with TypeSafe's Jev, a System One decision model reached either through TypeSafe's own API or the Vercel AI Gateway. Routes subagent models at agent.spawn and the main loop's effort and model at turn.step, in both directions, falling back to the engine's built-in classifier when no key is set.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/Kiy-K/oxide",
      "url": "https://github.com/Kiy-K/oxide/tree/main/.agents/skills/jev-model-router",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./jev-model-router.ts"
      ],
      "hooks": [
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.http.fetch",
        "$.model.classify",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-10-01T14:03:23Z",
      "createdAt": "2026-08-29T03:36:17Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "lmuehleisen/xo:.claude/mods/firstmate-calm",
      "repo": "lmuehleisen/xo",
      "path": ".claude/mods/firstmate-calm",
      "name": "fm",
      "description": "Firstmate Calm for Claude Code: the sailboat working animation and conversation-only transcript presentation, sharing the per-home config/calm preference with the Pi Calm extension. Its hooks module may load through CLAUDE_CODE_ENABLE_FUNCTION_HOOKS or Claude Code's tengu_plugin_hooks_modules rollout flag, but the mod activates only when CLAUDE_CODE_ENABLE_FUNCTION_HOOKS is exactly 1 and is otherwise a complete no-op.",
      "author": "Firstmate",
      "homepage": "https://github.com/lmuehleisen/xo",
      "url": "https://github.com/lmuehleisen/xo/tree/main/.claude/mods/firstmate-calm",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "calm"
          }
        },
        {
          "event": "config.set",
          "matcher": {
            "key": "theme"
          }
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Spinner"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolUse"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolResult"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolGroup"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "UserMessage"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.config.list",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.session.id",
        "$.session.messages",
        "$.store.get",
        "$.store.set",
        "$.ui.blit",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CODE_ENABLE_FUNCTION_HOOKS, FM_CONFIG_OVERRIDE, FM_HOME, FM_ROOT_OVERRIDE, FM_STATE_OVERRIDE"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Spinner",
        "ToolUse",
        "ToolResult",
        "ToolGroup",
        "UserMessage",
        "AssistantMessage"
      ],
      "stars": 1,
      "pushedAt": "2026-10-02T01:42:50Z",
      "createdAt": "2026-09-29T21:53:49Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "lukecameron/dotfiles:claude-mods/pacman",
      "repo": "lukecameron/dotfiles",
      "path": "claude-mods/pacman",
      "name": "pacman",
      "description": "/pacman: Pac-Man played over the conversation on screen, eating it character by character while Claude works; Esc puts it back. Needs function hooks (CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1).",
      "author": "Luke Cameron",
      "homepage": "https://github.com/lukecameron/dotfiles",
      "url": "https://github.com/lukecameron/dotfiles/tree/main/claude-mods/pacman",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "pacman"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "pacman"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.render",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane",
        "any component"
      ],
      "stars": 1,
      "pushedAt": "2026-09-30T01:01:26Z",
      "createdAt": "2015-10-04T03:27:22Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "lwyBZss8924d/ultrafast-atif-helper:upstream-reference",
      "repo": "lwyBZss8924d/ultrafast-atif-helper",
      "path": "upstream-reference",
      "name": "fast-jev-compaction",
      "description": "Verbatim Jev-guided compaction for Claude Code sessions.",
      "author": null,
      "homepage": "https://github.com/lwyBZss8924d/ultrafast-atif-helper",
      "url": "https://github.com/lwyBZss8924d/ultrafast-atif-helper/tree/main/upstream-reference",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-jev.ts"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "modules../fast-jev.ts: upstream-reference: /tmp/acm-clones/lwyBZss8924d__ultrafast-atif-helper/upstream-reference/hooks/fast-jev.ts: no such file"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-29T12:15:38Z",
      "createdAt": "2026-09-28T14:27:51Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "mahuebel/segmem:.",
      "repo": "mahuebel/segmem",
      "path": ".",
      "name": "segmem",
      "description": "Segmented, scoped memory for agents: one file, SQLite, no daemon. Wake at session start, recall on every prompt, staleness nag at stop.",
      "author": "Mark Huebel",
      "homepage": "https://github.com/mahuebel/segmem",
      "url": "https://github.com/mahuebel/segmem",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "hooks.ts"
      ],
      "hooks": [
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__segmem__recall"
          }
        }
      ],
      "calls": [
        "$.process.run",
        "$.session.cwd",
        "$.session.id",
        "$.tool.register",
        "$.ui.log",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "draws"
        ]
      },
      "sees": [
        "the system prompt",
        "every prompt",
        "subagent spawns",
        "Bash calls",
        "mcp__segmem__recall calls"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-30T04:18:03Z",
      "createdAt": "2026-08-21T22:09:08Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "manfye/cc-dino:.",
      "repo": "manfye/cc-dino",
      "path": ".",
      "name": "cc-dino",
      "description": "The Chrome offline dinosaur, above the Claude Code prompt. Jump the cacti and duck the pterodactyls while Claude works. Needs function hooks (early access) and an interactive terminal.",
      "author": "manfye",
      "homepage": "https://github.com/manfye/cc-dino",
      "url": "https://github.com/manfye/cc-dino",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "dino"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/dino.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 1,
      "pushedAt": "2026-09-15T16:41:00Z",
      "createdAt": "2026-09-15T16:37:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "meganemura/pull-request-pane:plugin",
      "repo": "meganemura/pull-request-pane",
      "path": "plugin",
      "name": "pull-request-pane",
      "description": "A pane beside the transcript with the GitHub pull requests and issues related to the current session: drag a title or description to leave a comment on it, add as many as you like, then Submit sends them all as one prompt. Watch each pull request's checks, review decision and mergeability update on a timer.",
      "author": "meganemura",
      "homepage": "https://github.com/meganemura/pull-request-pane",
      "url": "https://github.com/meganemura/pull-request-pane/tree/main/plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./mod.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "pull-request-pane"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "pull-request-pane"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "ui.message",
          "matcher": {
            "requestId": "pull-request-pane"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.process.run",
        "$.prompt.submit",
        "$.session.cwd",
        "$.session.messages",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [
        "hooks/description-selection.ts"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 1,
      "pushedAt": "2026-09-18T05:48:41Z",
      "createdAt": "2026-09-15T14:06:44Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "minipai/claudecafe:packages/persona-panel",
      "repo": "minipai/claudecafe",
      "path": "packages/persona-panel",
      "name": "persona-panel",
      "description": "Gives a Claude Code session a character persona, with a time-aware liveliness layer and a pixel portrait panel; bundles three characters from claudecafe.dev.",
      "author": "minipai",
      "homepage": "https://github.com/minipai/claudecafe",
      "url": "https://github.com/minipai/claudecafe/tree/main/packages/persona-panel",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./function/register.js"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "modules../function/register.js: persona-panel: cannot import \"../../../character-core/src/index.ts\" (from hooks/function/register.js): it is outside the plugin's folder (/tmp/acm-clones/minipai__claudecafe/packages/persona-panel)"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-30T12:04:45Z",
      "createdAt": "2026-08-21T09:28:46Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "mohi-devhub/claude-games:.",
      "repo": "mohi-devhub/claude-games",
      "path": ".",
      "name": "claude-games",
      "description": "Arcade games above the Claude Code prompt (a dodge race, Breakout, a dino runner and a side-scrolling shooter) that pause when Claude finishes a turn and react to the edits, tests and commits Claude makes. Needs function hooks (early access) and an interactive terminal.",
      "author": "mohi-devhub",
      "homepage": "https://github.com/mohi-devhub/claude-games",
      "url": "https://github.com/mohi-devhub/claude-games",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "racer"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "breakout"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "dino"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "shooter"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/breakout.tsx",
        "hooks/boards/dino.tsx",
        "hooks/boards/racer.tsx",
        "hooks/boards/shooter.tsx"
      ],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-games\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it."
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 1,
      "pushedAt": "2026-09-14T20:10:55Z",
      "createdAt": "2026-09-14T19:51:52Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "rlorenzo/ai-coding-setup:mods/explore-model",
      "repo": "rlorenzo/ai-coding-setup",
      "path": "mods/explore-model",
      "name": "explore-model",
      "description": "Pins the model that background recon subagents run on. An agent.spawn hook sets the Explore subagent's model to haiku, so a session driven by an expensive model stops billing its codebase searches at that tier, without shadowing the built-in agent definition and without the CLAUDE.md load a replacement definition would cost.",
      "author": "Rex Lorenzo",
      "homepage": "https://github.com/rlorenzo/ai-coding-setup#explore-model",
      "url": "https://github.com/rlorenzo/ai-coding-setup/tree/main/mods/explore-model",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "agent.spawn",
          "matcher": {
            "subagentType": "?"
          }
        }
      ],
      "calls": [
        "$.ui.notice"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "subagent spawns"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-28T20:17:34Z",
      "createdAt": "2026-02-20T02:39:01Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "rlorenzo/ai-coding-setup:mods/review-gate",
      "repo": "rlorenzo/ai-coding-setup",
      "path": "mods/review-gate",
      "name": "review-gate",
      "description": "The review gate as a tool.check function hook. Every shell call is decided in process, so the non-commit calls -- almost all of them -- cost no subprocess at all, and a blocked commit can be put to you as a question instead of refused outright. The decision itself is still bin/review-gate, run only for a command that mentions a commit, so both routes read the same receipts and cannot disagree.",
      "author": "Rex Lorenzo",
      "homepage": "https://github.com/rlorenzo/ai-coding-setup#review-gate-mod",
      "url": "https://github.com/rlorenzo/ai-coding-setup/tree/main/mods/review-gate",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "tool.check",
          "matcher": {
            "tool": "Bash|PowerShell"
          }
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.exists",
        "$.process.run",
        "$.session.cwd",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: AI_REVIEW_GATE_BIN, HOME, USERPROFILE"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-28T20:17:34Z",
      "createdAt": "2026-02-20T02:39:01Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "SaharCarmel/linear-mod:linear-mod",
      "repo": "SaharCarmel/linear-mod",
      "path": "linear-mod",
      "name": "linear",
      "description": "/linear: your Linear projects, milestones and issues in a pane beside the transcript. Read an issue, then press plan, execute or product to send a ready prompt about it into this session. A Claude Code function-hooks (Mods) plugin.",
      "author": "linear-mod contributors",
      "homepage": "https://github.com/SaharCarmel/linear-mod",
      "url": "https://github.com/SaharCarmel/linear-mod/tree/main/linear-mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "linear"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "linear"
          }
        },
        {
          "event": "ui.focus",
          "matcher": {
            "requestId": "linear"
          }
        },
        {
          "event": "ui.scroll",
          "matcher": {
            "requestId": "linear"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.http.fetch",
        "$.process.run",
        "$.prompt.fill",
        "$.prompt.submit",
        "$.session.cwd",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: LINEAR_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "drives Claude",
          "writes the prompt box",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 1,
      "pushedAt": "2026-09-17T13:36:54Z",
      "createdAt": "2026-09-17T13:36:48Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Sma1lboy/claude-mods:usageline",
      "repo": "Sma1lboy/claude-mods",
      "path": "usageline",
      "name": "usageline",
      "description": "A status line under the prompt: context, cache hit rate, cache TTL countdown, today's spend for this project, and why a turn missed the cache. /usage prints the project ledger.",
      "author": "sma1lboy",
      "homepage": "https://github.com/Sma1lboy/claude-mods",
      "url": "https://github.com/Sma1lboy/claude-mods/tree/main/usageline",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear|resume"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "usageline"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.fs.read",
        "$.process.run",
        "$.session.model",
        "$.session.repo",
        "$.session.root",
        "$.session.usage",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "compaction"
      ],
      "draws": [
        "PromptHint"
      ],
      "stars": 1,
      "pushedAt": "2026-09-26T05:22:58Z",
      "createdAt": "2026-09-26T05:17:40Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "synex1437/noctis:.",
      "repo": "synex1437/noctis",
      "path": ".",
      "name": "noctis",
      "description": "Runs long Claude Code jobs overnight within your usage limits: pauses just before the 5-hour or weekly limit, resumes the same session after the reset (or relaunches it days later) and works through a list of jobs you hand it with /noctis:start <file>. Also runs in Codex CLI, Antigravity CLI, Droid and Copilot CLI.",
      "author": "synex",
      "homepage": "https://github.com/synex1437/noctis",
      "url": "https://github.com/synex1437/noctis",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./lean.js"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.session.compact",
        "$.session.id",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./lean.js env writes: nothing",
          "./lean.js env reads: CLAUDE_CODE_CUSTOM_OAUTH_URL, CLAUDE_CONFIG_DIR, DISABLE_AUTO_COMPACT, DISABLE_COMPACT, DISABLE_PROMPT_CACHING, HOME, USERPROFILE"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-10-02T00:55:40Z",
      "createdAt": "2026-09-19T21:33:24Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "TransmuteLabs/Catalyst-CC-Patch:tools/spawn-site-probe/plugin",
      "repo": "TransmuteLabs/Catalyst-CC-Patch",
      "path": "tools/spawn-site-probe/plugin",
      "name": "spawnprobe",
      "description": "Measurement instrument for the agent.spawn function-hook site. Not a product mod.",
      "author": "Catalyst-CC-Patch",
      "homepage": "https://github.com/TransmuteLabs/Catalyst-CC-Patch",
      "url": "https://github.com/TransmuteLabs/Catalyst-CC-Patch/tree/main/tools/spawn-site-probe/plugin",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "agent.spawn",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.spawn",
        "$.clock.now",
        "$.env.get",
        "$.fs.write",
        "$.model.complete"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_SPAWNPROBE, CLAUDE_SPAWNPROBE_OUT"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude",
          "reads env vars"
        ]
      },
      "sees": [
        "subagent spawns"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-10-01T11:24:10Z",
      "createdAt": "2026-08-24T21:15:50Z",
      "license": "NOASSERTION",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "unclecode/jevshift:.",
      "repo": "unclecode/jevshift",
      "path": ".",
      "name": "jevshift",
      "description": "Experimental Jev-assisted model and effort selection for Claude Code: observe, pin, off, and opt-in auto.",
      "author": "JevShift contributors",
      "homepage": "https://github.com/unclecode/jevshift",
      "url": "https://github.com/unclecode/jevshift",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "classic.PostModelSwitch",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.process.run",
        "$.session.id",
        "$.session.messages",
        "$.session.model",
        "$.store.get",
        "$.store.set",
        "$.turn.abort",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, OPENROUTER_API_KEY"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads env vars",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "classic hooks",
        "compaction"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-23T01:03:34Z",
      "createdAt": "2026-09-22T12:31:54Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "void2610/dotfiles:.claude/mods/artifact-archive",
      "repo": "void2610/dotfiles",
      "path": ".claude/mods/artifact-archive",
      "name": "artifact-archive",
      "description": "一時ディレクトリ (tmp/scratchpad) からの Artifact publish を拒否し ~/Documents/claude-artifacts への保存へ誘導する",
      "author": "void2610",
      "homepage": "https://github.com/void2610/dotfiles",
      "url": "https://github.com/void2610/dotfiles/tree/main/.claude/mods/artifact-archive",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^Artifact$\"/"
          }
        }
      ],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [
        "/\"^Artifact$\"/ calls"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-27T15:35:55Z",
      "createdAt": "2025-03-12T08:37:48Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "void2610/dotfiles:.claude/mods/git-context",
      "repo": "void2610/dotfiles",
      "path": ".claude/mods/git-context",
      "name": "git-context",
      "description": "会話の最初のメッセージに現在ブランチ・git status・main からの差分コミットを注入する",
      "author": "void2610",
      "homepage": "https://github.com/void2610/dotfiles",
      "url": "https://github.com/void2610/dotfiles/tree/main/.claude/mods/git-context",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "prompt.context",
          "matcher": {}
        }
      ],
      "calls": [
        "$.process.run"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes"
        ]
      },
      "sees": [
        "the system prompt"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-27T15:35:55Z",
      "createdAt": "2025-03-12T08:37:48Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "void2610/dotfiles:.claude/mods/guards",
      "repo": "void2610/dotfiles",
      "path": ".claude/mods/guards",
      "name": "guards",
      "description": "dotfiles のガード群 (git 操作のスキル強制・ブランチロック・コメント規約・文脈注入)。機能ごとに hooks/ 配下の 1 ファイル",
      "author": "void2610",
      "homepage": "https://github.com/void2610/dotfiles",
      "url": "https://github.com/void2610/dotfiles/tree/main/.claude/mods/guards",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.read",
        "$.process.run"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./index.ts env writes: nothing",
          "./index.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads files",
          "reads env vars"
        ]
      },
      "sees": [
        "every prompt",
        "Bash calls",
        "Edit calls",
        "Write calls"
      ],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-27T15:35:55Z",
      "createdAt": "2025-03-12T08:37:48Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "void2610/dotfiles:.claude/mods/ntfy-notify",
      "repo": "void2610/dotfiles",
      "path": ".claude/mods/ntfy-notify",
      "name": "ntfy-notify",
      "description": "メインループのターン完了を notify.sh 経由で ntfy.sh へプッシュ通知する",
      "author": "void2610",
      "homepage": "https://github.com/void2610/dotfiles",
      "url": "https://github.com/void2610/dotfiles/tree/main/.claude/mods/ntfy-notify",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.process.run"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./index.ts env writes: nothing",
          "./index.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads env vars"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-27T15:35:55Z",
      "createdAt": "2025-03-12T08:37:48Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "void2610/dotfiles:.claude/mods/pr-watch",
      "repo": "void2610/dotfiles",
      "path": ".claude/mods/pr-watch",
      "name": "pr-watch",
      "description": "現在ブランチの OPEN PR を常駐監視し、CI fail / Copilot レビュー到着でセッションを起こす (pr-create の background スクリプト置き換え)",
      "author": "void2610",
      "homepage": "https://github.com/void2610/dotfiles",
      "url": "https://github.com/void2610/dotfiles/tree/main/.claude/mods/pr-watch",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "pr-watch"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.process.run",
        "$.prompt.submit",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 1,
      "pushedAt": "2026-09-27T15:35:55Z",
      "createdAt": "2025-03-12T08:37:48Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "void2610/dotfiles:.claude/mods/scratchpad-open",
      "repo": "void2610/dotfiles",
      "path": ".claude/mods/scratchpad-open",
      "name": "scratchpad-open",
      "description": "現セッションの scratchpad を Finder で開くボタンと /scratchpad コマンド",
      "author": "void2610",
      "homepage": "https://github.com/void2610/dotfiles",
      "url": "https://github.com/void2610/dotfiles/tree/main/.claude/mods/scratchpad-open",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "scratchpad"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.process.run",
        "$.session.id",
        "$.session.root",
        "$.ui.invalidate",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 1,
      "pushedAt": "2026-09-27T15:35:55Z",
      "createdAt": "2025-03-12T08:37:48Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "void2610/dotfiles:.claude/mods/ship-hud",
      "repo": "void2610/dotfiles",
      "path": ".claude/mods/ship-hud",
      "name": "ship-hud",
      "description": "ship フローの状態機械をペインで可視化する。/ship-hud でトグル、進行中フローがあれば自動で開く。モデル向けに status ツールも提供",
      "author": "void2610",
      "homepage": "https://github.com/void2610/dotfiles",
      "url": "https://github.com/void2610/dotfiles/tree/main/.claude/mods/ship-hud",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "ship-hud"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__ship-hud__status$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__ship-hud__(init|done|skip)$\"/"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.env.get",
        "$.process.run",
        "$.tool.register",
        "$.ui.invalidate",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./index.tsx env writes: nothing",
          "./index.tsx env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "/\"^mcp__ship-hud__status$\"/ calls",
        "/\"^mcp__ship-hud__(init|done|skip)$\"/ calls"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 1,
      "pushedAt": "2026-09-27T15:35:55Z",
      "createdAt": "2025-03-12T08:37:48Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "void2610/dotfiles:.claude/mods/turn-timer",
      "repo": "void2610/dotfiles",
      "path": ".claude/mods/turn-timer",
      "name": "turn-timer",
      "description": "各ターンの所要時間とトークン消費をトーストで表示する",
      "author": "void2610",
      "homepage": "https://github.com/void2610/dotfiles",
      "url": "https://github.com/void2610/dotfiles/tree/main/.claude/mods/turn-timer",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 1,
      "pushedAt": "2026-09-27T15:35:55Z",
      "createdAt": "2025-03-12T08:37:48Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "yoshihiko555/dotfiles:claude/plugins/turn-receipt",
      "repo": "yoshihiko555/dotfiles",
      "path": "claude/plugins/turn-receipt",
      "name": "turn-receipt",
      "description": "Keeps a per-turn tally of edits, runs, curls and destructive commands and shows it on the turn footer; any non-read-only Bash counts as a run, a claim (English or Japanese) with no run flags the spinner, a destructive Bash unfolds its tool group, and an edit-without-run turn suggests running the tests.",
      "author": "yoshihiko555",
      "homepage": "https://github.com/yoshihiko555/dotfiles",
      "url": "https://github.com/yoshihiko555/dotfiles/tree/main/claude/plugins/turn-receipt",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "turn-receipt"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.suggest",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Spinner"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "TurnDuration"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolGroup"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.prompt.suggest",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "version: No version specified. Consider adding a version following semver (e.g., \"1.0.0\")",
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_MODS_DISABLE"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "writes the prompt box",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [
        "Spinner",
        "TurnDuration",
        "ToolGroup"
      ],
      "stars": 1,
      "pushedAt": "2026-10-01T16:18:37Z",
      "createdAt": "2026-01-13T17:59:50Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Ahmad8864/cc-side:.",
      "repo": "Ahmad8864/cc-side",
      "path": ".",
      "name": "cc-side",
      "description": "A separate agent conversation in Claude Code's right-hand pane, forked from the current context.",
      "author": "Ahmad",
      "homepage": "https://github.com/Ahmad8864/cc-side",
      "url": "https://github.com/Ahmad8864/cc-side",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "side"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.message",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "classic.Stop",
          "matcher": {}
        },
        {
          "event": "ui.scroll",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "side"
          }
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.register",
        "$.env.get",
        "$.fs.write",
        "$.http.fetch",
        "$.process.run",
        "$.prompt.fill",
        "$.prompt.read",
        "$.session.cwd",
        "$.session.id",
        "$.session.messages",
        "$.session.model",
        "$.settings.read",
        "$.store.get",
        "$.store.set",
        "$.tool.list",
        "$.ui.close",
        "$.ui.copy",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.scroll"
      ],
      "surfaceModules": [
        "hooks/composer.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: CC_SIDE_BUN, CC_SIDE_TEST, CC_SIDE_TRACE, CC_SIDE_WORKER"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.prompt.read",
          "other: $.tool.list",
          "network",
          "runs processes",
          "writes files",
          "writes the prompt box",
          "reads env vars",
          "reads settings",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-10-01T17:04:56Z",
      "createdAt": "2026-09-22T22:43:43Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ak110/dotfiles:agent-toolkit",
      "repo": "ak110/dotfiles",
      "path": "agent-toolkit",
      "name": "agent-toolkit",
      "description": "Agent Plugins、Claude Code、Codex向けの品質支援プラグイン。コードと文書を扱う作業、計画やバグ調査の指針を示し、フックで入力と操作を確かめる。",
      "author": "aki",
      "homepage": "https://github.com/ak110/dotfiles",
      "url": "https://github.com/ak110/dotfiles/tree/master/agent-toolkit",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./session_exit.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.run",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.session.id",
        "$.tool.call",
        "$.tool.check"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./session_exit.ts env writes: nothing",
          "./session_exit.ts env reads: CLAUDE_CONFIG_DIR, HOME, USERPROFILE"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.tool.check",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-02T00:54:55Z",
      "createdAt": "2017-11-12T05:36:01Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "akparhi/context-engineering:plugins/switchboard",
      "repo": "akparhi/context-engineering",
      "path": "plugins/switchboard",
      "name": "switchboard",
      "description": "Shared Switchboard gateway, setup, status and reversible Claude startup integration.",
      "author": "akparhi",
      "homepage": "https://github.com/akparhi/context-engineering",
      "url": "https://github.com/akparhi/context-engineering/tree/main/plugins/switchboard",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "classic.PreToolUse",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "switchboard-usage"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.message",
          "matcher": {
            "source": "client"
          }
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.detach",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "agent.offer",
          "matcher": {}
        },
        {
          "event": "classic.SubagentStart",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "classic.UserPromptSubmit",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.http.fetch",
        "$.session.cwd",
        "$.session.id",
        "$.session.model",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [
        "hooks/usage-view.ts"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: SWITCHBOARD_GATEWAY_TOKEN, SWITCHBOARD_MOD_GATEWAY_URL, SWITCHBOARD_OPENAI_MODELS"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "compaction",
        "subagent spawns"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-10-01T08:25:34Z",
      "createdAt": "2026-08-12T10:20:48Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Alexander-Prime/revdiff-relay:.",
      "repo": "Alexander-Prime/revdiff-relay",
      "path": ".",
      "name": "revdiff-relay",
      "description": "Annotate diffs in a floating Zellij revdiff pane; each flush is relayed into your Claude Code session",
      "author": "Alex",
      "homepage": "https://github.com/Alexander-Prime/revdiff-relay",
      "url": "https://github.com/Alexander-Prime/revdiff-relay",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "classic.UserPromptSubmit",
          "matcher": {}
        },
        {
          "event": "classic.FileChanged",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "revdiff"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.process.run",
        "$.prompt.submit",
        "$.session.cwd",
        "$.session.id",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "version: No version specified. Consider adding a version following semver (e.g., \"1.0.0\")",
          "./register.ts env writes: nothing",
          "./register.ts env reads: EDITOR, PATH, REVDIFF_POPUP_HEIGHT, REVDIFF_POPUP_WIDTH, VISUAL, ZELLIJ"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-02T01:13:26Z",
      "createdAt": "2026-08-09T06:23:29Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "alexandernicholson/agent-router:agent-router",
      "repo": "alexandernicholson/agent-router",
      "path": "agent-router",
      "name": "agent-router",
      "description": "Choose subagent models with /agent-models and click the prompt panel to inspect activity, token usage, and routing. Requires Claude Code Mod function hooks enabled.",
      "author": "Alexander Nicholson",
      "homepage": "https://github.com/alexandernicholson/agent-router",
      "url": "https://github.com/alexandernicholson/agent-router/tree/main/agent-router",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "agent-models-apply"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "agent-models"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "agent-models"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.agent.list",
        "$.clock.every",
        "$.command.register",
        "$.config.list",
        "$.config.set",
        "$.env.get",
        "$.env.set",
        "$.process.run",
        "$.session.id",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: CLAUDE_CODE_SUBAGENT_MODEL",
          "./register.ts env reads: ANTHROPIC_BASE_URL, CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS, CLAUDE_CODE_SUBAGENT_MODEL"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "sets env vars",
          "changes config",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "subagent spawns"
      ],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-23T08:32:19Z",
      "createdAt": "2026-09-16T01:28:28Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "aliir74/claude-code-rtl:.",
      "repo": "aliir74/claude-code-rtl",
      "path": ".",
      "name": "rtl-text",
      "description": "Shapes and reorders Persian, Arabic and Hebrew text in the transcript through fribidi so the terminal draws it joined, right-to-left and right-aligned.",
      "author": "Ali Irani",
      "homepage": "https://github.com/aliir74/claude-code-rtl",
      "url": "https://github.com/aliir74/claude-code-rtl",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "UserMessage"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "CommandOutput"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolResult"
          }
        }
      ],
      "calls": [
        "$.process.run",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead."
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AssistantMessage",
        "UserMessage",
        "CommandOutput",
        "ToolResult"
      ],
      "stars": 0,
      "pushedAt": "2026-09-18T17:04:34Z",
      "createdAt": "2026-09-16T14:58:36Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "AnatoliyShk/bulgolingo:.claude/skills/jev-skill-suggestion",
      "repo": "AnatoliyShk/bulgolingo",
      "path": ".claude/skills/jev-skill-suggestion",
      "name": "jev-skill-suggestion",
      "description": "Keeps the skill listing out of the context window and lets TypeSafe's Jev, a System One decision model, pick at most one skill per prompt from the skills' descriptions, the way TypeSafe's skill-suggestion cookbook does: one request ranks every skill and asks whether the prompt needs a skill at all, a second re-reads the top three with their SKILL.md and can reject them all. The winner's SKILL.md is attached to the prompt, so the skills can be hidden from the model altogether (/jev-skill-suggestion:setup makes them user-invocable-only and /context counts them at 0). Falls back to the engine's built-in classifier when no key is set.",
      "author": "claude-code-templates",
      "homepage": "https://github.com/AnatoliyShk/bulgolingo",
      "url": "https://github.com/AnatoliyShk/bulgolingo/tree/main/.claude/skills/jev-skill-suggestion",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./jev-skill-suggestion.ts"
      ],
      "hooks": [
        {
          "event": "prompt.attachment",
          "matcher": {
            "type": "skill_listing"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "skill.prompt",
          "matcher": {
            "skill": "jev-skill-suggestion:setup"
          }
        },
        {
          "event": "skill.prompt",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.command.list",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.http.fetch",
        "$.model.classify",
        "$.session.cwd",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./jev-skill-suggestion.ts env writes: nothing",
          "./jev-skill-suggestion.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "compaction",
        "the jev-skill-suggestion:setup skill",
        "every skill"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T22:39:16Z",
      "createdAt": "2026-05-23T19:05:04Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "AnExiledDev/compact-handoff-plugin:.",
      "repo": "AnExiledDev/compact-handoff-plugin",
      "path": ".",
      "name": "compact-handoff",
      "description": "Replaces the engine's compaction with a subagent's handoff, and measures whether it can be one",
      "author": "AnExiledDev",
      "homepage": "https://github.com/AnExiledDev/compact-handoff-plugin",
      "url": "https://github.com/AnExiledDev/compact-handoff-plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "module.js"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "agent.offer",
          "matcher": {
            "agent": "compact-handoff:handoff"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__compact-handoff__force_compact"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__compact-handoff__refresh_handoff"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__compact-handoff__probe_spawn"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__compact-handoff__probe_budget"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__compact-handoff__ab_fork"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__compact-handoff__handoff_status"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__compact-handoff__handoff_list"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__compact-handoff__handoff_lookup"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__compact-handoff__handoff_search"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__compact-handoff__handoff_feedback"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {
            "trigger": "precompute"
          }
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "engine.create",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.list",
        "$.agent.register",
        "$.agent.spawn",
        "$.clock.sleep",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.model.complete",
        "$.model.fork",
        "$.process.run",
        "$.session.compact",
        "$.session.cwd",
        "$.session.id",
        "$.session.messages"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/compact-handoff.d.ts declares on $: $.compactHandoff",
          "module.js env writes: nothing",
          "module.js env reads: CLAUDE_CODE_VERSION, COMPACT_HANDOFF_AB_STOCK_SHARE, COMPACT_HANDOFF_DATA_DIR, COMPACT_HANDOFF_DEV, COMPACT_HANDOFF_LIVE, COMPACT_HANDOFF_MAX_CHARS, COMPACT_HANDOFF_MAX_FRACTION, COMPACT_HANDOFF_MAX_TOKENS, COMPACT_HANDOFF_MODEL, COMPACT_HANDOFF_REFRESH, COMPACT_HANDOFF_REFRESH_MS, COMPACT_HANDOFF_RESTORE_FILES, COMPACT_HANDOFF_RESTORE_FILE_CHARS, COMPACT_HANDOFF_RESTORE_TOTAL_CHARS, COMPACT_HANDOFF_SEAM_TIMEOUT_MS, COMPACT_HANDOFF_SUBAGENTS, HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.agent.register",
          "runs processes",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads the transcript"
        ]
      },
      "sees": [
        "mcp__compact-handoff__force_compact calls",
        "mcp__compact-handoff__refresh_handoff calls",
        "mcp__compact-handoff__probe_spawn calls",
        "mcp__compact-handoff__probe_budget calls",
        "mcp__compact-handoff__ab_fork calls",
        "mcp__compact-handoff__handoff_status calls",
        "mcp__compact-handoff__handoff_list calls",
        "mcp__compact-handoff__handoff_lookup calls",
        "mcp__compact-handoff__handoff_search calls",
        "mcp__compact-handoff__handoff_feedback calls",
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-28T18:11:37Z",
      "createdAt": "2026-09-14T22:25:33Z",
      "license": "NOASSERTION",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "anshc022/laya-claude-code:plugins/laya",
      "repo": "anshc022/laya-claude-code",
      "path": "plugins/laya",
      "name": "laya",
      "description": "Runs the Laya decision model on your machine: checks each prompt, hints Claude at the right folder and task type, gives Claude a fast laya decide tool, and shows every decision in a band above the prompt.",
      "author": "Pranshu Chourasia",
      "homepage": "https://github.com/anshc022/laya-claude-code",
      "url": "https://github.com/anshc022/laya-claude-code/tree/main/plugins/laya",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__laya__decide"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "laya"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "laya"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.env.get",
        "$.fs.list",
        "$.http.fetch",
        "$.process.run",
        "$.process.spawn",
        "$.session.cwd",
        "$.state.get",
        "$.state.set",
        "$.store.get",
        "$.store.set",
        "$.tool.register",
        "$.ui.close",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: laya.server, laya.recent, laya.stats, laya.bandHidden",
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: HOME, USERPROFILE",
          "./register.tsx state writes: laya.bandHidden, laya.recent, laya.server, laya.stats",
          "./register.tsx state reads: laya.bandHidden, laya.recent, laya.server, laya.stats"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.process.spawn",
          "other: $.state.get",
          "other: $.state.set",
          "network",
          "runs processes",
          "drives Claude",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "mcp__laya__decide calls"
      ],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-28T16:45:27Z",
      "createdAt": "2026-09-28T16:42:06Z",
      "license": "Apache-2.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "aryanvisualize/Understanding-Jev:Instant_Compaction_for_Claude",
      "repo": "aryanvisualize/Understanding-Jev",
      "path": "Instant_Compaction_for_Claude",
      "name": "fast-jev-compaction",
      "description": "Verbatim Jev-guided compaction for Claude Code sessions.",
      "author": null,
      "homepage": "https://github.com/aryanvisualize/Understanding-Jev",
      "url": "https://github.com/aryanvisualize/Understanding-Jev/tree/main/Instant_Compaction_for_Claude",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-jev.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.http.fetch",
        "$.session.compact",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./fast-jev.ts env writes: nothing",
          "./fast-jev.ts env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-28T20:07:19Z",
      "createdAt": "2026-09-28T20:07:14Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "axisrow/tg_messenger:claude-plugin",
      "repo": "axisrow/tg_messenger",
      "path": "claude-plugin",
      "name": "tg-messenger",
      "description": "Telegram inside Claude Code: /tg opens a pane wired to tg-messenger serve (issues #246, #247).",
      "author": "axisrow",
      "homepage": "https://github.com/axisrow/tg_messenger",
      "url": "https://github.com/axisrow/tg_messenger/tree/main/claude-plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "tg"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "tg"
          }
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.command.register",
        "$.process.spawn",
        "$.state.get",
        "$.state.set",
        "$.ui.close",
        "$.ui.log",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: tg-messenger.messages, tg-messenger.draft, tg-messenger.pendingSend, tg-messenger.paletteFor",
          "./register.tsx state writes: tg-messenger.draft, tg-messenger.messages, tg-messenger.paletteFor, tg-messenger.pendingSend",
          "./register.tsx state reads: tg-messenger.draft, tg-messenger.messages, tg-messenger.paletteFor, tg-messenger.pendingSend"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.process.spawn",
          "other: $.state.get",
          "other: $.state.set",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-10-01T17:31:53Z",
      "createdAt": "2026-06-10T10:11:25Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "azkhh/drift:.",
      "repo": "azkhh/drift",
      "path": ".",
      "name": "drift",
      "description": "Are you moving or hiding in the dark? Watches the session for shipped work (commits, pushes, deploys, passing tests) against edits to tooling, config and docs, and says so in one quiet line when you have been in the dark too long. Zero model tokens, no network, nothing leaves your machine.",
      "author": "Asmir Khan",
      "homepage": "https://github.com/azkhh/drift",
      "url": "https://github.com/azkhh/drift",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "drift"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.session.repo",
        "$.session.root",
        "$.state.get",
        "$.state.set",
        "$.store.get",
        "$.store.set",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./hooks/state.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./hooks/state.d.ts declares state: drift.band",
          "./register.ts state writes: drift.band",
          "./register.ts state reads: drift.band"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 0,
      "pushedAt": "2026-10-01T21:50:21Z",
      "createdAt": "2026-10-01T21:50:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "bahaospanov/claude-mods:git-gates",
      "repo": "bahaospanov/claude-mods",
      "path": "git-gates",
      "name": "git-gates",
      "description": "Gates git work: no commit, push or merge without the user's say-so in their latest message; a push to a branch that already landed is refused; a pushed series must leave the project working at every commit; commit messages (format and the issue it is about, then a Haiku review of the body) and MR descriptions kept tidy.",
      "author": "Bakhtiyar Ospanov",
      "homepage": "https://github.com/bahaospanov/claude-mods",
      "url": "https://github.com/bahaospanov/claude-mods/tree/main/git-gates",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__(plugin_)?git-gates__grant$\"/"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.env.get",
        "$.fs.read",
        "$.model.complete",
        "$.process.run",
        "$.session.cwd",
        "$.session.messages",
        "$.tool.register",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "/\"^mcp__(plugin_)?git-gates__grant$\"/ calls",
        "Bash calls"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T12:50:52Z",
      "createdAt": "2026-09-16T10:21:47Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "bahaospanov/claude-mods:lean-comments",
      "repo": "bahaospanov/claude-mods",
      "path": "lean-comments",
      "name": "lean-comments",
      "description": "Comments worth keeping: limit-edits flags comment-heavy edits, limit-turns sends a follow-up when a turn's diff adds too many comments.",
      "author": "Bakhtiyar Ospanov",
      "homepage": "https://github.com/bahaospanov/claude-mods",
      "url": "https://github.com/bahaospanov/claude-mods/tree/main/lean-comments",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash|Write|Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write|Edit"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.fs.read",
        "$.process.run",
        "$.prompt.submit",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads files",
          "draws"
        ]
      },
      "sees": [
        "Bash|Write|Edit calls",
        "Write|Edit calls"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T12:50:52Z",
      "createdAt": "2026-09-16T10:21:47Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "bahaospanov/claude-mods:lean-docs",
      "repo": "bahaospanov/claude-mods",
      "path": "lean-docs",
      "name": "lean-docs",
      "description": "Docs worth keeping: docs-review asks Haiku whether new text will be read again, docs-no-repeat-code blocks lines that restate code, limit-docs sends a follow-up when a turn adds too much prose.",
      "author": "Bakhtiyar Ospanov",
      "homepage": "https://github.com/bahaospanov/claude-mods",
      "url": "https://github.com/bahaospanov/claude-mods/tree/main/lean-docs",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash|Write|Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write|Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write|Edit"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.env.get",
        "$.fs.read",
        "$.model.complete",
        "$.process.run",
        "$.prompt.submit",
        "$.session.cwd",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME, TMPDIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "Bash|Write|Edit calls",
        "Write|Edit calls"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T12:50:52Z",
      "createdAt": "2026-09-16T10:21:47Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "bahaospanov/claude-mods:lean-scripts",
      "repo": "bahaospanov/claude-mods",
      "path": "lean-scripts",
      "name": "lean-scripts",
      "description": "Scripts worth keeping: scripts-review asks Haiku whether a new script could just be typed again when needed.",
      "author": "Bakhtiyar Ospanov",
      "homepage": "https://github.com/bahaospanov/claude-mods",
      "url": "https://github.com/bahaospanov/claude-mods/tree/main/lean-scripts",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write|Edit"
          }
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.read",
        "$.model.complete",
        "$.process.run",
        "$.session.cwd",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME, TMPDIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "Write|Edit calls"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T12:50:52Z",
      "createdAt": "2026-09-16T10:21:47Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "bannzai/SecChain:skills/secchain/hooks/mods",
      "repo": "bannzai/SecChain",
      "path": "skills/secchain/hooks/mods",
      "name": "secchain-mask",
      "description": "Hides SecChain's secret values in prompts, tool results and instructions before the model reads them, through secchain mask.",
      "author": "bannzai",
      "homepage": "https://github.com/bannzai/SecChain",
      "url": "https://github.com/bannzai/SecChain/tree/main/skills/secchain/hooks/mods",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./mask.ts"
      ],
      "hooks": [
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "prompt.section",
          "matcher": {}
        },
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "prompt.attachment",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.exists",
        "$.process.spawn",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./mask.ts env writes: nothing",
          "./mask.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.process.spawn",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call",
        "the system prompt"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-30T19:02:29Z",
      "createdAt": "2026-09-17T06:29:58Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "barisdemirhan/claude-dino:.",
      "repo": "barisdemirhan/claude-dino",
      "path": ".",
      "name": "dino",
      "description": "A T-Rex runner in a pane, inspired by Chrome's offline game: /dino, then space to jump, s to duck and p to pause while Claude works",
      "author": "Barış Demirhan",
      "homepage": "https://github.com/barisdemirhan/claude-dino",
      "url": "https://github.com/barisdemirhan/claude-dino",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "dino"
          }
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "classic.Notification",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "dino"
          }
        }
      ],
      "calls": [
        "$.audio.play",
        "$.command.register",
        "$.http.fetch",
        "$.state.get",
        "$.state.set",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/dino.tsx",
        "hooks/mini.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: dino.input, dino.feed, dino.alert, dino.settings, dino.best, dino.offer, dino.board, dino.standing",
          "./register.tsx state writes: dino.alert, dino.best, dino.board, dino.feed, dino.input, dino.offer, dino.settings, dino.standing",
          "./register.tsx state reads: dino.alert, dino.best, dino.board, dino.feed, dino.input, dino.offer, dino.settings, dino.standing"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "network",
          "plays audio",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "classic hooks"
      ],
      "draws": [
        "PromptHint",
        "AbovePrompt",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-10-02T00:55:21Z",
      "createdAt": "2026-10-01T20:06:13Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "barisdemirhan/claude-pomodoro:.",
      "repo": "barisdemirhan/claude-pomodoro",
      "path": ".",
      "name": "pomodoro",
      "description": "A pomodoro timer on the prompt's hint line: /pomodoro start, and the break toast lands while Claude works",
      "author": "Barış Demirhan",
      "homepage": "https://github.com/barisdemirhan/claude-pomodoro",
      "url": "https://github.com/barisdemirhan/claude-pomodoro",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "pomodoro"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "classic.Notification",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "SessionMode"
          }
        }
      ],
      "calls": [
        "$.audio.play",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.state.get",
        "$.state.set",
        "$.store.get",
        "$.store.set",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: pomodoro.label",
          "./register.ts state writes: pomodoro.label",
          "./register.ts state reads: pomodoro.label"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "plays audio",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [
        "PromptHint",
        "SessionMode"
      ],
      "stars": 0,
      "pushedAt": "2026-10-01T22:26:13Z",
      "createdAt": "2026-10-01T22:22:41Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Bobby-cell-commits/named-subagents:probes/mods-naming-probe",
      "repo": "Bobby-cell-commits/named-subagents",
      "path": "probes/mods-naming-probe",
      "name": "mods-naming-probe",
      "description": "Throwaway probe: can function hooks (agent.spawn / $.agent.register / turn.complete) give parallel subagents distinct visible names? Writes JSONL markers on every hook fire.",
      "author": "named-subagents (probe)",
      "homepage": "https://github.com/Bobby-cell-commits/named-subagents",
      "url": "https://github.com/Bobby-cell-commits/named-subagents/tree/master/probes/mods-naming-probe",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./probe.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "agent.offer",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Agent"
          }
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.list",
        "$.agent.register",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.agent.register",
          "writes files",
          "reads files"
        ]
      },
      "sees": [
        "Agent calls",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-26T21:53:17Z",
      "createdAt": "2026-07-10T05:57:46Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "Bobby-cell-commits/named-subagents:probes/naming-alternatives/mods-jit",
      "repo": "Bobby-cell-commits/named-subagents",
      "path": "probes/naming-alternatives/mods-jit",
      "name": "n",
      "description": "Throwaway probe: just-in-time callsign registration inside agent.spawn, hidden by agent.offer.",
      "author": "named-subagents (probe)",
      "homepage": "https://github.com/Bobby-cell-commits/named-subagents",
      "url": "https://github.com/Bobby-cell-commits/named-subagents/tree/master/probes/naming-alternatives/mods-jit",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./jit.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "agent.offer",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Agent"
          }
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.register",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.agent.register",
          "writes files",
          "reads files"
        ]
      },
      "sees": [
        "Agent calls",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-26T21:53:17Z",
      "createdAt": "2026-07-10T05:57:46Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "Camellia-inc/usage-guard:.",
      "repo": "Camellia-inc/usage-guard",
      "path": ".",
      "name": "usage-guard",
      "description": "Claude の5時間の使用量の上限を status line に出し、しきい値を超えたらツールとプロンプトを止める mod",
      "author": "Camellia",
      "homepage": "https://github.com/Camellia-inc/usage-guard",
      "url": "https://github.com/Camellia-inc/usage-guard",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.measure",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.session.usage",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "every prompt"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-02T00:56:06Z",
      "createdAt": "2026-10-02T00:56:01Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ChaseWNorton/claude-doom:.",
      "repo": "ChaseWNorton/claude-doom",
      "path": ".",
      "name": "doom",
      "description": "The original Doom engine, with Freedoom Phase 1, playable inside Claude Code. Run /doom.",
      "author": "Chase Norton",
      "homepage": "https://github.com/ChaseWNorton/claude-doom",
      "url": "https://github.com/ChaseWNorton/claude-doom",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "doom"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.http.fetch",
        "$.process.run",
        "$.ui.blit",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [
        "hooks/controls.ts"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-20T02:14:19Z",
      "createdAt": "2026-09-20T02:05:28Z",
      "license": "GPL-2.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "chrisns/spare10-mod:.",
      "repo": "chrisns/spare10-mod",
      "path": ".",
      "name": "spare10",
      "description": "Keeps the last part of your 5-hour and weekly quota for you. At the reserve, spare10 holds all work and asks you whether to continue. After a Resume, it asks again at the floor, by default at 5% left. Shortly before the reset, it lets work use the reserve.",
      "author": "Chris Nesbitt-Smith",
      "homepage": "https://github.com/chrisns/spare10-mod",
      "url": "https://github.com/chrisns/spare10-mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "engine.create",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "session.measure",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^AskUserQuestion$\"/"
          }
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "spare10"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "SessionMode"
          }
        }
      ],
      "calls": [
        "$.agent.list",
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.env.set",
        "$.prompt.fill",
        "$.prompt.read",
        "$.prompt.submit",
        "$.s",
        "$.session.id",
        "$.session.surfaces",
        "$.session.usage",
        "$.settings.read",
        "$.spare10.auto",
        "$.spare10.limit",
        "$.spare10.park",
        "$.spare10.poke"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types.d.ts declares on $: $.spare10",
          "./register.tsx env writes: SPARE10_CONSENT, SPARE10_HEADLESS, SPARE10_STOPPED, SPARE10_WEEKLY_CONSENT",
          "./register.tsx env reads: CLAUDE_AFK_TIMEOUT_MS, CLAUDE_CODE_ENABLE_FUNCTION_HOOKS, CLAUDE_CODE_SESSION_KIND, SPARE10, SPARE10_AUTO_RESUME, SPARE10_CONSENT, SPARE10_HEADLESS, SPARE10_LAST_MINUTES, SPARE10_LIMIT_PAUSE, SPARE10_PAUSE_PROMPT, SPARE10_RESERVE, SPARE10_RESUME_FLOOR, SPARE10_SIMULATE, SPARE10_STOPPED, SPARE10_WEEKLY_CONSENT, SPARE10_WEEKLY_LAST_HOURS, SPARE10_WEEKLY_RESERVE, SPARE10_WEEKLY_RESUME_FLOOR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.prompt.read",
          "other: $.s",
          "other: $.spare10.auto",
          "other: $.spare10.limit",
          "other: $.spare10.park",
          "other: $.spare10.poke",
          "sets env vars",
          "drives Claude",
          "writes the prompt box",
          "reads env vars",
          "reads settings"
        ]
      },
      "sees": [
        "every tool call",
        "/\"^AskUserQuestion$\"/ calls",
        "every prompt"
      ],
      "draws": [
        "SessionMode"
      ],
      "stars": 0,
      "pushedAt": "2026-09-28T19:09:40Z",
      "createdAt": "2026-09-24T17:41:53Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Conte777/claude-lint:plugins/lint",
      "repo": "Conte777/claude-lint",
      "path": "plugins/lint",
      "name": "lint",
      "description": "Formats and lints every file Claude Code edits, reported as one collapsible line.",
      "author": "Alexey Kolesnikov",
      "homepage": "https://github.com/Conte777/claude-lint",
      "url": "https://github.com/Conte777/claude-lint/tree/main/plugins/lint",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.process.run",
        "$.session.id",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./index.ts env writes: nothing",
          "./index.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "Edit calls",
        "Write calls"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-18T13:04:53Z",
      "createdAt": "2026-09-18T12:48:54Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "csmoot99/Mafioso:.claude/mods/firstmate-calm",
      "repo": "csmoot99/Mafioso",
      "path": ".claude/mods/firstmate-calm",
      "name": "firstmate-calm",
      "description": "Firstmate Calm for Claude Code: the sailboat working animation and conversation-only transcript presentation, sharing the per-home config/calm preference with the Pi Calm extension. Its hooks module may load through CLAUDE_CODE_ENABLE_FUNCTION_HOOKS or Claude Code's tengu_plugin_hooks_modules rollout flag, but the mod activates only when CLAUDE_CODE_ENABLE_FUNCTION_HOOKS is exactly 1 and is otherwise a complete no-op.",
      "author": "Firstmate",
      "homepage": "https://github.com/csmoot99/Mafioso",
      "url": "https://github.com/csmoot99/Mafioso/tree/main/.claude/mods/firstmate-calm",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "calm"
          }
        },
        {
          "event": "config.set",
          "matcher": {
            "key": "theme"
          }
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Spinner"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolUse"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolResult"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolGroup"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "UserMessage"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.config.list",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.session.messages",
        "$.ui.blit",
        "$.ui.invalidate",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CODE_ENABLE_FUNCTION_HOOKS, FM_CONFIG_OVERRIDE, FM_HOME, FM_ROOT_OVERRIDE"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Spinner",
        "ToolUse",
        "ToolResult",
        "ToolGroup",
        "UserMessage",
        "AssistantMessage"
      ],
      "stars": 0,
      "pushedAt": "2026-09-23T17:09:13Z",
      "createdAt": "2026-09-23T01:27:56Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "DaKev/usage-wrapup:.",
      "repo": "DaKev/usage-wrapup",
      "path": ".",
      "name": "usage-wrapup",
      "description": "When your plan usage gets low, tells every running agent to wrap up before the limit cuts it off.",
      "author": "Kevin Koch",
      "homepage": "https://github.com/DaKev/usage-wrapup",
      "url": "https://github.com/DaKev/usage-wrapup",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.measure",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.session.usage",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T20:39:28Z",
      "createdAt": "2026-10-01T20:39:23Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "davidar/claude-idle-compact:.",
      "repo": "davidar/claude-idle-compact",
      "path": ".",
      "name": "idle-compact",
      "description": "Compacts an idle interactive session shortly before its prompt cache expires, so coming back later doesn't re-read the whole context uncached.",
      "author": "David Roberts",
      "homepage": "https://github.com/davidar/claude-idle-compact",
      "url": "https://github.com/davidar/claude-idle-compact",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.env.get",
        "$.session.compact",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CODE_PROMPT_CACHE_TTL, ENABLE_PROMPT_CACHING_1H, FORCE_PROMPT_CACHING_5M, IDLE_COMPACT_MIN_TOKENS, IDLE_COMPACT_MS"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T12:16:31Z",
      "createdAt": "2026-09-29T10:18:13Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "deonmenezes/claude-mods-pokedex:.",
      "repo": "deonmenezes/claude-mods-pokedex",
      "path": ".",
      "name": "cc-pokedex",
      "description": "Catch wild creatures above the Claude Code prompt: where your prompt leads (water, grass, fire, bugs, plans, builds) decides what appears. Pick a partner that draws under the logo, beside the spinner and above the prompt, and levels up and evolves as Claude works. Needs function hooks (early access) and an interactive terminal.",
      "author": "Deon Menezes",
      "homepage": "https://github.com/deonmenezes/claude-mods-pokedex",
      "url": "https://github.com/deonmenezes/claude-mods-pokedex",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "dex"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Spinner"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "TurnDuration"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "InfoNotice"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/encounter.tsx",
        "hooks/boards/partner.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call"
      ],
      "draws": [
        "AbovePrompt",
        "Spinner",
        "TurnDuration",
        "InfoNotice"
      ],
      "stars": 0,
      "pushedAt": "2026-09-14T18:22:30Z",
      "createdAt": "2026-09-14T18:22:25Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Dubbus/claude-fleet:.",
      "repo": "Dubbus/claude-fleet",
      "path": ".",
      "name": "fleet",
      "description": "See every running Claude Code session and worktree at a glance: status, branch, uncommitted work, staleness",
      "author": "Adarsh Muralidharan",
      "homepage": "https://github.com/Dubbus/claude-fleet",
      "url": "https://github.com/Dubbus/claude-fleet",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "exit"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "fleet"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.focus",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "fleet"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.command.run",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.model.complete",
        "$.process.run",
        "$.prompt.submit",
        "$.session.cwd",
        "$.session.id",
        "$.state.get",
        "$.state.set",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.copy",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: fleet.snapshot, fleet.isOpen, fleet.selected, fleet.pendingClose, fleet.band",
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: CLAUDE_FLEET_DEMO, CLAUDE_FLEET_EXIT_CHECK, CLAUDE_FLEET_HANDOFF_AT, CLAUDE_FLEET_NOTIFY, CLAUDE_FLEET_REGISTRY, HOME",
          "./register.tsx state writes: fleet.band, fleet.isOpen, fleet.pendingClose, fleet.selected, fleet.snapshot",
          "./register.tsx state reads: fleet.band, fleet.isOpen, fleet.pendingClose, fleet.selected, fleet.snapshot"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "runs processes",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-10-02T01:26:43Z",
      "createdAt": "2026-10-01T20:14:21Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "dullfig/origami:.",
      "repo": "dullfig/origami",
      "path": ".",
      "name": "origami",
      "description": "Variable-resolution context: folds bulky stale tool output to disk behind always-visible stubs; hydrate() recovers detail on demand.",
      "author": null,
      "homepage": "https://github.com/dullfig/origami",
      "url": "https://github.com/dullfig/origami",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./origami.ts"
      ],
      "hooks": [
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__origami__hydrate"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__origami__unpin"
          }
        },
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.model.complete",
        "$.session.compact",
        "$.session.messages",
        "$.session.root",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.tool.register",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude",
          "reads files",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "compaction",
        "classic hooks",
        "mcp__origami__hydrate calls",
        "mcp__origami__unpin calls",
        "every tool call"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-23T03:28:04Z",
      "createdAt": "2026-02-20T19:52:56Z",
      "license": null,
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "duqaXxX/sidepad:.github/scripts/live/engine-fixture",
      "repo": "duqaXxX/sidepad",
      "path": ".github/scripts/live/engine-fixture",
      "name": "engine-fixture",
      "description": "Tooling only, never installed: draws what sidepad avoids, so the limit scenarios of check:live can watch Claude Code do it.",
      "author": "duqaXxX",
      "homepage": "https://github.com/duqaXxX/sidepad",
      "url": "https://github.com/duqaXxX/sidepad/tree/main/.github/scripts/live/engine-fixture",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "?"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.command.register",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-24T02:35:21Z",
      "createdAt": "2026-09-17T23:03:01Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "duqaXxX/sidepad:plugins/sidepad",
      "repo": "duqaXxX/sidepad",
      "path": "plugins/sidepad",
      "name": "sidepad",
      "description": "A read-only side pane beside the transcript: it opens the file Claude last edited at the end of the turn, lists directories one page at a time, draws code highlighted and Markdown rendered, and sends a selected passage back to Claude with a command or the next prompt.",
      "author": "duqaXxX",
      "homepage": "https://github.com/duqaXxX/sidepad",
      "url": "https://github.com/duqaXxX/sidepad/tree/main/plugins/sidepad",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "?"
          }
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.scroll",
          "matcher": {
            "requestId": "?"
          }
        },
        {
          "event": "ui.message",
          "matcher": {
            "requestId": "?"
          }
        },
        {
          "event": "ui.press",
          "matcher": {
            "requestId": "?"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?|?"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "?"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.config.list",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.process.run",
        "$.prompt.submit",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [
        "hooks/surfaces/code-view.tsx",
        "hooks/surfaces/markdown-page-view.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "?|? calls"
      ],
      "draws": [
        "PromptHint",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-24T02:35:21Z",
      "createdAt": "2026-09-17T23:03:01Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "fernandomoraes/loose-ends:.",
      "repo": "fernandomoraes/loose-ends",
      "path": ".",
      "name": "loose-ends",
      "description": "A live checklist above the prompt of the conversation's loose ends: questions left unanswered, points made in passing, caveats and deferred work it moved past, kept up to date by a small model after each turn. Needs function hooks (early access) and an interactive terminal.",
      "author": "Fernando Moraes",
      "homepage": "https://github.com/fernandomoraes/loose-ends",
      "url": "https://github.com/fernandomoraes/loose-ends",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "loose-ends"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "exit"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "quit"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.register",
        "$.model.complete",
        "$.session.id",
        "$.session.messages",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.ui.ask",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 0,
      "pushedAt": "2026-09-22T05:16:29Z",
      "createdAt": "2026-09-20T11:46:44Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "float-ritual-stack/pi-herdr-outliner:claude-mod",
      "repo": "float-ritual-stack/pi-herdr-outliner",
      "path": "claude-mod",
      "name": "pi-outliner",
      "description": "Pi Outliner integration for Claude Code: typed outline, workboard and door tools for agents (read, find, edit, comment, changes, draft.patch, ep0ch act), clickable references, and completed responses that mention [[pages]], ((block ids)) or Work IDs in the Outliner's Recent Mentions navigator.",
      "author": "evan",
      "homepage": "https://github.com/float-ritual-stack/pi-herdr-outliner",
      "url": "https://github.com/float-ritual-stack/pi-herdr-outliner/tree/main/claude-mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__pi-outliner__show"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.sleep",
        "$.env.get",
        "$.process.run",
        "$.session.cwd",
        "$.session.id",
        "$.tool.register",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: EP0CH_AGENT, EP0CH_CONTROL, EP0CH_NEST, EP0CH_TILE, EP0CH_TILE_ID, HERDR_PANE_ID, HERDR_WORKSPACE_ID, HOME, OUTLINER_ACTOR, PI_OUTLINER_MENTIONS_WORKSPACES"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "the system prompt",
        "? calls",
        "mcp__pi-outliner__show calls"
      ],
      "draws": [
        "AssistantMessage"
      ],
      "stars": 0,
      "pushedAt": "2026-10-02T00:19:55Z",
      "createdAt": "2026-08-22T05:54:48Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "gaaurav03/Jev-Project:.",
      "repo": "gaaurav03/Jev-Project",
      "path": ".",
      "name": "fast-jev-plus",
      "description": "Verbatim Jev-guided compaction for Claude Code sessions.",
      "author": "Gaurav Gupta",
      "homepage": "https://github.com/gaaurav03/Jev-Project",
      "url": "https://github.com/gaaurav03/Jev-Project",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-jev.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.session.compact",
        "$.session.cwd",
        "$.session.repo",
        "$.session.usage",
        "$.settings.read",
        "$.store.get",
        "$.store.set",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./fast-jev.ts env writes: nothing",
          "./fast-jev.ts env reads: DO_NOT_TRACK, JEV_CLOUD_INGEST_TOKEN, JEV_CLOUD_INGEST_URL, JEV_CLOUD_UPLOAD, JEV_TELEMETRY, JEV_TELEMETRY_URL, TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads settings",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-29T19:19:18Z",
      "createdAt": "2026-09-29T11:43:32Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "galElmalah/claude-queue-plugin:.",
      "repo": "galElmalah/claude-queue-plugin",
      "path": ".",
      "name": "claude-queue",
      "description": "A prompt typed while Claude is working is held in a stack above the prompt instead of landing in the running turn, and sent once the turn ends. Reorder the stack, edit a row in place, send one first, remove one, flush the lot. Needs function hooks (early access) and an interactive terminal.",
      "author": "Gal Elmalah",
      "homepage": "https://github.com/galElmalah/claude-queue-plugin",
      "url": "https://github.com/galElmalah/claude-queue-plugin",
      "kind": "duplicate",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "ui.focus",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "q"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.command.register",
        "$.prompt.fill",
        "$.prompt.submit",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-queue\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it."
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "writes the prompt box",
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "every prompt"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 0,
      "pushedAt": "2026-09-15T14:02:06Z",
      "createdAt": "2026-09-15T13:14:39Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main",
      "duplicateOf": "galElmalah/claude-mods:claude-queue"
    },
    {
      "id": "gonzaloserrano/cc-prompt-stash:.",
      "repo": "gonzaloserrano/cc-prompt-stash",
      "path": ".",
      "name": "prompt-stash",
      "description": "/stash: a git-stash-like stack of prompts, kept between sessions, popped back into the prompt box.",
      "author": "Gonzalo Serrano",
      "homepage": "https://github.com/gonzaloserrano/cc-prompt-stash",
      "url": "https://github.com/gonzaloserrano/cc-prompt-stash",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "stash"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.prompt.fill",
        "$.store.get",
        "$.store.set"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "writes the prompt box",
          "persists state"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-24T21:38:07Z",
      "createdAt": "2026-09-24T20:49:11Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "HAR5HA-7663/jev-compact:.",
      "repo": "HAR5HA-7663/jev-compact",
      "path": ".",
      "name": "jev-compact",
      "description": "Context compaction that prunes instead of summarising: rules drop exploration output and hook noise locally, Jev ranks the rest against a budget, a note says what was removed, and removed outputs are archived for the brain. Falls back to the built-in summary when it cannot do better.",
      "author": "Harsha Yellela",
      "homepage": "https://github.com/HAR5HA-7663/jev-compact",
      "url": "https://github.com/HAR5HA-7663/jev-compact",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./jev-compact.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.session.usage",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./jev-compact.ts env writes: nothing",
          "./jev-compact.ts env reads: HOME, JEV_COMPACT_OFF, TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "writes files",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-24T17:13:41Z",
      "createdAt": "2026-09-23T15:40:57Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "HAR5HA-7663/jev-compact:trigger",
      "repo": "HAR5HA-7663/jev-compact",
      "path": "trigger",
      "name": "jev-compact-trigger",
      "description": "Companion to jev-compact: watches context use after every turn and starts a compaction at the configured percentage. Separate plugin on purpose: the engine skips a plugin's own session.compact hook when that plugin raises the compaction, so the trigger must come from outside jev-compact for the pruning to run.",
      "author": "Harsha Yellela",
      "homepage": "https://github.com/HAR5HA-7663/jev-compact",
      "url": "https://github.com/HAR5HA-7663/jev-compact/tree/main/trigger",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./trigger.ts"
      ],
      "hooks": [
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.config.list",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.session.compact",
        "$.session.usage"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./trigger.ts env writes: nothing",
          "./trigger.ts env reads: HOME, JEV_COMPACT_DEBUG"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-24T17:13:41Z",
      "createdAt": "2026-09-23T15:40:57Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "HoshimuraYuto/cc-sidecar:.",
      "repo": "HoshimuraYuto/cc-sidecar",
      "path": ".",
      "name": "cc-sidecar",
      "description": "See what codex, claude and gemini do when Claude Code delegates to them from Bash",
      "author": "HoshimuraYuto",
      "homepage": "https://github.com/HoshimuraYuto/cc-sidecar",
      "url": "https://github.com/HoshimuraYuto/cc-sidecar",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./hooks.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "ui.press",
          "matcher": {
            "plugin": "cc-sidecar",
            "requestId": "cc-sidecar"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "cc-sidecar"
          }
        },
        {
          "event": "config.set",
          "matcher": {
            "key": "\"cc-sidecar.mode\""
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "cc-sidecar"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.config.set",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./hooks.tsx env writes: nothing",
          "./hooks.tsx env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "changes config",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [
        "PromptHint",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-20T13:56:25Z",
      "createdAt": "2026-09-20T13:55:47Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "iautom8things/bw-peek:.",
      "repo": "iautom8things/bw-peek",
      "path": ".",
      "name": "bw-peek",
      "description": "A Beadwork ticket pane inside Claude Code: /bw <id> or a search box runs bw show and draws the digest, title, description and comments; every ticket id a reply mentions gets a button that opens it. Needs function hooks (CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1).",
      "author": "Manuel Zubieta",
      "homepage": "https://github.com/iautom8things/bw-peek",
      "url": "https://github.com/iautom8things/bw-peek",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "bw"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.process.run",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [
        "Pane",
        "AssistantMessage"
      ],
      "stars": 0,
      "pushedAt": "2026-09-17T19:39:45Z",
      "createdAt": "2026-09-17T00:39:23Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ippoan/gh-actions-live:mods/pr-bridge-watch",
      "repo": "ippoan/gh-actions-live",
      "path": "mods/pr-bridge-watch",
      "name": "pr-bridge-watch",
      "description": "gh pr create / pr-push.sh で PR ができたら、その branch の CI を gh-actions-bridge の ws /watch に Monitor で繋ぐ Claude Mod (function hooks)",
      "author": "ippoan",
      "homepage": "https://github.com/ippoan/gh-actions-live",
      "url": "https://github.com/ippoan/gh-actions-live/tree/main/mods/pr-bridge-watch",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "session.receive",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.env.get",
        "$.http.fetch",
        "$.process.run",
        "$.tool.call",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CODE_ENTRYPOINT"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "drives Claude",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call",
        "Bash calls"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T03:17:48Z",
      "createdAt": "2026-08-22T07:39:34Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "itkrt2y/claude-plugins:plugins/idle-compact",
      "repo": "itkrt2y/claude-plugins",
      "path": "plugins/idle-compact",
      "name": "idle-compact",
      "description": "Compact the conversation once after 40 idle minutes, while the 1h prompt cache is still warm.",
      "author": "itkrt2y",
      "homepage": "https://github.com/itkrt2y/claude-plugins",
      "url": "https://github.com/itkrt2y/claude-plugins/tree/main/plugins/idle-compact",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./idle-compact.ts"
      ],
      "hooks": [
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.session.compact",
        "$.session.id",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "version: No version specified. Consider adding a version following semver (e.g., \"1.0.0\")"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-27T06:21:23Z",
      "createdAt": "2026-09-27T03:26:38Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "JayDoubleu/aside:.",
      "repo": "JayDoubleu/aside",
      "path": ".",
      "name": "aside",
      "description": "Read-only side chat: /aside opens a pane beside the transcript where you ask about the session so far; answers come from a tool-less fork of the session's own transcript and nothing is written back into the main thread.",
      "author": "JayDoubleu",
      "homepage": "https://github.com/JayDoubleu/aside",
      "url": "https://github.com/JayDoubleu/aside",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "aside"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.input",
          "matcher": {
            "plugin": "aside",
            "element": "q"
          }
        },
        {
          "event": "ui.press",
          "matcher": {
            "plugin": "aside"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.model.complete",
        "$.model.fork",
        "$.session.messages",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-14T20:15:34Z",
      "createdAt": "2026-09-14T19:05:33Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "JayDoubleu/aside:docs/investigation/probes/p1",
      "repo": "JayDoubleu/aside",
      "path": "docs/investigation/probes/p1",
      "name": "p1",
      "description": "aside probe 1: fork shape, budget, continuation, store, messages",
      "author": null,
      "homepage": "https://github.com/JayDoubleu/aside",
      "url": "https://github.com/JayDoubleu/aside/tree/main/docs/investigation/probes/p1",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "aside"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.sleep",
        "$.command.register",
        "$.model.fork",
        "$.session.messages",
        "$.session.surface",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-14T20:15:34Z",
      "createdAt": "2026-09-14T19:05:33Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "JayDoubleu/aside:docs/investigation/probes/p2",
      "repo": "JayDoubleu/aside",
      "path": "docs/investigation/probes/p2",
      "name": "p2",
      "description": "aside probe 2: AbovePrompt band + Pane with Input/Button/Select, ui.* events, invalidate from continuation",
      "author": null,
      "homepage": "https://github.com/JayDoubleu/aside",
      "url": "https://github.com/JayDoubleu/aside/tree/main/docs/investigation/probes/p2",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.press",
          "matcher": {
            "plugin": "p2"
          }
        },
        {
          "event": "ui.input",
          "matcher": {
            "plugin": "p2"
          }
        },
        {
          "event": "ui.select",
          "matcher": {
            "plugin": "p2"
          }
        },
        {
          "event": "ui.open",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "aside"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.model.fork",
        "$.session.messages",
        "$.session.surface",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-14T20:15:34Z",
      "createdAt": "2026-09-14T19:05:33Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "JayDoubleu/aside:docs/investigation/probes/p6",
      "repo": "JayDoubleu/aside",
      "path": "docs/investigation/probes/p6",
      "name": "p6",
      "description": "aside probe 6: mid-turn fallbacks (session.messages + model.complete) vs fork",
      "author": null,
      "homepage": "https://github.com/JayDoubleu/aside",
      "url": "https://github.com/JayDoubleu/aside/tree/main/docs/investigation/probes/p6",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "aside"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.model.complete",
        "$.model.fork",
        "$.session.messages",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-14T20:15:34Z",
      "createdAt": "2026-09-14T19:05:33Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "JayDoubleu/aside:docs/investigation/probes/pcost",
      "repo": "JayDoubleu/aside",
      "path": "docs/investigation/probes/pcost",
      "name": "pcost",
      "description": "aside probe: fork cost on a large transcript",
      "author": null,
      "homepage": "https://github.com/JayDoubleu/aside",
      "url": "https://github.com/JayDoubleu/aside/tree/main/docs/investigation/probes/pcost",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "aside"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.model.fork",
        "$.session.messages",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-14T20:15:34Z",
      "createdAt": "2026-09-14T19:05:33Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "JayDoubleu/aside:docs/investigation/probes/witness",
      "repo": "JayDoubleu/aside",
      "path": "docs/investigation/probes/witness",
      "name": "witness",
      "description": "test witness: logs the transcript at every turn end and every prompt submit",
      "author": null,
      "homepage": "https://github.com/JayDoubleu/aside",
      "url": "https://github.com/JayDoubleu/aside/tree/main/docs/investigation/probes/witness",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "plugin.register",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.session.messages",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-14T20:15:34Z",
      "createdAt": "2026-09-14T19:05:33Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "jetsongdev/jet-router:.",
      "repo": "jetsongdev/jet-router",
      "path": ".",
      "name": "jet-router",
      "description": "Experimental Claude Code effort router: fake and opt-in Jev shadow",
      "author": "jetsongdev",
      "homepage": "https://github.com/jetsongdev/jet-router",
      "url": "https://github.com/jetsongdev/jet-router",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.js"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "jet-router"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.process.run",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T00:27:58Z",
      "createdAt": "2026-09-27T09:54:00Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "jevcomp/jevcomp:.",
      "repo": "jevcomp/jevcomp",
      "path": ".",
      "name": "jevcomp",
      "description": "Jev decides what Claude Code keeps when it compacts, instead of a model-written summary.",
      "author": "jevcomp contributors",
      "homepage": "https://github.com/jevcomp/jevcomp",
      "url": "https://github.com/jevcomp/jevcomp",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./claude.js"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        }
      ],
      "calls": [
        "$.process.run",
        "$.session.id",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-30T14:04:39Z",
      "createdAt": "2026-09-22T16:31:49Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "jfcarpiopuntocom/friendly-123:.claude/marketplaces/fast-jev-compaction-jfc",
      "repo": "jfcarpiopuntocom/friendly-123",
      "path": ".claude/marketplaces/fast-jev-compaction-jfc",
      "name": "fast-jev-compaction",
      "description": "Verbatim Jev-guided compaction for Claude Code sessions.",
      "author": null,
      "homepage": "https://github.com/jfcarpiopuntocom/friendly-123",
      "url": "https://github.com/jfcarpiopuntocom/friendly-123/tree/master/.claude/marketplaces/fast-jev-compaction-jfc",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-jev.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.http.fetch",
        "$.session.compact",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./fast-jev.ts env writes: nothing",
          "./fast-jev.ts env reads: AI_GATEWAY_API_KEY, TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-02T01:07:17Z",
      "createdAt": "2026-07-14T19:11:29Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "jfcarpiopuntocom/friendly-123:.claude/marketplaces/jev-pruner-jfc",
      "repo": "jfcarpiopuntocom/friendly-123",
      "path": ".claude/marketplaces/jev-pruner-jfc",
      "name": "fast-jev-output",
      "description": "Trim long Bash output with Jev before the model sees it (Claude Code plugin)",
      "author": null,
      "homepage": "https://github.com/jfcarpiopuntocom/friendly-123",
      "url": "https://github.com/jfcarpiopuntocom/friendly-123/tree/master/.claude/marketplaces/jev-pruner-jfc",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-jev-output.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.session.messages",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./fast-jev-output.ts env writes: nothing",
          "./fast-jev-output.ts env reads: AI_GATEWAY_API_KEY, EVAL_TYPESAFE_API_KEY, TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "writes files",
          "reads files",
          "reads env vars",
          "reads settings",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-02T01:07:17Z",
      "createdAt": "2026-07-14T19:11:29Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "jh3ady/claude-time-check:.",
      "repo": "jh3ady/claude-time-check",
      "path": ".",
      "name": "time-check",
      "description": "Asks you to acknowledge the time before prompting inside time windows you configure per day.",
      "author": "Jean-Denis Vidot",
      "homepage": "https://github.com/jh3ady/claude-time-check",
      "url": "https://github.com/jh3ady/claude-time-check",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "time-check"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "time-check"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "time-check-settings"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.prompt.submit",
        "$.state.get",
        "$.state.set",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: time-check.pending, time-check.isSessionMuted, time-check.feedback",
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "./register.tsx state writes: time-check.feedback, time-check.isSessionMuted, time-check.pending",
          "./register.tsx state reads: time-check.feedback, time-check.isSessionMuted, time-check.pending"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "drives Claude",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-10-01T20:41:13Z",
      "createdAt": "2026-10-01T20:05:44Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "joshhornby/dotfiles:.claude/marketplace/plugins/calm",
      "repo": "joshhornby/dotfiles",
      "path": ".claude/marketplace/plugins/calm",
      "name": "calm",
      "description": "Hide tool noise and show one live status line while Claude works. Needs CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1.",
      "author": "Josh Hornby",
      "homepage": "https://github.com/joshhornby/dotfiles",
      "url": "https://github.com/joshhornby/dotfiles/tree/main/.claude/marketplace/plugins/calm",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./calm.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "calm"
          }
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolUse"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolResult"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolGroup"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "TurnDuration"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [
        "ToolUse",
        "ToolResult",
        "ToolGroup",
        "TurnDuration"
      ],
      "stars": 0,
      "pushedAt": "2026-09-24T10:22:35Z",
      "createdAt": "2024-05-18T05:39:50Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "karanb192/jev-skill-scout:.",
      "repo": "karanb192/jev-skill-scout",
      "path": ".",
      "name": "jev-skill-scout",
      "description": "Before each prompt reaches the model, TypeSafe's Jev ranks your installed skills against it and attaches one line naming the skill to load. Sends the prompt text to api.typesafe.ai. Needs function hooks (early access).",
      "author": "Karan Bansal",
      "homepage": "https://github.com/karanb192/jev-skill-scout",
      "url": "https://github.com/karanb192/jev-skill-scout",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.http.fetch",
        "$.session.cwd",
        "$.store.get",
        "$.store.set",
        "$.ui.log",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME, JEV_SKILL_SCOUT_SHADOW, TYPESAFE_API_KEY, TYPESAFE_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-23T10:34:30Z",
      "createdAt": "2026-09-19T17:56:57Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "kartikeyaagr/fast-laya-compaction:.",
      "repo": "kartikeyaagr/fast-laya-compaction",
      "path": ".",
      "name": "fast-laya-compaction",
      "description": "Verbatim Laya-guided compaction for Claude Code sessions (local, no API key).",
      "author": "kartikeyaagr",
      "homepage": "https://github.com/kartikeyaagr/fast-laya-compaction",
      "url": "https://github.com/kartikeyaagr/fast-laya-compaction",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-laya.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.process.run",
        "$.session.compact",
        "$.session.usage",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-27T18:50:20Z",
      "createdAt": "2026-09-27T14:19:17Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "kawaz/claude-rules-personal:reference/claude-mods/scripts/observe-mod",
      "repo": "kawaz/claude-rules-personal",
      "path": "reference/claude-mods/scripts/observe-mod",
      "name": "observe-mod",
      "description": "Logs every function-hook event (on '*') to JSONL for inspection.",
      "author": null,
      "homepage": "https://github.com/kawaz/claude-rules-personal",
      "url": "https://github.com/kawaz/claude-rules-personal/tree/main/reference/claude-mods/scripts/observe-mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "*",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.session.id"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: MODS_LAB_DIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads files",
          "reads env vars"
        ]
      },
      "sees": [
        "everything"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-29T06:47:43Z",
      "createdAt": "2026-05-14T01:27:46Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "kbrdn1/claude-crosstalk:.",
      "repo": "kbrdn1/claude-crosstalk",
      "path": ".",
      "name": "crosstalk",
      "description": "A Claude Mod: /crosstalk opens a pane with this session's conversations with your other Claude Code sessions (peer deliveries in, SendMessage out) and lets you reply from it.",
      "author": "Kylian Bardini",
      "homepage": "https://github.com/kbrdn1/claude-crosstalk",
      "url": "https://github.com/kbrdn1/claude-crosstalk",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.receive",
          "matcher": {
            "origin has {kind": "peer|peer-send-message"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "SendMessage"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "crosstalk"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "crosstalk"
          }
        },
        {
          "event": "ui.focus",
          "matcher": {}
        },
        {
          "event": "ui.scroll",
          "matcher": {
            "requestId": "crosstalk"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.process.run",
        "$.session.id",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.tool.call",
        "$.ui.close",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CONFIG_DIR, HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "SendMessage calls"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-19T02:09:45Z",
      "createdAt": "2026-09-18T23:36:50Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "kolezka/self-improvement-loop:.",
      "repo": "kolezka/self-improvement-loop",
      "path": ".",
      "name": "self-improvement-loop",
      "description": "Background reflection on Claude Code sessions that promotes recurring lessons into skills, hooks, rules and agents, tracks artifact usage feedback, and ships a local web UI to review and rate them. Runs on Bun, no Python required.",
      "author": "Mariusz Rakus",
      "homepage": "https://github.com/kolezka/self-improvement-loop",
      "url": "https://github.com/kolezka/self-improvement-loop",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "../dist/hook-module.js"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "modules.../dist/hook-module.js: kolezka__self-improvement-loop: /tmp/acm-clones/kolezka__self-improvement-loop/dist/hook-module.js: no such file"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T13:37:14Z",
      "createdAt": "2026-09-14T13:23:48Z",
      "license": "NOASSERTION",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "konsta95/ClaudeCodeMods:mods/hidevalues",
      "repo": "konsta95/ClaudeCodeMods",
      "path": "mods/hidevalues",
      "name": "hidevalues",
      "description": "Hides high-entropy tokens and e-mail addresses in Bash results until hovered",
      "author": "konsta95",
      "homepage": "https://github.com/konsta95/ClaudeCodeMods",
      "url": "https://github.com/konsta95/ClaudeCodeMods/tree/main/mods/hidevalues",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./hidevalues.ts"
      ],
      "hooks": [
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolUse|ToolResult"
          }
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.write",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./hidevalues.ts env writes: nothing",
          "./hidevalues.ts env reads: PROBE_OUT"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "ToolUse|ToolResult"
      ],
      "stars": 0,
      "pushedAt": "2026-10-01T11:29:54Z",
      "createdAt": "2026-09-22T07:34:02Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "konsta95/ClaudeCodeMods:mods/mod-settings",
      "repo": "konsta95/ClaudeCodeMods",
      "path": "mods/mod-settings",
      "name": "mod-settings",
      "description": "Draft and apply mod settings, with declared presets, undo and observed hook previews.",
      "author": "konsta95",
      "homepage": "https://github.com/konsta95/ClaudeCodeMods",
      "url": "https://github.com/konsta95/ClaudeCodeMods/tree/main/mods/mod-settings",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./settings.ts"
      ],
      "hooks": [
        {
          "event": "*",
          "matcher": {}
        },
        {
          "event": "plugin.register",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "config.set",
          "matcher": {}
        },
        {
          "event": "config.describe",
          "matcher": {}
        },
        {
          "event": "ui.focus",
          "matcher": {
            "requestId": "mod-settings"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "mod-settings"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "mods"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.config.list",
        "$.config.set",
        "$.fs.exists",
        "$.fs.read",
        "$.model.complete",
        "$.session.id",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.ask",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "changes config",
          "drives Claude",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "everything"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-10-01T11:29:54Z",
      "createdAt": "2026-09-22T07:34:02Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "konsta95/ClaudeCodeMods:mods/mod-settings/benchmarks/no-trace",
      "repo": "konsta95/ClaudeCodeMods",
      "path": "mods/mod-settings/benchmarks/no-trace",
      "name": "trace-baseline",
      "description": "Empty plugin baseline for the requested kit dispatch measurement.",
      "author": null,
      "homepage": "https://github.com/konsta95/ClaudeCodeMods",
      "url": "https://github.com/konsta95/ClaudeCodeMods/tree/main/mods/mod-settings/benchmarks/no-trace",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./empty.ts"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T11:29:54Z",
      "createdAt": "2026-09-22T07:34:02Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "konsta95/ClaudeCodeMods:mods/mod-settings/tests/fixtures/guardmark",
      "repo": "konsta95/ClaudeCodeMods",
      "path": "mods/mod-settings/tests/fixtures/guardmark",
      "name": "guardmark",
      "description": "Probe mod with two switchable settings declared through userConfig: a hook toggle and a strictness choice.",
      "author": "konsta95",
      "homepage": "https://github.com/konsta95/ClaudeCodeMods",
      "url": "https://github.com/konsta95/ClaudeCodeMods/tree/main/mods/mod-settings/tests/fixtures/guardmark",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./guard.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "config.set",
          "matcher": {
            "key": "\"guardmark.hook_block_marker\""
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.write"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./guard.ts env writes: nothing",
          "./guard.ts env reads: PROBE_RUN"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads env vars"
        ]
      },
      "sees": [
        "Bash calls"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T11:29:54Z",
      "createdAt": "2026-09-22T07:34:02Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "konsta95/ClaudeCodeMods:mods/statusline",
      "repo": "konsta95/ClaudeCodeMods",
      "path": "mods/statusline",
      "name": "statusline",
      "description": "ClaudeCodeStatusline as a function-hook mod: the status bar drawn in the hint line under the prompt, each segment revealing its details on hover, with /statusline-mod to pick the segments.",
      "author": "konsta95",
      "homepage": "https://github.com/konsta95/ClaudeCodeMods",
      "url": "https://github.com/konsta95/ClaudeCodeMods/tree/main/mods/statusline",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./statusline.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "model|compact|clear"
          }
        },
        {
          "event": "command.run",
          "matcher": {}
        },
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "config.set",
          "matcher": {
            "key": "model"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "statusline-mod"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "ui.focus",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.sleep",
        "$.command.register",
        "$.config.list",
        "$.config.set",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.session.cwd",
        "$.session.id",
        "$.session.model",
        "$.session.repo",
        "$.session.usage",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./statusline.ts env writes: nothing",
          "./statusline.ts env reads: PROBE_OUT, PROBE_RUN"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "changes config",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "compaction",
        "every prompt"
      ],
      "draws": [
        "PromptHint",
        "AbovePrompt"
      ],
      "stars": 0,
      "pushedAt": "2026-10-01T11:29:54Z",
      "createdAt": "2026-09-22T07:34:02Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "kys0213/kys-claude-plugin:plugins/atelier",
      "repo": "kys0213/kys-claude-plugin",
      "path": "plugins/atelier",
      "name": "atelier",
      "description": "통합 개발 워크플로우: spec/git/orchestrator/workflow 를 관심사 단위 skill 로 큐레이션한 단일 plugin",
      "author": "kys0213",
      "homepage": "https://github.com/kys0213/kys-claude-plugin",
      "url": "https://github.com/kys0213/kys-claude-plugin/tree/main/plugins/atelier",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Agent"
          }
        },
        {
          "event": "session.compact",
          "matcher": {}
        }
      ],
      "calls": [
        "$.process.run"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "hooks.SessionStart: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: ${CLAUDE_PLUGIN_ROOT}/hooks/check-cli-version.sh. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}.",
          "hooks.SessionStart: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: ${CLAUDE_PLUGIN_ROOT}/hooks/session-baseline.sh. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}.",
          "hooks.SessionStart: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: ${CLAUDE_PLUGIN_ROOT}/hooks/ensure-agent-teams.sh. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}.",
          "hooks.Stop: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: ${CLAUDE_PLUGIN_ROOT}/hooks/suggest-simplify.sh. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}.",
          "hooks.Stop: Shell command uses ${CLAUDE_PLUGIN_ROOT} without quotes: ${CLAUDE_PLUGIN_ROOT}/hooks/push-check.sh. If the expanded path contains a space the command can split into several words and fail. Wrap the placeholder in double quotes, or use exec form: {\"command\": \"<executable>\", \"args\": [\"${CLAUDE_PLUGIN_ROOT}/...\"]}."
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes"
        ]
      },
      "sees": [
        "subagent spawns",
        "Agent calls",
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T12:26:50Z",
      "createdAt": "2026-01-07T06:28:23Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Leechael/claude-code-mod-agent-skills:.",
      "repo": "Leechael/claude-code-mod-agent-skills",
      "path": ".",
      "name": "agents-skills",
      "description": "Discover Agent Skills under .agents/skills (project) and ~/.agents/skills (user), expose them as slash commands, list them in prompt.context, and optionally intercept the Skill tool so names from those trees load without living under .claude/skills.",
      "author": "Hypatia draft",
      "homepage": "https://github.com/Leechael/claude-code-mod-agent-skills",
      "url": "https://github.com/Leechael/claude-code-mod-agent-skills",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "modules../register.ts: Leechael__claude-code-mod-agent-skills: /tmp/acm-clones/Leechael__claude-code-mod-agent-skills/hooks/discover/scan.ts does not parse: Expected \";\" but found \"$\" (line 89, column 50); Invalid flag \"k\" in regular expression (line 89, column 68); Invalid flag \"l\" in regular expression (line 89, column 70); Invalid flag \"l\" in regular expression (line 89, column 71); Duplicate flag \"s\" in regular expr… [+27 chars]"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-27T09:00:10Z",
      "createdAt": "2026-09-20T14:24:34Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "lemonlatte/claude-maru-run:.",
      "repo": "lemonlatte/claude-maru-run",
      "path": ".",
      "name": "claude-maru-run",
      "description": "An orange-and-white cat chases a butterfly across seven rows above the prompt for as long as Claude works, bounding after it, leaping when it dips low, and going over in a heap when it misses; the trees and grass of the lot slide past behind it as it runs. Needs function hooks (early access) and an interactive terminal.",
      "author": "Jim Yeh",
      "homepage": "https://github.com/lemonlatte/claude-maru-run",
      "url": "https://github.com/lemonlatte/claude-maru-run",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "maru"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Spinner"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.blit",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-maru-run\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it."
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt",
        "Spinner"
      ],
      "stars": 0,
      "pushedAt": "2026-09-15T13:56:55Z",
      "createdAt": "2026-09-15T13:56:07Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "liquid1982/claude-plugins:plugins/pin",
      "repo": "liquid1982/claude-plugins",
      "path": "plugins/pin",
      "name": "pin",
      "description": "Marks conversation content wrapped in <pin>...</pin> tags as compaction-proof: pinned content is re-injected verbatim into the transcript after every compaction (manual /compact, auto-compaction, plugin-triggered, or precompute).",
      "author": null,
      "homepage": "https://github.com/liquid1982/claude-plugins",
      "url": "https://github.com/liquid1982/claude-plugins/tree/main/plugins/pin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.session.messages",
        "$.ui.invalidate",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 0,
      "pushedAt": "2026-09-21T13:19:51Z",
      "createdAt": "2026-09-21T13:19:47Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "lperezmo/topic-filter-mod:.",
      "repo": "lperezmo/topic-filter-mod",
      "path": ".",
      "name": "topic-filter",
      "description": "Keep unrelated topics from pulling Claude off your code: listed terms become stable placeholder names (or their lines are dropped) in tool output, prompts, CLAUDE.md and skills before the model reads them. The system prompt is never changed.",
      "author": "Luis Perez Morales",
      "homepage": "https://github.com/lperezmo/topic-filter-mod",
      "url": "https://github.com/lperezmo/topic-filter-mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "prompt.attachment",
          "matcher": {}
        },
        {
          "event": "skill.prompt",
          "matcher": {}
        },
        {
          "event": "tool.describe",
          "matcher": {}
        },
        {
          "event": "session.receive",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "SessionMode"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.press",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.list",
        "$.command.register",
        "$.env.get",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME, USERPROFILE"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "every prompt",
        "the system prompt",
        "every skill"
      ],
      "draws": [
        "SessionMode",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-10-01T22:13:02Z",
      "createdAt": "2026-09-24T23:51:23Z",
      "license": "GPL-3.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "m0hamedb3ngab5ia/fast-jev-compaction:.",
      "repo": "m0hamedb3ngab5ia/fast-jev-compaction",
      "path": ".",
      "name": "fast-jev-compaction",
      "description": "Verbatim Jev-guided compaction for Claude Code sessions.",
      "author": null,
      "homepage": "https://github.com/m0hamedb3ngab5ia/fast-jev-compaction",
      "url": "https://github.com/m0hamedb3ngab5ia/fast-jev-compaction",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-jev.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.http.fetch",
        "$.session.compact",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./fast-jev.ts env writes: nothing",
          "./fast-jev.ts env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-25T18:55:10Z",
      "createdAt": "2026-09-25T18:49:45Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "MadAppGang/magus-alpha:plugins/claudoom",
      "repo": "MadAppGang/magus-alpha",
      "path": "plugins/claudoom",
      "name": "claudoom",
      "description": "Plays Doom-engine WADs in a Claude Code pane: runs doom-cli (GPLv2, built from upstream) in a private tmux server and repaints its frames into a Raster. Fetches Freedoom (BSD) on demand. DOOM is a ZeniMax trademark; not affiliated with id Software, ZeniMax or Anthropic.",
      "author": "MadAppGang",
      "homepage": "https://github.com/MadAppGang/magus",
      "url": "https://github.com/MadAppGang/magus-alpha/tree/main/plugins/claudoom",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "claudoom"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.scroll",
          "matcher": {
            "requestId": "claudoom"
          }
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "claudoom"
          }
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.process.run",
        "$.session.id",
        "$.ui.blit",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve"
      ],
      "surfaceModules": [
        "hooks/controls.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-30T15:14:19Z",
      "createdAt": "2026-04-07T23:38:39Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Mar5929/claude-toolkit:plugins/protocol-guard",
      "repo": "Mar5929/claude-toolkit",
      "path": "plugins/protocol-guard",
      "name": "protocol-guard",
      "description": "Required workflow checks with Claude Code function hooks. Refuses a knowledge-file write, or a memory-service save in external memory mode, until knowledge-save is open, refuses hand edits to generated indexes, refuses a pull request, close or merge until knowledge-save (and the work or merge-and-clean-up skill) is open, and holds a final reply once when working memory or the index rebuild and checker did not follow the change. Fact checks only: no model call and no reading of the agent's words. Runs only when CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1.",
      "author": "Mike Rihm",
      "homepage": "https://github.com/Mar5929/claude-toolkit",
      "url": "https://github.com/Mar5929/claude-toolkit/tree/main/plugins/protocol-guard",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./engine.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "classic.UserPromptSubmit",
          "matcher": {}
        },
        {
          "event": "classic.Stop",
          "matcher": {}
        },
        {
          "event": "skill.prompt",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.list",
        "$.command.list",
        "$.env.set",
        "$.fs.exists",
        "$.fs.read",
        "$.session.cwd",
        "$.session.id",
        "$.session.root",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./engine.ts env writes: TOOLKIT_PROTOCOL_ENGINE",
          "./engine.ts env reads: nothing"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "sets env vars",
          "reads files",
          "draws"
        ]
      },
      "sees": [
        "compaction",
        "every prompt",
        "classic hooks",
        "every skill",
        "every tool call"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-26T09:54:32Z",
      "createdAt": "2026-07-07T14:19:34Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "masahide/agent-kit:plugins/agentctl",
      "repo": "masahide/agent-kit",
      "path": "plugins/agentctl",
      "name": "agentctl",
      "description": "agentctl Mod: agentctl CLI (tools/agentctl) が ~/.agentctl/claude/<sessionId>/inbox/ に置いたメッセージを $.prompt.submit で Claude に届け、中断の依頼を $.turn.abort で行い、結果を acks/ に書く。付属スキル agentctl は、agent に agentctl の使い方を教える。",
      "author": "agent-kit",
      "homepage": "https://github.com/masahide/agent-kit",
      "url": "https://github.com/masahide/agent-kit/tree/main/plugins/agentctl",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.write",
        "$.process.run",
        "$.prompt.submit",
        "$.session.id",
        "$.turn.abort",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: AGENTCTL_HOME, HOME, USERPROFILE"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-28T15:53:13Z",
      "createdAt": "2026-09-22T08:18:58Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "masahide/agent-kit:plugins/doc-desk",
      "repo": "masahide/agent-kit",
      "path": "plugins/doc-desk",
      "name": "doc-desk",
      "description": "doc-desk Mod: Claude が質問票 JSON を open_form ツールに渡すと、ブラウザに一枚のフォームを出して人に答えてもらい、回答を【doc-desk 回答】の固定形にして Claude に届ける (waitSeconds 以内ならツールの結果として、過ぎれば user turn として)。書き上げた文書を open_review に渡すと、人が段落や文字列に付けた指摘を同じ固定形で届ける (指摘モード)。",
      "author": "agent-kit",
      "homepage": "https://github.com/masahide/agent-kit",
      "url": "https://github.com/masahide/agent-kit/tree/main/plugins/doc-desk",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__doc-desk__open_form"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__doc-desk__open_review"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__doc-desk__open_live"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "?"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "UserMessage",
            "props.origin has {kind": "plugin"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.check",
          "matcher": {
            "tool": "Write"
          }
        },
        {
          "event": "tool.check",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.check",
          "matcher": {
            "tool": "NotebookEdit"
          }
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "doc-desk"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.http.fetch",
        "$.model.fork",
        "$.process.run",
        "$.prompt.submit",
        "$.prompt.suggest",
        "$.session.id",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.tool.register",
        "$.turn.abort",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "writes files",
          "drives Claude",
          "writes the prompt box",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "mcp__doc-desk__open_form calls",
        "mcp__doc-desk__open_review calls",
        "mcp__doc-desk__open_live calls",
        "Write calls",
        "Edit calls",
        "compaction"
      ],
      "draws": [
        "Pane",
        "UserMessage"
      ],
      "stars": 0,
      "pushedAt": "2026-09-28T15:53:13Z",
      "createdAt": "2026-09-22T08:18:58Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "mediavee/cold-cache-guard:.",
      "repo": "mediavee/cold-cache-guard",
      "path": ".",
      "name": "cold-cache-guard",
      "description": "Asks what to do before Claude Code re-sends a large conversation whose prompt cache has expired: on a cold resume, and on the first prompt after an idle spell.",
      "author": "Mediavee",
      "homepage": "https://github.com/mediavee/cold-cache-guard",
      "url": "https://github.com/mediavee/cold-cache-guard",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.command.run",
        "$.prompt.fill",
        "$.session.compact",
        "$.session.usage",
        "$.settings.read",
        "$.state.get",
        "$.state.set",
        "$.ui.ask",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: cold-cache-guard.lastAnswerAtMs, cold-cache-guard.resumedTokens, cold-cache-guard.isSettled",
          "./register.ts state writes: cold-cache-guard.isSettled, cold-cache-guard.lastAnswerAtMs, cold-cache-guard.resumedTokens",
          "./register.ts state reads: cold-cache-guard.isSettled, cold-cache-guard.lastAnswerAtMs, cold-cache-guard.resumedTokens"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "drives Claude",
          "writes the prompt box",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "every prompt"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-27T19:36:12Z",
      "createdAt": "2026-09-27T19:29:26Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "meganemura/buffer-pane:plugin",
      "repo": "meganemura/buffer-pane",
      "path": "plugin",
      "name": "buffer-pane",
      "description": "A pane beside the transcript that holds the next things to tell the agent: write blocks of text while a turn runs, then press [+] to put one block into the prompt box.",
      "author": "meganemura",
      "homepage": "https://github.com/meganemura/buffer-pane",
      "url": "https://github.com/meganemura/buffer-pane/tree/main/plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./mod.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "buffer-pane"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "buffer-pane"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.prompt.fill",
        "$.prompt.submit",
        "$.session.cwd",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "writes the prompt box",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-22T00:48:28Z",
      "createdAt": "2026-09-17T05:09:13Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "meganemura/draft-pane:plugin",
      "repo": "meganemura/draft-pane",
      "path": "plugin",
      "name": "draft-pane",
      "description": "A pane beside the transcript that shows the model's newest open draft and sends your comments on it, span by span, as one prompt.",
      "author": "meganemura",
      "homepage": "https://github.com/meganemura/draft-pane",
      "url": "https://github.com/meganemura/draft-pane/tree/main/plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./mod.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "draft-pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "draft-pane"
          }
        },
        {
          "event": "ui.message",
          "matcher": {
            "requestId": "draft-pane"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.sleep",
        "$.command.register",
        "$.fs.read",
        "$.prompt.submit",
        "$.session.messages",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [
        "hooks/draft-selection.ts"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "reads files",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-19T10:28:55Z",
      "createdAt": "2026-09-18T04:37:29Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "meganemura/grilling-pane:plugin",
      "repo": "meganemura/grilling-pane",
      "path": "plugin",
      "name": "grilling-pane",
      "description": "A pane beside the transcript that shows the model's open interview questions and submits every pick as one prompt.",
      "author": "meganemura",
      "homepage": "https://github.com/meganemura/grilling-pane",
      "url": "https://github.com/meganemura/grilling-pane/tree/main/plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./mod.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "grilling-pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "grilling-pane"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.prompt.submit",
        "$.session.messages",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.focus",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-29T09:23:15Z",
      "createdAt": "2026-09-17T05:58:45Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "meganemura/jira-ticket-pane:plugin",
      "repo": "meganemura/jira-ticket-pane",
      "path": "plugin",
      "name": "jira-ticket-pane",
      "description": "A pane beside the transcript that fetches one Jira issue by key and lets you attach it to your next prompt.",
      "author": "meganemura",
      "homepage": "https://github.com/meganemura/jira-ticket-pane",
      "url": "https://github.com/meganemura/jira-ticket-pane/tree/main/plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./mod.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "jira"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "jira-ticket-pane"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.fs.read",
        "$.mcp.call",
        "$.store.get",
        "$.store.set",
        "$.tool.list",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./mod.ts env writes: nothing",
          "./mod.ts env reads: JIRA_TICKET_PANE_FIXTURE"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.tool.list",
          "MCP servers",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-19T10:07:01Z",
      "createdAt": "2026-09-17T05:58:30Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "miguelrisero/better-shunt:plugins/shunt",
      "repo": "miguelrisero/better-shunt",
      "path": "plugins/shunt",
      "name": "shunt",
      "description": "A Claude Mod for the shunt gateway: /shunt:usage reads the shared account pool's remaining headroom and reset times from shunt's GET /usage, so you can see how close the pool is to throttling without the admin dashboard.",
      "author": "Minsu Lee",
      "homepage": "https://github.com/pleaseai/shunt",
      "url": "https://github.com/miguelrisero/better-shunt/tree/main/plugins/shunt",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "modules../register.ts: shunt: /tmp/acm-clones/miguelrisero__better-shunt/plugins/shunt/hooks/register.ts, compiled line 18 `const registration = on(\"command.run\", { command: COMMAND_NAME }, async ($, e, n...`: the value of on(\"command.run\") is kept (assigned, passed, read, or returned from a nested function); it takes .catch(handler) where it is called and nothing else; $ is always spelled $.noun.event(...) at the call … [+79 chars]"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-30T09:59:31Z",
      "createdAt": "2026-09-12T17:23:34Z",
      "license": "Apache-2.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Miracle0x0/CCometixLine:mods/agents",
      "repo": "Miracle0x0/CCometixLine",
      "path": "mods/agents",
      "name": "ccline-agents-mod",
      "description": "Experimental in-process subagent activity for CCometixLine.",
      "author": "CCometixLine contributors",
      "homepage": "https://github.com/Miracle0x0/CCometixLine",
      "url": "https://github.com/Miracle0x0/CCometixLine/tree/main/mods/agents",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "classic.SubagentStart",
          "matcher": {}
        },
        {
          "event": "classic.SubagentStop",
          "matcher": {}
        },
        {
          "event": "classic.SessionEnd",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.env.set"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: CCLINE_AGENTS_SNAPSHOT",
          "./register.ts env reads: nothing"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "sets env vars"
        ]
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-28T01:41:51Z",
      "createdAt": "2026-09-09T15:01:12Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "mrkhachaturov/ccode-personal-plugins:plugins/code-modernization",
      "repo": "mrkhachaturov/ccode-personal-plugins",
      "path": "plugins/code-modernization",
      "name": "code-modernization",
      "description": "Guided modernization for any legacy codebase: start with /modernize, get an assessment, an interactive map, the business rules mined from the code, and a plan you approve, then an upgrade, a rewrite or a rebuild with independent proof that the new code behaves like the old. Includes security hardening, a one-page report, specialist agents, and an optional live progress pane (early access).",
      "author": "Anthropic",
      "homepage": "https://github.com/mrkhachaturov/ccode-personal-plugins",
      "url": "https://github.com/mrkhachaturov/ccode-personal-plugins/tree/main/plugins/code-modernization",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "modernize-panel"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "modernize-review-pane"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "modernize-sign"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear|resume"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.prompt.fill",
        "$.prompt.submit",
        "$.store.get",
        "$.store.set",
        "$.turn.abort",
        "$.ui.blit",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude",
          "writes the prompt box",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call"
      ],
      "draws": [
        "PromptHint",
        "AbovePrompt",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-28T13:11:32Z",
      "createdAt": "2026-03-12T11:58:49Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "MusicStudioNYC/lossless-compact:.",
      "repo": "MusicStudioNYC/lossless-compact",
      "path": ".",
      "name": "lossless-compact",
      "description": "Lossless compaction for Claude Code: nothing is summarized; everything removed is archived verbatim with provenance and restorable by id (Jev or a local ruleset). /lossless to inspect and restore.",
      "author": null,
      "homepage": "https://github.com/MusicStudioNYC/lossless-compact",
      "url": "https://github.com/MusicStudioNYC/lossless-compact",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./lossless-compact.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "lossless"
          }
        },
        {
          "event": "skill.prompt",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.command.run",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.model.complete",
        "$.model.fork",
        "$.session.compact",
        "$.session.cwd",
        "$.session.id",
        "$.session.messages",
        "$.session.usage",
        "$.settings.read",
        "$.store.get",
        "$.store.set",
        "$.ui.ask",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./lossless-compact.ts env writes: nothing",
          "./lossless-compact.ts env reads: HOME, TYPESAFE_API_KEY, USERPROFILE"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads settings",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every skill",
        "compaction",
        "every prompt"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-23T23:40:05Z",
      "createdAt": "2026-09-20T09:59:46Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "natsuume/natsuume-cc-marketplace:plugins/pre-merge-cross-review",
      "repo": "natsuume/natsuume-cc-marketplace",
      "path": "plugins/pre-merge-cross-review",
      "name": "pre-merge-cross-review",
      "description": "merge 前の codex review を必須化する",
      "author": "natsuume",
      "homepage": "https://github.com/natsuume/natsuume-cc-marketplace",
      "url": "https://github.com/natsuume/natsuume-cc-marketplace/tree/master/plugins/pre-merge-cross-review",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./module/register.ts"
      ],
      "hooks": [
        {
          "event": "classic.SessionStart",
          "matcher": {}
        },
        {
          "event": "classic.UserPromptSubmit",
          "matcher": {}
        },
        {
          "event": "classic.PostToolUse",
          "matcher": {}
        },
        {
          "event": "classic.PostToolUseFailure",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.check",
          "matcher": {
            "tool": "Bash"
          }
        }
      ],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [
        "classic hooks",
        "Bash calls"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-02T01:36:09Z",
      "createdAt": "2026-01-19T17:51:01Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "nogu66/claude-code:agent-aquarium",
      "repo": "nogu66/claude-code",
      "path": "agent-aquarium",
      "name": "agent-aquarium",
      "description": "A Claude Mod (function-hooks plugin): /aquarium draws the session as a fish tank in a pane with kitty graphics: the main loop is the parent fish, each subagent a baby that is born and swims off, and every tool call an animation (Read feeds, Edit nests, Bash dashes, an error sinks); the water level follows the context window. Half-block fallback where the terminal shows no images. / Claude Mod（function hooks プラグイン）。/aquarium でセッションを Kitty graphics の水槽として pane に描画。メインループが親魚、サブエージェントは誕生して泳ぎ去る稚魚、ツール呼び出しは魚の動き（Read で餌、Edit で巣、Bash でダッシュ、エラーで沈む）、水位はコンテキスト使用率に連動。画像非対応端末では半ブロック描画に自動切替。",
      "author": "nogu66",
      "homepage": "https://github.com/nogu66/claude-code",
      "url": "https://github.com/nogu66/claude-code/tree/main/agent-aquarium",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "aquarium"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "aquarium"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "aquarium"
          }
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.measure",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.list",
        "$.clock.every",
        "$.command.register",
        "$.fs.read",
        "$.session.surfaces",
        "$.store.get",
        "$.store.set",
        "$.ui.blit",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead."
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "subagent spawns",
        "compaction"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-22T10:46:46Z",
      "createdAt": "2026-02-13T05:13:25Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "nogu66/claude-code:git-ops",
      "repo": "nogu66/claude-code",
      "path": "git-ops",
      "name": "git-ops",
      "description": "A Claude Mod (function-hooks plugin): /git draws a clickable panel above the prompt for everyday git: pick a branch with a button (or filter + Enter, or a digit key), confirm, and it checks out; pull/push/fetch, stage-all and commit are buttons too. No force-push, reset or rebase exposed. / Claude Mod（function hooks プラグイン）。/git でプロンプトの上にクリック操作できる git パネルを表示。ブランチをボタン（絞り込み+Enter、数字キーも可）で選び、確認してからチェックアウト。pull/push/fetch、stage all、commit もボタンで実行。force-push・reset・rebase は意図的に非対応。",
      "author": "nogu66",
      "homepage": "https://github.com/nogu66/claude-code",
      "url": "https://github.com/nogu66/claude-code/tree/main/git-ops",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "git"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.process.run",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 0,
      "pushedAt": "2026-09-22T10:46:46Z",
      "createdAt": "2026-02-13T05:13:25Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "nogu66/md-prompt:plugins/md-prompt",
      "repo": "nogu66/md-prompt",
      "path": "plugins/md-prompt",
      "name": "md-prompt",
      "description": "Paints Markdown onto Claude Code's prompt box as you type: fenced code becomes a syntax-highlighted card (even before you close the fence), and inline code, bold, italic, lists, task lists, quotes, tables, links and headings are styled. Paint only, your text is never changed.",
      "author": "nogu66",
      "homepage": "https://github.com/nogu66/md-prompt",
      "url": "https://github.com/nogu66/md-prompt/tree/main/plugins/md-prompt",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "md-prompt"
          }
        },
        {
          "event": "prompt.edit",
          "matcher": {}
        },
        {
          "event": "prompt.fill",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.config.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "changes config",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T11:37:19Z",
      "createdAt": "2026-10-01T01:54:21Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "oakoss/claude-plugins:plugins/review-cycle",
      "repo": "oakoss/claude-plugins",
      "path": "plugins/review-cycle",
      "name": "review-cycle",
      "description": "Automated multi-agent code review cycle. Spawns reviewers in parallel (plus Codex when available), applies fixes per CLAUDE.md policy, admits a commit only when a reviewer saw exactly what it records, and asks before a push you did not request.",
      "author": "Oak OSS",
      "homepage": "https://github.com/oakoss/claude-plugins/tree/main/plugins/review-cycle",
      "url": "https://github.com/oakoss/claude-plugins/tree/main/plugins/review-cycle",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "config.set",
          "matcher": {
            "key": "\"review-cycle.enabled\""
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__review-cycle__ledger"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__review-cycle__ledger_record"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__review-cycle__scratch"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__review-cycle__sweep"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__review-cycle__status"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Skill"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Edit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Write"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "NotebookEdit"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Monitor"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__review-cycle__status"
          }
        }
      ],
      "calls": [
        "$.agent.list",
        "$.clock.after",
        "$.clock.now",
        "$.clock.sleep",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.process.run",
        "$.prompt.submit",
        "$.session.cwd",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.tool.register",
        "$.ui.ask"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CODE_SHELL, CLAUDE_CONFIG_DIR, HOME, SHELL, TMPDIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "Edit calls",
        "Write calls",
        "mcp__review-cycle__ledger calls",
        "mcp__review-cycle__ledger_record calls",
        "mcp__review-cycle__scratch calls",
        "mcp__review-cycle__sweep calls",
        "mcp__review-cycle__status calls",
        "every prompt",
        "subagent spawns",
        "Skill calls",
        "Bash calls",
        "NotebookEdit calls",
        "Monitor calls"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T22:42:17Z",
      "createdAt": "2026-05-11T02:33:05Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "octalide/sift:.",
      "repo": "octalide/sift",
      "path": ".",
      "name": "sift",
      "description": "Typed judgement calls for Claude Code: two primitives, judge and rank, under packs that grade issues, pull requests, plans, commits, releases and rules, a repository watch, tool output pruning and an outbound text gate, backed by TypeSafe Jev or the session's small model.",
      "author": "octalide",
      "homepage": "https://github.com/octalide/sift",
      "url": "https://github.com/octalide/sift",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./sift.ts"
      ],
      "hooks": [
        {
          "event": "engine.create",
          "matcher": {}
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "classic.SessionEnd",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__sift__grade"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__sift__judge"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__sift__rank"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "model.classify",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__sift__watch"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__sift__status"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "sift"
          }
        }
      ],
      "calls": [
        "$.agent.list",
        "$.clock.after",
        "$.clock.every",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.http.fetch",
        "$.model.complete",
        "$.process.run",
        "$.prompt.submit",
        "$.session.cwd",
        "$.session.id",
        "$.session.repo",
        "$.settings.read",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.tool.call",
        "$.tool.register",
        "$.ui.log",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/sift.d.ts declares on $: $.sift",
          "./sift.ts env writes: nothing",
          "./sift.ts env reads: CLAUDE_CONFIG_DIR, HOME, TYPESAFE_API_KEY, XDG_CONFIG_HOME"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads settings",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "every tool call",
        "mcp__sift__grade calls",
        "? calls",
        "subagent spawns",
        "mcp__sift__judge calls",
        "mcp__sift__rank calls",
        "every prompt",
        "mcp__sift__watch calls",
        "mcp__sift__status calls"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-24T04:09:42Z",
      "createdAt": "2026-09-19T17:03:25Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "PAVincius/cosmos-nebuloz:.maestri/plugins/fast-jev-compaction",
      "repo": "PAVincius/cosmos-nebuloz",
      "path": ".maestri/plugins/fast-jev-compaction",
      "name": "fast-jev-compaction",
      "description": "Verbatim Jev-guided compaction for Claude Code sessions.",
      "author": null,
      "homepage": "https://github.com/PAVincius/cosmos-nebuloz",
      "url": "https://github.com/PAVincius/cosmos-nebuloz/tree/main/.maestri/plugins/fast-jev-compaction",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-jev.ts"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "modules../fast-jev.ts: fast-jev-compaction: /tmp/acm-clones/PAVincius__cosmos-nebuloz/.maestri/plugins/fast-jev-compaction/hooks/fast-jev.ts, compiled line 147 `const fromEnv = await $.env.get(name);`: $.env.get takes a literal name as its first argument, so the variables a module reads and writes can be listed (got the variable name); $ is always spelled $.noun.event(...) at the call site, on is always on(\"<event>\", ho… [+44 chars]"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T17:36:51Z",
      "createdAt": "2026-05-11T02:05:56Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "poindexter12/loadout:plugins/sidequest",
      "repo": "poindexter12/loadout",
      "path": "plugins/sidequest",
      "name": "sidequest",
      "description": "The Loadout's core work board and orchestration loop for Claude Code. Tickets are classified into categories that route each one to a concrete model and effort, then dispatched to token-gated executors; side issues you mention mid-task get captured on the spot, and a live, self-hosted Kanban dashboard spans every project you work in.",
      "author": "poindexter12",
      "homepage": "https://github.com/poindexter12/loadout/tree/main/plugins/sidequest",
      "url": "https://github.com/poindexter12/loadout/tree/main/plugins/sidequest",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fn/compaction.js"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.read",
        "$.session.id",
        "$.settings.read",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./fn/compaction.js env writes: nothing",
          "./fn/compaction.js env reads: CLAUDE_CONFIG_DIR, HOME, SIDEQUEST_HOME"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T15:12:53Z",
      "createdAt": "2026-09-09T06:21:27Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "radiator-engineering/eventlog:mods/eventlog-context",
      "repo": "radiator-engineering/eventlog",
      "path": "mods/eventlog-context",
      "name": "eventlog-context",
      "description": "Replaces context compaction in the controller's interactive session of a log-driven repo: the conversation is rebuilt from .context/events.jsonl by `eventlog context`, plus the last few turns word for word. Rebuilds at the log's task boundaries and at a fill backstop; /rebuild queues a rebuild for the end of the next turn, and /compact rebuilds from the log at once. Inert in headless sessions, for other EVENTLOG_AS writers, with EVENTLOG_CONTEXT=off, and in a repo without the log. Falls back to the engine's compaction when eventlog fails.",
      "author": "radiator-engineering",
      "homepage": "https://github.com/radiator-engineering/eventlog",
      "url": "https://github.com/radiator-engineering/eventlog/tree/main/mods/eventlog-context",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "rebuild"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.process.run",
        "$.session.compact",
        "$.session.messages",
        "$.session.usage",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: EVENTLOG_AS, EVENTLOG_CONTEXT, HERDR_PANE_ID, LOG_DRIVEN_WORKER"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T21:16:10Z",
      "createdAt": "2026-09-07T02:42:13Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "radiator-engineering/offcut:mod",
      "repo": "radiator-engineering/offcut",
      "path": "mod",
      "name": "offcut",
      "description": "Cleans up finished git worktrees as soon as a turn or a session ends. When a turn ends (the main session's or a subagent's), it runs `offcut apply --only auto --yes` for the session's repo in the background: a worktree goes only if it is clean, pushed, and its work is merged or eventlog says its agent is done. When the session ends, it runs once more a few seconds later, also clearing unused build caches, so the session's own worktree can go. Every removal is recorded for `offcut restore`. Inert when `offcut` is not installed, outside a git repo, or with OFFCUT=off.",
      "author": "radiator-engineering",
      "homepage": "https://github.com/radiator-engineering/offcut",
      "url": "https://github.com/radiator-engineering/offcut/tree/main/mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.process.run",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: OFFCUT"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T14:58:22Z",
      "createdAt": "2026-09-30T18:02:06Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ray-manaloto/knowledge-base:.claude/mods/kb-settings-guard",
      "repo": "ray-manaloto/knowledge-base",
      "path": ".claude/mods/kb-settings-guard",
      "name": "kb-settings-guard",
      "description": "Denies a delegated agent lane any write to this repo's Claude settings files.",
      "author": "knowledge-base",
      "homepage": "https://github.com/ray-manaloto/knowledge-base",
      "url": "https://github.com/ray-manaloto/knowledge-base/tree/main/.claude/mods/kb-settings-guard",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {
            "tool": "?"
          }
        }
      ],
      "calls": [
        "$.fs.list",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "draws"
        ]
      },
      "sees": [
        "? calls"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-02T01:31:56Z",
      "createdAt": "2026-07-22T21:41:06Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "RedesignedRobot/cdx:.",
      "repo": "RedesignedRobot/cdx",
      "path": ".",
      "name": "cdx",
      "description": "Run OpenAI Codex and Google Antigravity execution lanes from Claude Code with background event delivery, status tracking, and raw command protection.",
      "author": "RedesignedRobot",
      "homepage": "https://github.com/RedesignedRobot/cdx",
      "url": "https://github.com/RedesignedRobot/cdx",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "lanes"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear|resume"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "Bash"
          }
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "/\"^mcp__cdx__\"/"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.write",
        "$.process.run",
        "$.prompt.submit",
        "$.prompt.suggest",
        "$.session.cwd",
        "$.session.id",
        "$.session.surfaces",
        "$.state.get",
        "$.state.set",
        "$.tool.register",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./hooks/contract.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./hooks/contract.d.ts declares state: cdx.live, cdx.poller",
          "./register.ts env writes: nothing",
          "./register.ts env reads: CDX_HOME, HOME",
          "./register.ts state writes: cdx.live, cdx.poller",
          "./register.ts state reads: cdx.live, cdx.poller"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "runs processes",
          "writes files",
          "drives Claude",
          "writes the prompt box",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "Bash calls",
        "every tool call",
        "/\"^mcp__cdx__\"/ calls",
        "every prompt"
      ],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-10-01T09:22:38Z",
      "createdAt": "2026-08-27T11:37:09Z",
      "license": "AGPL-3.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ricardosuman/maestro:mods/lanes",
      "repo": "ricardosuman/maestro",
      "path": "mods/lanes",
      "name": "maestro-lanes",
      "description": "Shows Maestro external lane runs above the prompt.",
      "author": "Ricardo Suman",
      "homepage": "https://github.com/ricardosuman/maestro",
      "url": "https://github.com/ricardosuman/maestro/tree/main/mods/lanes",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.ui.invalidate",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads files",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 0,
      "pushedAt": "2026-09-19T23:19:11Z",
      "createdAt": "2026-08-31T16:50:23Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "ruihe774/cc-persistent-monitor:.",
      "repo": "ruihe774/cc-persistent-monitor",
      "path": ".",
      "name": "persistent-monitor",
      "description": "Monitor tool with persistent (no deadline) watches",
      "author": "Rui He",
      "homepage": "https://github.com/ruihe774/cc-persistent-monitor",
      "url": "https://github.com/ruihe774/cc-persistent-monitor",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__persistent-monitor__monitor"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__persistent-monitor__waitpid"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__persistent-monitor__waitfile"
          }
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__persistent-monitor__monitor_stop"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.process.spawn",
        "$.prompt.submit",
        "$.tool.register"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead."
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.process.spawn",
          "drives Claude"
        ]
      },
      "sees": [
        "mcp__persistent-monitor__monitor calls",
        "mcp__persistent-monitor__waitpid calls",
        "mcp__persistent-monitor__waitfile calls",
        "mcp__persistent-monitor__monitor_stop calls"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T20:45:00Z",
      "createdAt": "2026-10-01T20:11:56Z",
      "license": "Unlicense",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "SaharCarmel/claude-who:claude-who",
      "repo": "SaharCarmel/claude-who",
      "path": "claude-who",
      "name": "claude-who",
      "description": "Friends' Claude Code presence and usage leaderboards via /who.",
      "author": "Claude Who contributors",
      "homepage": "https://github.com/SaharCarmel/claude-who",
      "url": "https://github.com/SaharCarmel/claude-who/tree/main/claude-who",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "who"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "who-leaderboard"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.http.fetch",
        "$.process.run",
        "$.session.id",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-who\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it."
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-16T11:21:37Z",
      "createdAt": "2026-09-15T19:04:18Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "SApplefeld/agent_persona:.",
      "repo": "SApplefeld/agent_persona",
      "path": ".",
      "name": "agentic-plugin",
      "description": "PIANO-esque cognitive layer: persona-keyed state, heartbeat liveness, controller with classify/actuate",
      "author": null,
      "homepage": "https://github.com/SApplefeld/agent_persona",
      "url": "https://github.com/SApplefeld/agent_persona",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.agent.list",
        "$.audio.speak",
        "$.clock.every",
        "$.clock.sleep",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.model.classify",
        "$.model.complete",
        "$.process.run",
        "$.prompt.submit",
        "$.session.cwd",
        "$.session.id",
        "$.state.get",
        "$.state.set",
        "$.store.delete",
        "$.store.get",
        "$.store.keys",
        "$.store.set",
        "$.tool.call",
        "$.tool.register",
        "$.ui.log",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "version: No version specified. Consider adding a version following semver (e.g., \"1.0.0\")",
          "types ./hooks/agentic-plugin.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./hooks/agentic-plugin.d.ts declares state: agentic-plugin.memqLaunchDir",
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "./index.ts env writes: nothing",
          "./index.ts env reads: HOME, TYPESAFE_API_KEY, USERPROFILE",
          "./index.ts state writes: agentic-plugin.memqLaunchDir",
          "./index.ts state reads: agentic-plugin.memqLaunchDir"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "network",
          "runs processes",
          "writes files",
          "drives Claude",
          "reads files",
          "reads env vars",
          "plays audio",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "compaction",
        "every tool call",
        "every prompt"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-02T01:50:43Z",
      "createdAt": "2026-09-11T11:33:48Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Schweem/usage-report:.",
      "repo": "Schweem/usage-report",
      "path": ".",
      "name": "usage-report",
      "description": "Shows context fill, 5-hour and weekly quota, and session cost on the status line under the prompt, with warnings near your limits.",
      "author": "Schweem",
      "homepage": "https://github.com/Schweem/usage-report",
      "url": "https://github.com/Schweem/usage-report",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.measure",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.session.usage",
        "$.state.get",
        "$.state.set",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/index.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/index.d.ts declares state: usage-report.last, usage-report.warned",
          "./register.ts state writes: usage-report.last, usage-report.warned",
          "./register.ts state reads: usage-report.last, usage-report.warned"
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T21:44:08Z",
      "createdAt": "2026-10-01T21:42:59Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "seanGSISG/ad-ldap-plugin:.",
      "repo": "seanGSISG/ad-ldap-plugin",
      "path": ".",
      "name": "ad-ldap",
      "description": "Active Directory administration over LDAPS for Claude Code: an MCP server (FastMCP + ldap3) with 15 tools, admin agents, slash commands, a safety skill, and a guard that refuses any AD write until the identical call has been dry-run first. Headline workflow: mass-assign computer managedBy from description-held owner names via a dry-run plan/review/apply loop.",
      "author": "seanGSISG",
      "homepage": "https://github.com/seanGSISG/ad-ldap-plugin",
      "url": "https://github.com/seanGSISG/ad-ldap-plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./guard.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "tool.check",
          "matcher": {
            "tool": "?"
          }
        }
      ],
      "calls": [
        "$.agent.list",
        "$.session.messages"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead."
        ]
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads the transcript"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-25T15:18:53Z",
      "createdAt": "2026-09-23T15:42:42Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "seanmars/my-agent-plugins:plugins/pet",
      "repo": "seanmars/my-agent-plugins",
      "path": "plugins/pet",
      "name": "pet",
      "description": "A small ASCII pet that lives in the band above the prompt, fed by /pet",
      "author": "seanmars",
      "homepage": "https://github.com/seanmars/my-agent-plugins",
      "url": "https://github.com/seanmars/my-agent-plugins/tree/main/plugins/pet",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./pet.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "pet"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt",
            "surface": "terminal"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 0,
      "pushedAt": "2026-09-23T07:41:13Z",
      "createdAt": "2026-05-07T15:42:15Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "sftinc/claude-code-model-router:plugin",
      "repo": "sftinc/claude-code-model-router",
      "path": "plugin",
      "name": "model-router",
      "description": "Routes each turn and subagent to a model tier and reasoning effort using a classifier behind any server that speaks POST /v1/classify (model-router-api on Cloudflare Workers AI today), falling back to the engine's built-in classifier.",
      "author": "SFT Inc",
      "homepage": "https://github.com/sftinc/claude-code-model-router",
      "url": "https://github.com/sftinc/claude-code-model-router/tree/main/plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./model-router.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.clock.sleep",
        "$.env.get",
        "$.fs.write",
        "$.http.fetch",
        "$.model.classify",
        "$.session.id",
        "$.session.messages",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "version: No version specified. Consider adding a version following semver (e.g., \"1.0.0\")",
          "./model-router.ts env writes: nothing",
          "./model-router.ts env reads: HOME"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "writes files",
          "drives Claude",
          "reads env vars",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "subagent spawns"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T23:00:05Z",
      "createdAt": "2026-09-24T01:03:00Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "sKeLe100/firstmate:.claude/mods/firstmate-calm",
      "repo": "sKeLe100/firstmate",
      "path": ".claude/mods/firstmate-calm",
      "name": "firstmate-calm",
      "description": "Firstmate Calm for Claude Code: the sailboat working animation and conversation-only transcript presentation, sharing the per-home config/calm preference with the Pi Calm extension. Its hooks module may load through CLAUDE_CODE_ENABLE_FUNCTION_HOOKS or Claude Code's tengu_plugin_hooks_modules rollout flag, but the mod activates only when CLAUDE_CODE_ENABLE_FUNCTION_HOOKS is exactly 1 and is otherwise a complete no-op.",
      "author": "Firstmate",
      "homepage": "https://github.com/sKeLe100/firstmate",
      "url": "https://github.com/sKeLe100/firstmate/tree/main/.claude/mods/firstmate-calm",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "calm"
          }
        },
        {
          "event": "config.set",
          "matcher": {
            "key": "theme"
          }
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Spinner"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolUse"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolResult"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolGroup"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "UserMessage"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.command.register",
        "$.config.list",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.session.messages",
        "$.ui.blit",
        "$.ui.invalidate",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: CLAUDE_CODE_ENABLE_FUNCTION_HOOKS, FM_CONFIG_OVERRIDE, FM_HOME, FM_ROOT_OVERRIDE"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Spinner",
        "ToolUse",
        "ToolResult",
        "ToolGroup",
        "UserMessage",
        "AssistantMessage"
      ],
      "stars": 0,
      "pushedAt": "2026-09-30T14:41:06Z",
      "createdAt": "2026-08-18T10:27:56Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "sohryuu101/fast-jev-compaction:.",
      "repo": "sohryuu101/fast-jev-compaction",
      "path": ".",
      "name": "fast-jev-compaction",
      "description": "Verbatim Jev-guided compaction for Claude Code sessions.",
      "author": null,
      "homepage": "https://github.com/sohryuu101/fast-jev-compaction",
      "url": "https://github.com/sohryuu101/fast-jev-compaction",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./fast-jev.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.http.fetch",
        "$.session.compact",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./fast-jev.ts env writes: nothing",
          "./fast-jev.ts env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-20T15:44:50Z",
      "createdAt": "2026-09-20T15:41:24Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "sohryuu101/jev-vault-gate:.",
      "repo": "sohryuu101/jev-vault-gate",
      "path": ".",
      "name": "jev-vault-gate",
      "description": "Uses Jev to spot durable knowledge in a turn and auto-capture it into ~/vault/raw/ for /compile.",
      "author": null,
      "homepage": "https://github.com/sohryuu101/jev-vault-gate",
      "url": "https://github.com/sohryuu101/jev-vault-gate",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./vault-gate.ts"
      ],
      "hooks": [
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "classic.UserPromptSubmit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.http.fetch",
        "$.session.messages",
        "$.store.get",
        "$.store.set",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "./vault-gate.ts env writes: nothing",
          "./vault-gate.ts env reads: HOME, TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "writes files",
          "reads files",
          "reads env vars",
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-20T15:46:39Z",
      "createdAt": "2026-09-20T15:46:34Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "sontixyou/sushi-uchi:sushida",
      "repo": "sontixyou/sushi-uchi",
      "path": "sushida",
      "name": "sushida",
      "description": "寿司打風の日本語タイピングゲームを /sushida でペインに開く。かな入力のローマ字表記揺れに対応。",
      "author": "Kengo Nishimura",
      "homepage": "https://github.com/sontixyou/sushi-uchi",
      "url": "https://github.com/sontixyou/sushi-uchi/tree/main/sushida",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "sushida"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.message",
          "matcher": {}
        }
      ],
      "calls": [
        "$.command.register",
        "$.store.get",
        "$.store.set",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [
        "hooks/game.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-18T02:43:30Z",
      "createdAt": "2026-09-18T01:29:17Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "spiiritual/claude-code-stuff:plugins/better-compaction",
      "repo": "spiiritual/claude-code-stuff",
      "path": "plugins/better-compaction",
      "name": "better-compaction",
      "description": "Compaction that waits for the model's turn to end, and summarizes at its own effort level.",
      "author": "spiiritual",
      "homepage": "https://github.com/spiiritual/claude-code-stuff",
      "url": "https://github.com/spiiritual/claude-code-stuff/tree/main/plugins/better-compaction",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "classic.PreCompact",
          "matcher": {}
        },
        {
          "event": "classic.PostCompact",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.env.get",
        "$.env.set",
        "$.session.compact",
        "$.session.usage",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: CLAUDE_CODE_EFFORT_LEVEL",
          "./register.ts env reads: CLAUDE_CODE_EFFORT_LEVEL"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "sets env vars",
          "drives Claude",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "classic hooks",
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-28T20:59:02Z",
      "createdAt": "2026-09-28T17:33:28Z",
      "license": "MIT-0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "spiiritual/claude-code-stuff:plugins/whiteboard-defense",
      "repo": "spiiritual/claude-code-stuff",
      "path": "plugins/whiteboard-defense",
      "name": "whiteboard-defense",
      "description": "Understand what you ship: plan with a real diagram and decisions you make yourself, then get grilled on it after building.",
      "author": "spiiritual",
      "homepage": "https://github.com/spiiritual/claude-code-stuff",
      "url": "https://github.com/spiiritual/claude-code-stuff/tree/main/plugins/whiteboard-defense",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__whiteboard-defense__draw"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "ToolResult"
          }
        }
      ],
      "calls": [
        "$.fs.read",
        "$.fs.write",
        "$.process.run",
        "$.tool.register",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "drives Claude",
          "reads files",
          "draws"
        ]
      },
      "sees": [
        "mcp__whiteboard-defense__draw calls"
      ],
      "draws": [
        "ToolResult"
      ],
      "stars": 0,
      "pushedAt": "2026-09-28T20:59:02Z",
      "createdAt": "2026-09-28T17:33:28Z",
      "license": "MIT-0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Suntory-N-Water/suntory-n-water-marketplace:plugins/general-dev-mods",
      "repo": "Suntory-N-Water/suntory-n-water-marketplace",
      "path": "plugins/general-dev-mods",
      "name": "general-dev-mods",
      "description": "開発全般で使える Claude Mods 集。現在は cache-ttl-compact (離席が続いてプロンプトキャッシュの 1 時間 TTL が失効する前に conversation を自動で compact する) を含む。",
      "author": "Suntory-N-Water",
      "homepage": "https://github.com/Suntory-N-Water/suntory-n-water-marketplace",
      "url": "https://github.com/Suntory-N-Water/suntory-n-water-marketplace/tree/main/plugins/general-dev-mods",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./cache-ttl-compact/register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.session.compact",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T23:25:32Z",
      "createdAt": "2026-02-22T07:42:10Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "SuzumiyaAoba/claude-essential-conversation-mod:.",
      "repo": "SuzumiyaAoba/claude-essential-conversation-mod",
      "path": ".",
      "name": "essential-conversation",
      "description": "Shows each turn's user prompt paired with Claude Code's last answer for that turn in a side pane (/conversation).",
      "author": "SuzumiyaAoba",
      "homepage": "https://github.com/SuzumiyaAoba/claude-essential-conversation-mod",
      "url": "https://github.com/SuzumiyaAoba/claude-essential-conversation-mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "UserMessage"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "conversation"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "essential-conversation"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear|resume"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.command.register",
        "$.session.id",
        "$.session.messages",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.scroll"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 1,
        "name": "reads",
        "labels": [
          "reads the transcript",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "UserMessage",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-22T18:27:24Z",
      "createdAt": "2026-09-22T16:23:05Z",
      "license": null,
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "tldev/claude-roulette:plugin",
      "repo": "tldev/claude-roulette",
      "path": "plugin",
      "name": "claude-roulette",
      "description": "A private text chat with another human while Claude works, with random matching, interests, next, block, report, and automatic task completion handling.",
      "author": "Claude Roulette contributors",
      "homepage": "https://github.com/tldev/claude-roulette",
      "url": "https://github.com/tldev/claude-roulette/tree/main/plugin",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "roulette"
          }
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "claude-roulette"
          }
        },
        {
          "event": "classic.SessionEnd",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.http.fetch",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-roulette\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it.",
          "./register.ts env writes: nothing",
          "./register.ts env reads: ROULETTE_URL"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "classic hooks"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-15T20:45:59Z",
      "createdAt": "2026-09-15T20:08:34Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "tobinsouth/fortune-cookie-mod:.",
      "repo": "tobinsouth/fortune-cookie-mod",
      "path": ".",
      "name": "fortune-cookie",
      "description": "/fortune cracks open a fortune cookie: one line of wisdom for your coding session, shown in the transcript and as a toast.",
      "author": "Tobin",
      "homepage": "https://github.com/tobinsouth/fortune-cookie-mod",
      "url": "https://github.com/tobinsouth/fortune-cookie-mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "fortune"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.command.register",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T17:44:56Z",
      "createdAt": "2026-10-01T17:38:49Z",
      "license": "Apache-2.0",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "togishima/better-ask-picker:.",
      "repo": "togishima/better-ask-picker",
      "path": ".",
      "name": "better-ask-picker",
      "description": "Ask the user a question in a dedicated pane: show every option on one screen with a summary, single or multi-select, no 4-option limit.",
      "author": "Takashi Ogishima",
      "homepage": "https://github.com/togishima/better-ask-picker",
      "url": "https://github.com/togishima/better-ask-picker",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./hooks.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {
            "tool": "mcp__better-ask-picker__pick"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.process.run",
        "$.tool.register",
        "$.ui.ask",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.open",
        "$.ui.panes",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "drives Claude",
          "draws"
        ]
      },
      "sees": [
        "mcp__better-ask-picker__pick calls"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-19T06:50:04Z",
      "createdAt": "2026-09-19T05:07:34Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Tolsee/dotfiles:ai/claude/skills/jev-model-router",
      "repo": "Tolsee/dotfiles",
      "path": "ai/claude/skills/jev-model-router",
      "name": "jev-model-router",
      "description": "Corrects the model tier of every subagent spawn (agent.spawn) with a live Jev judgment (haiku / sonnet / opus), instead of relying on /delegate's static routing table. A risky task (touches production, money, or irreversible data) is always forced to opus regardless of confidence.",
      "author": "tulsi",
      "homepage": "https://github.com/Tolsee/dotfiles",
      "url": "https://github.com/Tolsee/dotfiles/tree/main/ai/claude/skills/jev-model-router",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./jev-model-router.ts"
      ],
      "hooks": [
        {
          "event": "agent.spawn",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.env.get",
        "$.http.fetch",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./jev-model-router.ts env writes: nothing",
          "./jev-model-router.ts env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "subagent spawns"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T04:33:46Z",
      "createdAt": "2019-12-30T02:34:25Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "tomada1114/clawd-band:plugins/clawd-band",
      "repo": "tomada1114/clawd-band",
      "path": "plugins/clawd-band",
      "name": "clawd-band",
      "description": "An unofficial fan-made pixel cat that lives in the band above the prompt and reacts to what Claude is doing: thinking, editing, craning after a search, yowling in a shell, squeezing its eyes shut at a tool error, and folding its ears down to sleep between turns.",
      "author": "tomada1114",
      "homepage": "https://github.com/tomada1114/clawd-band",
      "url": "https://github.com/tomada1114/clawd-band/tree/main/plugins/clawd-band",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.every",
        "$.ui.blit",
        "$.ui.invalidate",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": [
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 0,
      "pushedAt": "2026-09-16T02:39:22Z",
      "createdAt": "2026-09-16T02:13:12Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "totally-tim/effort-router:.",
      "repo": "totally-tim/effort-router",
      "path": ".",
      "name": "effort-router",
      "description": "Picks the reasoning effort for each turn of the main conversation with a System One classifier (hosted Jev or a compatible service) and shows the level on the spinner and on the line that closes the turn. In shadow mode it shows and logs its pick and sends the session's effort; in enforce mode it sends the pick. Requires CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1.",
      "author": "Tim Kraus",
      "homepage": "https://github.com/totally-tim/effort-router",
      "url": "https://github.com/totally-tim/effort-router",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "prompt.attachment",
          "matcher": {
            "type": "queued_command"
          }
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Spinner"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "TurnDuration"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "effort-router"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.http.fetch",
        "$.session.cwd",
        "$.session.id",
        "$.session.messages",
        "$.session.root",
        "$.settings.read",
        "$.state.get",
        "$.state.set",
        "$.ui.invalidate",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "types ./types/effort-router.d.ts declares on $: nothing (no EngineInterface member)",
          "types ./types/effort-router.d.ts declares state: effort-router.memory, effort-router.turn",
          "./register.ts env writes: nothing",
          "./register.ts env reads: HOME, TYPESAFE_API_KEY, TYPESAFE_BASE_URL, TYPESAFE_DEFAULT_MODEL",
          "./register.ts state writes: effort-router.memory, effort-router.turn",
          "./register.ts state reads: effort-router.memory, effort-router.turn"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "other: $.state.get",
          "other: $.state.set",
          "network",
          "writes files",
          "reads files",
          "reads env vars",
          "reads settings",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call"
      ],
      "draws": [
        "Spinner",
        "TurnDuration"
      ],
      "stars": 0,
      "pushedAt": "2026-09-30T05:11:30Z",
      "createdAt": "2026-09-26T10:29:03Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "tristankenney/laya-compaction:.",
      "repo": "tristankenney/laya-compaction",
      "path": ".",
      "name": "laya-compaction",
      "description": "Verbatim context compaction for Claude Code, scored by a local Laya model.",
      "author": "Tristan Kenney",
      "homepage": "https://github.com/tristankenney/laya-compaction",
      "url": "https://github.com/tristankenney/laya-compaction",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./laya-compaction.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.http.fetch",
        "$.session.compact",
        "$.session.usage",
        "$.settings.read",
        "$.ui.log",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./laya-compaction.ts env writes: nothing",
          "./laya-compaction.ts env reads: TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "drives Claude",
          "reads env vars",
          "reads settings",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-28T20:22:09Z",
      "createdAt": "2026-09-25T06:24:57Z",
      "license": "NOASSERTION",
      "archived": false,
      "defaultBranch": "master"
    },
    {
      "id": "ubunatic/harnez:canary/646-session-compact",
      "repo": "ubunatic/harnez",
      "path": "canary/646-session-compact",
      "name": "harnez-646-session-compact-canary",
      "description": "Minimal session.compact function-hook replacement probe for issue 646.",
      "author": null,
      "homepage": "https://github.com/ubunatic/harnez",
      "url": "https://github.com/ubunatic/harnez/tree/main/canary/646-session-compact",
      "kind": "fixture",
      "hasManifest": true,
      "modules": [
        "./probe.ts"
      ],
      "hooks": [
        {
          "event": "session.compact",
          "matcher": {}
        }
      ],
      "calls": [
        "$.process.run",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "draws"
        ]
      },
      "sees": [
        "compaction"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-10-01T21:31:47Z",
      "createdAt": "2026-09-14T07:10:30Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "Vatsa10/Meta-Harness:.",
      "repo": "Vatsa10/Meta-Harness",
      "path": ".",
      "name": "meta-harness",
      "description": "Harness engineering for Claude Code: attribute every prompt/agent change, keep every candidate, diagnose from traces, hold out a split - and search over Claude Code's own scaffold against your repo's real failures.",
      "author": "Vatsa",
      "homepage": "https://github.com/Vatsa10/Meta-Harness",
      "url": "https://github.com/Vatsa10/Meta-Harness",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./harness.ts"
      ],
      "hooks": [
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "tool.check",
          "matcher": {}
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.write",
        "$.session.id",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./harness.ts env writes: nothing",
          "./harness.ts env reads: HOME, META_HARNESS_HOME, USERPROFILE"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "reads files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [
        "every tool call",
        "every prompt"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-29T10:00:39Z",
      "createdAt": "2026-09-15T15:36:48Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "vitoliu93/harness-dev-plugins:mods/jev",
      "repo": "vitoliu93/harness-dev-plugins",
      "path": "mods/jev",
      "name": "dev-kit-jev",
      "description": "Optional Claude Mod: contextual skill recommendations and historical references through Jev.",
      "author": "vito",
      "homepage": "https://github.com/vitoliu93/harness-dev-plugins",
      "url": "https://github.com/vitoliu93/harness-dev-plugins/tree/main/mods/jev",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "prompt.submit",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.now",
        "$.env.get",
        "$.env.set",
        "$.http.fetch",
        "$.process.run",
        "$.session.cwd",
        "$.session.id",
        "$.session.messages",
        "$.ui.log"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: DEVKIT_JEV_RECALL_SESSION",
          "./register.ts env reads: DEVKIT_JEV_RECALL_SESSION, TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "sets env vars",
          "reads env vars",
          "reads the transcript",
          "draws"
        ]
      },
      "sees": [
        "every prompt"
      ],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-27T15:11:07Z",
      "createdAt": "2026-06-03T15:47:12Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "vivi-0124/me:mermaid-live",
      "repo": "vivi-0124/me",
      "path": "mermaid-live",
      "name": "mermaid-live",
      "description": "Claude の応答が流れてくる途中から Mermaid で図解する Mod。図にすべきか・どの図か・もう描いていいかの判断だけを Jev（TypeSafe AI の System One モデル）に確率で聞き、Mermaid のソースは決定的に組み立てる。",
      "author": "vivi-0124",
      "homepage": "https://github.com/vivi-0124/me",
      "url": "https://github.com/vivi-0124/me/tree/main/mermaid-live",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.env.get",
        "$.fs.write",
        "$.http.fetch",
        "$.process.run",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.ts env writes: nothing",
          "./register.ts env reads: MERMAID_LIVE_API_KEY, MERMAID_LIVE_BASE_URL, MERMAID_LIVE_DIR, MERMAID_LIVE_MIN_GROWTH, MERMAID_LIVE_MIN_INTERVAL_MS, MERMAID_LIVE_MODEL, MERMAID_LIVE_PORT, MERMAID_LIVE_THRESHOLD, MERMAID_LIVE_VIEWER, TYPESAFE_AI_API_KEY, TYPESAFE_API_KEY"
        ]
      },
      "reach": {
        "level": 3,
        "name": "network",
        "labels": [
          "network",
          "runs processes",
          "writes files",
          "reads env vars",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 0,
      "pushedAt": "2026-09-23T13:14:20Z",
      "createdAt": "2026-08-07T23:43:52Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "vmallela0/cc-buddy:.",
      "repo": "vmallela0/cc-buddy",
      "path": ".",
      "name": "cc-buddy",
      "description": "Brings back /buddy: the small creature that watched you code, above the prompt again. Restores the companion in ~/.claude.json exactly (same species, rarity, hat and stats), hatches an egg for new accounts, levels up from commits and passing tests, unlocks a 49-buddy roster as you ship, reacts to Claude's work for free, answers in a Haiku-written line when you say its name, and shows in a pane on desktop and mobile. Needs CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1.",
      "author": "vedu",
      "homepage": "https://github.com/vmallela0/cc-buddy",
      "url": "https://github.com/vmallela0/cc-buddy",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.attach",
          "matcher": {}
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "buddy"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "agent.spawn",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "ui.message",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane",
            "requestId": "buddy"
          }
        }
      ],
      "calls": [
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.env.get",
        "$.fs.read",
        "$.model.complete",
        "$.session.id",
        "$.session.surface",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.toast"
      ],
      "surfaceModules": [
        "hooks/boards/buddy.tsx"
      ],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": [
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: CC_BUDDY_CLAUDE_JSON, HOME"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "drives Claude",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "subagent spawns",
        "every tool call"
      ],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-29T20:57:06Z",
      "createdAt": "2026-09-29T20:42:42Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "WhiteKr/claude-plugin-mermaid:.",
      "repo": "WhiteKr/claude-plugin-mermaid",
      "path": ".",
      "name": "mermaid",
      "description": "Render ```mermaid fences in assistant replies as Unicode box-drawing diagrams in the terminal transcript",
      "author": "WhiteKr",
      "homepage": "https://github.com/WhiteKr/claude-plugin-mermaid",
      "url": "https://github.com/WhiteKr/claude-plugin-mermaid",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./hooks.js"
      ],
      "hooks": [
        {
          "event": "ui.render",
          "matcher": {
            "component": "AssistantMessage"
          }
        }
      ],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [
        "AssistantMessage"
      ],
      "stars": 0,
      "pushedAt": "2026-09-16T07:12:26Z",
      "createdAt": "2026-09-16T07:12:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "WorldInnovationsDepartment/claude_slots:.",
      "repo": "WorldInnovationsDepartment/claude_slots",
      "path": ".",
      "name": "claude-slots",
      "description": "Replaces the spinner with an animated ASCII slot machine: pull the lever on every prompt, watch the reels spin while Claude works, cash in when the turn completes.",
      "author": "Danylo Vorvul",
      "homepage": "https://github.com/WorldInnovationsDepartment/claude_slots",
      "url": "https://github.com/WorldInnovationsDepartment/claude_slots",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./slots.js"
      ],
      "hooks": [],
      "calls": [],
      "surfaceModules": [],
      "validate": {
        "status": "failed",
        "claudeVersion": "2.1.287",
        "errors": [
          "name: Plugin name \"claude-slots\" is reserved: it passes as one of Anthropic's own. A third party's plugin name cannot start with \"claude-\", \"anthropic-\", \"anthropics-\", or \"cc-plugin-\", be \"claude\", \"anthropic\", \"anthropics\", \"claude-code\", or \"claude-mods\", or put \"official\" beside \"claude\" or \"anthropic\". Name it for what it does. If this is one of Anthropic's own plugins, validate the marketplace that lists it.",
          "modules../slots.js: WorldInnovationsDepartment__claude_slots: /tmp/acm-clones/WorldInnovationsDepartment__claude_slots/hooks/slots.js:407: the hook on \"turn.step\" is not an async generator: turn.step streams, so it takes async function* ($, e, next) { ... }, which yields the chunks and returns the result; $ is always spelled $.noun.event(...) at the call site, on is always on(\"<event>\", hook), and next.to always next… [+16 chars]"
        ]
      },
      "reach": {
        "level": 0,
        "name": "draws and remembers",
        "labels": []
      },
      "sees": [],
      "draws": [],
      "stars": 0,
      "pushedAt": "2026-09-15T16:47:49Z",
      "createdAt": "2026-09-15T10:47:16Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "xotong/claude-marketplace:plugins/code-modernization",
      "repo": "xotong/claude-marketplace",
      "path": "plugins/code-modernization",
      "name": "code-modernization",
      "description": "Guided modernization for any legacy codebase: start with /modernize, get an assessment, an interactive map, the business rules mined from the code, and a plan you approve, then an upgrade, a rewrite or a rebuild with independent proof that the new code behaves like the old. Includes security hardening, a one-page report, specialist agents, and an optional live progress pane (early access).",
      "author": "Anthropic",
      "homepage": "https://github.com/xotong/claude-marketplace",
      "url": "https://github.com/xotong/claude-marketplace/tree/main/plugins/code-modernization",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "PromptHint"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        },
        {
          "event": "ui.close",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "modernize-panel"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "modernize-review-pane"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "modernize-sign"
          }
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "clear|resume"
          }
        },
        {
          "event": "prompt.submit",
          "matcher": {}
        },
        {
          "event": "turn.start",
          "matcher": {}
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.fs.exists",
        "$.fs.list",
        "$.fs.read",
        "$.fs.stat",
        "$.fs.write",
        "$.prompt.fill",
        "$.prompt.submit",
        "$.store.get",
        "$.store.set",
        "$.turn.abort",
        "$.ui.blit",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve",
        "$.ui.status",
        "$.ui.toast"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "writes files",
          "drives Claude",
          "writes the prompt box",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every prompt",
        "every tool call"
      ],
      "draws": [
        "PromptHint",
        "AbovePrompt",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-30T15:11:21Z",
      "createdAt": "2026-05-08T02:32:28Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "yai333/autonomous-loop:.",
      "repo": "yai333/autonomous-loop",
      "path": ".",
      "name": "autonomous-loop",
      "description": "A state-machine graph engine that drives a ticket through claim -> worktree -> coding -> evaluate -> review -> human approval, spawning and monitoring subagents at each step.",
      "author": "yi.ai",
      "homepage": "https://github.com/yai333/autonomous-loop",
      "url": "https://github.com/yai333/autonomous-loop",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./index.ts"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        },
        {
          "event": "agent.offer",
          "matcher": {
            "agent": "?"
          }
        },
        {
          "event": "agent.offer",
          "matcher": {
            "agent": "?"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "turn.step",
          "matcher": {}
        },
        {
          "event": "tool.call",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "autonomous-loop"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.agent.list",
        "$.agent.register",
        "$.agent.spawn",
        "$.clock.every",
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.fs.exists",
        "$.process.run",
        "$.store.delete",
        "$.store.get",
        "$.store.set",
        "$.ui.ask",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "passed",
        "claudeVersion": "2.1.287",
        "errors": []
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "other: $.agent.register",
          "runs processes",
          "drives Claude",
          "reads files",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "every tool call"
      ],
      "draws": [
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-26T02:19:38Z",
      "createdAt": "2026-09-26T02:12:59Z",
      "license": null,
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "yodem/agentic-label-engineering:.",
      "repo": "yodem/agentic-label-engineering",
      "path": ".",
      "name": "ale",
      "description": "/ale-board: a live task board for an Agentic Label Engineering (ALE) run above the prompt and in a docked pane. Reads `python3 -m ale status --json` and the run's label files; read-only, LLM-free. An experiment on Claude Code function hooks (Mods).",
      "author": "ALE",
      "homepage": "https://github.com/yodem/agentic-label-engineering",
      "url": "https://github.com/yodem/agentic-label-engineering",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "../mod/register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "ale-board"
          }
        },
        {
          "event": "ui.close",
          "matcher": {
            "id": "ale-board"
          }
        },
        {
          "event": "turn.complete",
          "matcher": {}
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "Pane"
          }
        }
      ],
      "calls": [
        "$.clock.after",
        "$.clock.every",
        "$.command.register",
        "$.env.get",
        "$.fs.exists",
        "$.fs.read",
        "$.fs.stat",
        "$.process.run",
        "$.session.cwd",
        "$.store.get",
        "$.store.set",
        "$.ui.close",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.open",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "../mod/register.tsx env writes: nothing",
          "../mod/register.tsx env reads: ALE_ROSTER, ALE_RUN_DIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt",
        "Pane"
      ],
      "stars": 0,
      "pushedAt": "2026-09-29T05:18:00Z",
      "createdAt": "2026-09-20T09:44:06Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "zyx1121/music-mod:.",
      "repo": "zyx1121/music-mod",
      "path": ".",
      "name": "music-mod",
      "description": "/music: what macOS Music.app is playing, in one line above the prompt. A pressable play/pause glyph, track · artist · album, a progress bar with the clocks, and a pressable next-track glyph. One read of Music.app every five seconds, shared by every open session; the clock ticks in between.",
      "author": "zyx1121",
      "homepage": "https://github.com/zyx1121/music-mod",
      "url": "https://github.com/zyx1121/music-mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "music"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.command.register",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.process.run",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: TMPDIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 0,
      "pushedAt": "2026-09-28T07:09:30Z",
      "createdAt": "2026-09-21T02:43:28Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    },
    {
      "id": "zyx1121/today-mod:.",
      "repo": "zyx1121/today-mod",
      "path": ".",
      "name": "today-mod",
      "description": "/today: the day's agenda for Claude and for you. Calendar events, E3 deadlines and Reminders are read through the macos and nycu plugin scripts, shown as one line above the prompt with a countdown to the next event, and handed to Claude as a context block so it knows your day.",
      "author": "zyx1121",
      "homepage": "https://github.com/zyx1121/today-mod",
      "url": "https://github.com/zyx1121/today-mod",
      "kind": "mod",
      "hasManifest": true,
      "modules": [
        "./register.tsx"
      ],
      "hooks": [
        {
          "event": "session.start",
          "matcher": {}
        },
        {
          "event": "command.run",
          "matcher": {
            "command": "today"
          }
        },
        {
          "event": "ui.render",
          "matcher": {
            "component": "AbovePrompt"
          }
        },
        {
          "event": "prompt.context",
          "matcher": {}
        },
        {
          "event": "session.end",
          "matcher": {}
        }
      ],
      "calls": [
        "$.clock.every",
        "$.clock.now",
        "$.clock.sleep",
        "$.command.register",
        "$.env.get",
        "$.fs.read",
        "$.fs.write",
        "$.process.run",
        "$.store.get",
        "$.store.set",
        "$.ui.invalidate",
        "$.ui.log",
        "$.ui.resolve"
      ],
      "surfaceModules": [],
      "validate": {
        "status": "warnings",
        "claudeVersion": "2.1.287",
        "errors": [
          "root: CLAUDE.md at the plugin root is not loaded as project context. To ship context with your plugin, use a skill (skills/<name>/SKILL.md) instead.",
          "./register.tsx env writes: nothing",
          "./register.tsx env reads: CLAUDE_CONFIG_DIR, HOME, TMPDIR"
        ]
      },
      "reach": {
        "level": 2,
        "name": "writes or runs",
        "labels": [
          "runs processes",
          "writes files",
          "reads files",
          "reads env vars",
          "persists state",
          "draws"
        ]
      },
      "sees": [
        "the system prompt"
      ],
      "draws": [
        "AbovePrompt"
      ],
      "stars": 0,
      "pushedAt": "2026-09-30T11:50:10Z",
      "createdAt": "2026-09-21T03:30:37Z",
      "license": "MIT",
      "archived": false,
      "defaultBranch": "main"
    }
  ]
}
