OpenCode SubAgent Magazine
A real-time sub-agent monitoring sidebar for the OpenCode TUI, surfacing each sub-agent's status, token usage and cost at a glance.
- Source repo
- Hotakus/opencode-subagent-magazine
- Stars
- ★ 134
- Last updated
- 17d ago
- License
- MIT
- Primary language
- TypeScript
- FA score
- 63/100 · Some gaps
At a glance
- How it runs
- Works with
- Platform-specific
- Cost
- Free, no paid service needed
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- OpenCode users running several sub-agents in parallel who want to see which are running or failing without leaving the terminal
- Not a fit if
- Users who don't run OpenCode (it operates only inside the OpenCode TUI)
- Anyone relying on `opencode plugin add` to install it, which the README warns breaks TUI plugin loading
- Source review
- 63/100 · Some gaps
What does this agent do, and when should you use it?
OpenCode SubAgent Magazine is an OpenCode TUI plugin (npm package opencode-subagent-magazine) that shows a real-time sub-agent monitoring panel in the terminal sidebar. It reads token data and sub-agent information through OpenCode SDK standard interfaces, marking agents with colored dots for running (breathing animation), completed, and error states. Clicking an entry expands details such as agent type, status, elapsed time, tokens, cost, model and progress, with one-click navigation to the sub-agent's full conversation. The plugin includes data persistence, configurable TTL auto-cleanup, atomic merge writes for multi-instance safety, and missed-event recovery via periodic correction plus history scanning. It is model-agnostic, works with all OpenCode-compatible models (DeepSeek / Claude / GPT, etc.), and supports both OpenCode 1.x and 2.x.
Once loaded as an OpenCode TUI plugin, it renders a sidebar monitoring panel: real-time green/yellow/red dots for completed/running/error states, and per-sub-agent token and cost summaries aggregated in the title bar via the OpenCode SDK. Expanding an entry shows agent type, status, elapsed time, tokens, cost, model and progress; → Enter session jumps to the sub-agent's full conversation; clicking the Session ID opens a dialog with the full ID for copying; - Mark complete manually terminates stuck zombie entries. Slash commands configure everything at runtime: /subagent-lang (Chinese/English), /subagent-max (max visible entries, default 10), /subagent-order (ascending/descending), /subagent-scroll (wheel vs. click-paging), /subagent-ttl (3/7/14/30-day retention), /subagent-clear-entries, /subagent-clear-running, /subagent-border, /subagent-refresh (smooth 100ms / power-saving 1s), /subagent-cost, /subagent-time, /subagent-tokens, /subagent-time-format (short/decimal/clock/compact/seconds), /subagent-config and /subagent-sections. All settings take effect immediately and persist; multiple TUI instances use atomic merge writes to avoid overwriting each other, and missed events are recovered through periodic correction, history scanning and discovery polling.
- OpenCode users running several sub-agents in parallel who want to see which are running or failing without leaving the terminal
- Cost-conscious developers who need per-sub-agent token and cost tracking with a global title-bar summary
- Engineers juggling multiple sessions who want one-click access to any sub-agent's full conversation
- Long-term OpenCode teams that want monitoring data to auto-expire after 3/7/14/30 days
- Heavy users with multiple TUI instances, worried about entries overwriting each other or lost events
- Mixed Chinese/English teams who want to switch the panel language instantly inside the TUI
How do you install or deploy this agent?
The plugin supports both opencode 1.x and 2.x.
opencode 2.x: create or edit ~/.config/opencode/cli.json and add an entry to the plugins array (do NOT use opencode plugin add — it writes to opencode.jsonc and breaks TUI plugin loading):
{
"plugins": [
{
"package": "opencode-subagent-magazine@latest",
"options": {
"enabled": true
}
}
]
}opencode 1.x, method 1 (recommended): press Ctrl + P in OpenCode, search for install plugin, and enter:
opencode-subagent-magazine@latestopencode 1.x, method 2 (manual): install the npm package:
npm install -g opencode-subagent-magazine@latestThen create or edit ~/.config/opencode/tui.jsonc:
{
"$schema": "https://opencode.ai/tui.json",
"plugin": ["opencode-subagent-magazine@latest"]
}Restart OpenCode and open any session to see the panel in the sidebar. If the plugin doesn't take effect, clear the plugin cache (V2: ~/.cache/opencode/npm, V1: ~/.cache/opencode/packages) and restart.
How do you use this agent?
After restarting OpenCode and opening any session, the sidebar shows the monitoring panel. Collapse/expand via the title bar; click an entry row to expand agent type, status, elapsed time, tokens, cost, model and progress; click → Enter session to jump to the sub-agent's full conversation; click ses_xxx… ⎘ to view and copy the full Session ID; click - Mark complete to manually terminate a running zombie entry. Page with the wheel or ↑ more / ↓ more (toggle via /subagent-scroll); ↑ Top / ↓ Bottom jump to the latest entry. All configuration is done via slash commands or the Ctrl + P command palette: /subagent-lang (language), /subagent-max (max entries, default 10), /subagent-order, /subagent-scroll, /subagent-ttl (retention), /subagent-clear-entries, /subagent-clear-running, /subagent-border, /subagent-refresh (smooth/power-saving), /subagent-cost, /subagent-time, /subagent-tokens, /subagent-time-format, /subagent-config, /subagent-sections (settings menu). Status colors: 🟢 completed, 🟡 running (breathing animation), 🔴 error.
What are this agent's strengths and limitations?
- Native real-time sub-agent monitoring inside the OpenCode TUI — status, tokens, cost, model and progress in one expandable panel
- Deliberate robustness: atomic merge writes for multi-instance safety, missed-event recovery (periodic correction + history scan + discovery polling), configurable TTL cleanup
- Highly configurable via a dozen-plus slash commands covering sorting, paging, refresh mode, time format and display toggles, all persisted instantly
- Runtime Chinese/English switching (/subagent-lang) with persisted preference and adaptive low-saturation theming
- Model-agnostic: data comes through OpenCode SDK standard interfaces, compatible with all OpenCode-compatible models (DeepSeek / Claude / GPT, etc.)
- Only fits the OpenCode ecosystem — it does not work with Claude Code, Codex or other agent runtimes
- OpenCode known issue #6774 pins the plugin cache to the first installed version; upgrading requires manual cache clearing and reinstall
- On opencode 2.x the official
opencode plugin addcommand cannot be used; you must hand-edit cli.json or server plugin loading errors occur - Its value depends on OpenCode's sub-agent feature itself; running OpenCode without sub-agents makes it largely moot
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| OpenCode SubAgent Magazine This agent | 63 · Some gaps | Agent plugin / skillFree | ★ 134 | 17d ago | TypeScript | — |
| abtop Agent Session Monitor | 57 · Major gaps | CLIFree | ★ 3.8k | 1mo ago | Rust | Codex · Claude Code |
| OpenCode Goal Plugin | 73 · Some gaps | Agent plugin / skillFree + model costs | ★ 514 | 2d ago | TypeScript | — |
| ccusage | 67 · Some gaps | — | ★ 19k | today | Rust | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows a local TUI monitor plugin: reads via OpenCode SDK/local database, writes local KV, no network egress signals; narrow permission surface, least_privilege 2. README asserts confirmation before /subagent-clear-entries deletion, but no implementation source is provided, so user_confirmation is 1 (asserted only). Data flow (local DB → sidebar → local persistence) is described in README and tests, giving 2; persisted content includes user prompts (prefix-capped only, no redaction seen), sensitive_data_handling 1. Explicit peerDependencies (mostly optional), CI, and npm trusted publishing (id-token) support dependency_security 2. No evidence of external effects beyond local read/write, 2. Rollback relies on manual cache clearing and reinstall; no rollback mechanism, 1. Repository and author attribution clear, source_attribution 2.
package.json, README and version are mutually consistent; tests show deliberate self-consistent design (multi-instance safety, missed-event recovery), self_consistency 2. Peer deps declared optional with a test covering silent fallback when bun:sqlite is unavailable, dependency_availability 2. README includes a troubleshooting section and concrete error scenarios (e.g., the plugin-add misuse message), failure_messages 2, though core src is absent so runtime error handling quality cannot be verified.
Audience (OpenCode users) and scenario (sub-agent monitoring) are well defined with bilingual UI and rich configuration, audience_and_scenarios 2; the compatibility section's model-agnostic claim rests on standard SDK interfaces, capability_boundaries 2. Slash command semantics are precise with immediate effect and persistence, trigger_precision 2; coverage of OpenCode 1.x/2.x, OS-specific cache paths and XDG env vars (corroborated by findDbPath tests), environment_fit 2.
README is well structured (install/usage/update/compat/license), information_architecture 2. The install section is exceptionally detailed with dual 1.x/2.x paths, misuse correction, and cache troubleshooting — install_notes 3. Naming is stable (/subagent-* prefix), naming_stability 2. Screenshots and command tables exist but no FAQ or worked examples, examples_and_faq 2. Known issue #6774 and cache version-locking are explicitly disclosed, known_limitations 2. Full MIT text consistent with package.json, license 3. Version 1.7.4 exists but no CHANGELOG file is present, versioning_changelog 1. CI and publish workflows exist and the author is identifiable, but no explicit maintenance commitment, maintenance_responsibility 2.
Output usability is reflected in many display/format/ordering options and persisted preferences, well described in README but not execution-verified, output_usability 2. A real-time sub-agent sidebar provides genuine marginal value for multi-sub-agent workflows, marginal_value 2. Power-saving refresh mode, TTL cleanup and reduced redraw options show explicit cost consideration, cost_benefit 2.
This review had only README, LICENSE, package.json, CI workflows and three test files; src/ is not provided, so most README feature claims cannot be traced to source, claim_traceability 1. Tests corroborate some README claims (cleared-entry lists, persisted prompt capping, degraded fallback behavior), cross_source_corroboration 2. The README mixes marketing language with factual statements without separation, fact_inference_separation 1.
- This is a static review; only README, package.json, CI and tests were provided — core src/ was not seen, and no runtime behavior was executed or independently tested.
- The plugin persists sub-agent prompts to local KV (prefix-capped only, no redaction observed); assess local storage risk if sessions contain sensitive content.
- README asserts that /subagent-clear-entries requires confirmation, but no source backs this; back up OpenCode data before destructive clears.
- No CHANGELOG is provided; behavior changes in 1.7.4 can only be judged from commit history.
- The publisher is unverified; when installing from the public npm registry, verify the package name opencode-subagent-magazine against the repository fingerprint.
- Due to OpenCode issue #6774, the plugin cache may lock onto the first installed version; updates require manual cache clearing.