Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
/plugin marketplace add nice-computer/nice-semaphorenpx agentmods add plugins/nice-computer/nice-semaphore/nice-semaphoregit clone --depth 1 https://github.com/nice-computer/nice-semaphoreGrade A, and why
nice-semaphore scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
{
"name": "nice-semaphore",
"description": "Hooks that publish Claude Code session status to ~/.claude/nice-semaphore-status.json for the Nice Semaphore menu bar app.",
"version": "0.1.0",
"author": {
"name": "nice-computer"
},
"hooks": {
"SessionStart": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/hooks/nice-semaphore-status.sh" }
]
}
],
"UserPromptSubmit": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/hooks/nice-semaphore-status.sh" }
]
}
],
"PreToolUse": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/hooks/nice-semaphore-status.sh" }
]
}
],
"PostToolUse": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/hooks/nice-semaphore-status.sh" }
]
}
],
"Notification": [
{
"matcher": "permission_prompt",
"hooks": [
{ "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/hooks/nice-semaphore-status.sh" }
]
}
],
"Stop": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/hooks/nice-semaphore-status.sh" }
]
}
],
"SessionEnd": [
{
"matcher": "",
"hooks": [
{ "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/hooks/nice-semaphore-status.sh" }
]
}
]
}
}
What ships with it
1 file beside plugin.json in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 67 lines scan A 98b41f5aec10
nice-semaphore is a plugin published in the GitHub repository nice-computer/nice-semaphore (5 stars, last pushed 2mo ago), licensed MIT. Its token cost is not measured: this kind of file is read by the harness, not the model. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other plugins, from other repositories
beads
AI-supervised issue tracker for coding workflows. Manage tasks, discover work, and maintain context with simple CLI commands.
claude-code-settings
Claude Code settings, agents and skills for enhanced development workflows.
codex-skill
Leverage OpenAI Codex for non-interactive automation mode and hands-off task execution.
nanobanana-skill
Generate or edit images using Google Gemini API via nanobanana.
youtube-transcribe-skill
Extract subtitles/transcripts from YouTube videos via CLI or browser automation.
project-codeguard
Plugin marketplace listing 1 plugin: codeguard-security.