Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"plugins": [
{
"name": "agent-radar",
"description": "One live line above the prompt per running subagent: time, tool count and what it's doing. /radar shows every agent and its messages.",
"description": "One live line above the prompt per running subagent or background shell: time, tool count and what it's doing. /radar shows every agent and its messages.",
"version": "0.2.0",
"source": "./mods/agent-radar",
"category": "See what's happening",
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ claude --plugin-dir mods/context-bar
| 🔥 | **heatmap** | A GitHub-style grid of your Claude Code time, with your streak, peak hours and top projects | `/heatmap` |
| 💳 | **openai-balance** | Your OpenAI API credit: an estimated balance with a gauge, today's spend, where the money mostly went, and the last call. Needs an OpenAI organization Admin key | `/openai-balance` |
| 🪙 | **openrouter-balance** | Your OpenRouter credit: the real balance with a gauge, today's spend and the model the money mostly went to. A regular API key shows the balance too when OpenRouter allows it, plus its own spend and limit | `/openrouter-balance` |
| 📡 | **agent-radar** | One live line per running subagent | `/radar` |
| 📡 | **agent-radar** | One live line per running subagent or background shell | `/radar` |
| 🔍 | **review-watch** | One live line per running code review (Codex or a review subagent) with the model, target, elapsed time and Codex's latest output. A toast lists the findings when it ends | |
| 🌐 | **browser-lanes** | Whether this session has a browser, and who holds it | `/browser` |
| 🕌 | **prayer-times** | The current prayer and how long is left, the next one, and zawal. Computed on your computer, Hanafi or standard Asr | `/prayers` |
Expand Down
4 changes: 2 additions & 2 deletions docs/mods.md
Original file line number Diff line number Diff line change
Expand Up @@ -169,12 +169,12 @@ Shows your OpenRouter credit above the Claude Code prompt.

### 📡 agent-radar

Shows one live line per running Claude Code subagent.
Shows one live line per running Claude Code subagent or background shell.

- A finished agent shows a check for 30 seconds, then its line goes away
- A toast says when each one finishes
- `/radar` lists every agent this session
- A background Bash command (`run_in_background`, or one moved to the background with Ctrl+B) gets a line too, tagged `sh`; one that runs `codex exec`, `opencode run` and the like is labelled with that agent and model. It ends when Claude Code closes its output file, found by `lsof` every 5 seconds, so without `lsof` it stays "running"
- A background Bash command (`run_in_background`, or one moved to the background with Ctrl+B) gets a line too, tagged `sh`; one that runs `codex exec`, `opencode run` and the like is labeled with that agent and model. It ends when Claude Code closes its output file, found by `lsof` every 5 seconds, so without `lsof` it stays "running"
- In the pane, `1` to `9` open that agent's messages, `b` goes back, `c` clears finished agents and `q` closes

### 🔀 switchboard
Expand Down
2 changes: 1 addition & 1 deletion mods/agent-radar/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "agent-radar",
"version": "0.2.0",
"description": "One live line above the prompt per running subagent: time, tool count and what it's doing. /radar shows every agent and its messages.",
"description": "One live line above the prompt per running subagent or background shell: time, tool count and what it's doing. /radar shows every agent and its messages.",
"author": {
"name": "Hamza Zafar",
"url": "https://github.com/hamzafer"
Expand Down
2 changes: 1 addition & 1 deletion site/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ <h3 id="cat-see"><span class="sq" aria-hidden="true">■</span> See what&#x27;s
<li class="row has-thumb"><a href="mods/heatmap/"><span class="row-text"><span class="row-name">heatmap</span><span class="row-desc">A GitHub-style grid of your Claude Code time, with your streak and top projects</span><code class="cmd">/heatmap</code></span><span class="row-thumb"><img style="max-width:418px" src="images/gallery/heatmap.png" width="836" height="412" alt="heatmap: a year of Claude Code activity as orange squares, with a 25-day streak, peak hours and top projects" decoding="async" loading="lazy"></span></a></li>
<li class="row"><a href="mods/openai-balance/"><span class="row-text"><span class="row-name">openai-balance</span><span class="row-desc">Your OpenAI API credit, today&#x27;s spend, where it went and the last call</span><code class="cmd">/openai-balance</code></span></a></li>
<li class="row"><a href="mods/openrouter-balance/"><span class="row-text"><span class="row-name">openrouter-balance</span><span class="row-desc">Your OpenRouter credit, today&#x27;s spend and where it mostly went</span><code class="cmd">/openrouter-balance</code></span></a></li>
<li class="row"><a href="mods/agent-radar/"><span class="row-text"><span class="row-name">agent-radar</span><span class="row-desc">One live line per running subagent</span><code class="cmd">/radar</code></span></a></li>
<li class="row"><a href="mods/agent-radar/"><span class="row-text"><span class="row-name">agent-radar</span><span class="row-desc">One live line per running subagent or background shell</span><code class="cmd">/radar</code></span></a></li>
<li class="row has-thumb"><a href="mods/review-watch/"><span class="row-text"><span class="row-name">review-watch</span><span class="row-desc">One live line per running code review, Codex or a review subagent</span></span><span class="row-thumb"><img style="max-width:556px" src="images/review-watch.png" width="1112" height="116" alt="review-watch: an agent review on haiku at 5s and a codex review at 6s, with Codex&#x27;s latest line, starting review of 3 files" decoding="async" loading="lazy"></span></a></li>
<li class="row has-thumb"><a href="mods/browser-lanes/"><span class="row-text"><span class="row-name">browser-lanes</span><span class="row-desc">Whether this session has a browser, and who holds it</span><code class="cmd">/browser</code></span><span class="row-thumb"><img style="max-width:883px" src="images/bands.png" width="1766" height="180" alt="browser-lanes line in red: browser NOT attached, another Claude holds the shared profile, above token-weather and where-am-i" decoding="async" loading="lazy"></span></a></li>
<li class="row has-thumb"><a href="mods/prayer-times/"><span class="row-text"><span class="row-name">prayer-times</span><span class="row-desc">The current prayer and how long is left, the next one, and zawal</span><code class="cmd">/prayers</code></span><span class="row-thumb"><img style="max-width:330px" src="images/prayer-times.png" width="660" height="35" alt="prayer-times line: Dhuhr, 1h 26m left, next Asr 16:32" decoding="async" loading="lazy"></span></a></li>
Expand Down
22 changes: 12 additions & 10 deletions site/mods/agent-radar/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,29 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>agent-radar: track running Claude Code subagents live</title>
<meta name="description" content="One live line above the Claude Code prompt per running subagent: time, tool count and what it&#x27;s doing. /radar shows every agent and its messages.">
<title>agent-radar: track running Claude Code subagents and shells live</title>
<meta name="description" content="One live line above the Claude Code prompt per running subagent or background shell: time, tool count and what it&#x27;s doing. /radar shows every agent and its messages.">
<link rel="canonical" href="https://hamzafer.github.io/claude-code-mods/mods/agent-radar/">
<meta name="color-scheme" content="light dark">
<meta name="theme-color" content="#eef0f3" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#1c1f25" media="(prefers-color-scheme: dark)">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Claude Code mods">
<meta property="og:title" content="agent-radar: track running Claude Code subagents live">
<meta property="og:description" content="One live line above the Claude Code prompt per running subagent: time, tool count and what it&#x27;s doing. /radar shows every agent and its messages.">
<meta property="og:title" content="agent-radar: track running Claude Code subagents and shells live">
<meta property="og:description" content="One live line above the Claude Code prompt per running subagent or background shell: time, tool count and what it&#x27;s doing. /radar shows every agent and its messages.">
<meta property="og:url" content="https://hamzafer.github.io/claude-code-mods/mods/agent-radar/">
<meta property="og:image" content="https://hamzafer.github.io/claude-code-mods/images/og.png">
<meta property="og:image:alt" content="Claude Code mods: lines above the prompt">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="agent-radar: track running Claude Code subagents live">
<meta name="twitter:description" content="One live line above the Claude Code prompt per running subagent: time, tool count and what it&#x27;s doing. /radar shows every agent and its messages.">
<meta name="twitter:title" content="agent-radar: track running Claude Code subagents and shells live">
<meta name="twitter:description" content="One live line above the Claude Code prompt per running subagent or background shell: time, tool count and what it&#x27;s doing. /radar shows every agent and its messages.">
<meta name="twitter:image" content="https://hamzafer.github.io/claude-code-mods/images/og.png">
<link rel="icon" href="../../favicon.svg" type="image/svg+xml">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible+Mono:wght@400;600&family=Atkinson+Hyperlegible+Next:wght@400;600;700&display=swap">
<link rel="stylesheet" href="../../style.css">
<script type="application/ld+json">{"@context": "https://schema.org", "@type": "SoftwareSourceCode", "name": "agent-radar", "description": "One live line above the Claude Code prompt per running subagent: time, tool count and what it's doing. /radar shows every agent and its messages.", "url": "https://hamzafer.github.io/claude-code-mods/mods/agent-radar/", "codeRepository": "https://github.com/hamzafer/claude-code-mods/tree/main/mods/agent-radar", "programmingLanguage": "TypeScript", "runtimePlatform": "Claude Code", "version": "0.1.2", "license": "https://opensource.org/licenses/MIT", "author": {"@type": "Person", "name": "hamzafer", "url": "https://github.com/hamzafer"}, "image": "https://hamzafer.github.io/claude-code-mods/images/og.png", "isPartOf": {"@type": "CollectionPage", "name": "Claude Code mods", "url": "https://hamzafer.github.io/claude-code-mods/"}}</script>
<script type="application/ld+json">{"@context": "https://schema.org", "@type": "SoftwareSourceCode", "name": "agent-radar", "description": "One live line above the Claude Code prompt per running subagent or background shell: time, tool count and what it's doing. /radar shows every agent and its messages.", "url": "https://hamzafer.github.io/claude-code-mods/mods/agent-radar/", "codeRepository": "https://github.com/hamzafer/claude-code-mods/tree/main/mods/agent-radar", "programmingLanguage": "TypeScript", "runtimePlatform": "Claude Code", "version": "0.2.0", "license": "https://opensource.org/licenses/MIT", "author": {"@type": "Person", "name": "hamzafer", "url": "https://github.com/hamzafer"}, "image": "https://hamzafer.github.io/claude-code-mods/images/og.png", "isPartOf": {"@type": "CollectionPage", "name": "Claude Code mods", "url": "https://hamzafer.github.io/claude-code-mods/"}}</script>
<script type="application/ld+json">{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Claude Code mods", "item": "https://hamzafer.github.io/claude-code-mods/"}, {"@type": "ListItem", "position": 2, "name": "agent-radar", "item": "https://hamzafer.github.io/claude-code-mods/mods/agent-radar/"}]}</script>
</head>
<body class="mod c-see">
Expand All @@ -42,8 +42,8 @@
<nav class="crumbs" aria-label="Breadcrumb"><a href="../../">claude-code-mods</a> <span aria-hidden="true">/</span> <a href="../../#cat-see">See what&#x27;s happening</a> <span aria-hidden="true">/</span> <span aria-current="page">agent-radar</span></nav>
<header class="mod-head">
<h1>agent-radar</h1>
<p class="lede">One live line above the prompt per running subagent: time, tool count and what it&#x27;s doing.</p>
<p class="meta"><span class="cat-chip"><span class="sq" aria-hidden="true">■</span> See what&#x27;s happening</span> <span>Version 0.1.2</span></p>
<p class="lede">One live line above the prompt per running subagent or background shell: time, tool count and what it&#x27;s doing.</p>
<p class="meta"><span class="cat-chip"><span class="sq" aria-hidden="true">■</span> See what&#x27;s happening</span> <span>Version 0.2.0</span></p>
</header>
<div class="mod-body">
<div class="mod-main">
Expand All @@ -58,7 +58,7 @@ <h1>agent-radar</h1>
</section>
<section aria-labelledby="use-h"><h2 id="use-h">How to use</h2>
<dl class="keys">
<div><dt><code>/radar</code></dt><dd>Lists every agent this session</dd></div>
<div><dt><code>/radar</code></dt><dd>Lists every subagent and background shell this session</dd></div>
<div><dt><code>1 to 9</code></dt><dd>In the pane, opens that agent&#x27;s messages</dd></div>
<div><dt><code>b</code></dt><dd>Goes back</dd></div>
<div><dt><code>c</code></dt><dd>Clears finished agents</dd></div>
Expand All @@ -69,13 +69,15 @@ <h1>agent-radar</h1>
<ul class="notes">
<li>A finished agent shows a check for 30 seconds, then its line goes away.</li>
<li>A toast says when each one finishes.</li>
<li>A background Bash command (<code>run_in_background</code>, or one moved to the background with Ctrl+B) gets a line too, tagged <code>sh</code>. One that runs <code>codex exec</code>, <code>opencode run</code> and the like is labeled with that agent and model. It ends when Claude Code closes its output file, found by <code>lsof</code> every 5 seconds, so without <code>lsof</code> it stays &quot;running&quot;.</li>
</ul>
</section>
</div>
<aside class="mod-side" aria-label="Details">
<section aria-labelledby="needs-h"><h2 id="needs-h">Needs</h2>
<ul class="needs">
<li>Claude Code 2.1.287 or newer</li>
<li><code>lsof</code> to tell when a background shell ends (macOS and Linux have it)</li>
</ul>
</section>
<section aria-labelledby="links-h"><h2 id="links-h">On GitHub</h2>
Expand Down
4 changes: 2 additions & 2 deletions site/mods/blast-radius/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible+Mono:wght@400;600&family=Atkinson+Hyperlegible+Next:wght@400;600;700&display=swap">
<link rel="stylesheet" href="../../style.css">
<script type="application/ld+json">{"@context": "https://schema.org", "@type": "SoftwareSourceCode", "name": "blast-radius", "description": "Holds risky Bash commands in Claude Code, like rm -r, force pushes and migrations, and shows what they would delete before they run.", "url": "https://hamzafer.github.io/claude-code-mods/mods/blast-radius/", "codeRepository": "https://github.com/hamzafer/claude-code-mods/tree/main/mods/blast-radius", "programmingLanguage": "TypeScript", "runtimePlatform": "Claude Code", "version": "0.2.2", "license": "https://opensource.org/licenses/MIT", "author": {"@type": "Person", "name": "hamzafer", "url": "https://github.com/hamzafer"}, "image": "https://hamzafer.github.io/claude-code-mods/images/gallery/blast-radius.png", "isPartOf": {"@type": "CollectionPage", "name": "Claude Code mods", "url": "https://hamzafer.github.io/claude-code-mods/"}}</script>
<script type="application/ld+json">{"@context": "https://schema.org", "@type": "SoftwareSourceCode", "name": "blast-radius", "description": "Holds risky Bash commands in Claude Code, like rm -r, force pushes and migrations, and shows what they would delete before they run.", "url": "https://hamzafer.github.io/claude-code-mods/mods/blast-radius/", "codeRepository": "https://github.com/hamzafer/claude-code-mods/tree/main/mods/blast-radius", "programmingLanguage": "TypeScript", "runtimePlatform": "Claude Code", "version": "0.2.3", "license": "https://opensource.org/licenses/MIT", "author": {"@type": "Person", "name": "hamzafer", "url": "https://github.com/hamzafer"}, "image": "https://hamzafer.github.io/claude-code-mods/images/gallery/blast-radius.png", "isPartOf": {"@type": "CollectionPage", "name": "Claude Code mods", "url": "https://hamzafer.github.io/claude-code-mods/"}}</script>
<script type="application/ld+json">{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Claude Code mods", "item": "https://hamzafer.github.io/claude-code-mods/"}, {"@type": "ListItem", "position": 2, "name": "blast-radius", "item": "https://hamzafer.github.io/claude-code-mods/mods/blast-radius/"}]}</script>
</head>
<body class="mod c-guard">
Expand All @@ -43,7 +43,7 @@
<header class="mod-head">
<h1>blast-radius</h1>
<p class="lede">Holds risky Bash commands and shows what they would change before they run.</p>
<p class="meta"><span class="cat-chip"><span class="sq" aria-hidden="true">■</span> Guard your repo</span> <span>Version 0.2.2</span></p>
<p class="meta"><span class="cat-chip"><span class="sq" aria-hidden="true">■</span> Guard your repo</span> <span>Version 0.2.3</span></p>
</header>
<figure class="shot"><div class="shot-frame"><img style="--w:384px" src="../../images/gallery/blast-radius.png" width="768" height="169" alt="blast-radius held a command: rm -rf would delete 9 files (252 KB), with Cancel and Proceed buttons" decoding="async" fetchpriority="high"></div><figcaption>Holds an rm -rf and shows what it would delete.</figcaption></figure>
<div class="mod-body">
Expand Down
Loading
Loading