Agent Deck
asheshgoplani/agent-deck
agent-deck, the terminal session manager for AI coding agents.
Manage AI agent fleets in Herdr: tile root + sub-agents in one tab, start/prompt/wait/read/monitor via the herdr agent CLI, steer any pane; help lists every operation.
$ npx skills add luongnv89/skills --skill herdr-agent -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install luongnv89/skills herdr-agent --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/herdr-agent .claude/skills/herdr-agent && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "herdr-agent" agent skill from https://github.com/luongnv89/skills/tree/main/skills/herdr-agent into .claude/skills/herdr-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herdr-agent", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/luongnv89/skills/tree/main/skills/herdr-agentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add luongnv89/skills --skill herdr-agent -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install luongnv89/skills herdr-agent --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/herdr-agent .agents/skills/herdr-agent && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "herdr-agent" agent skill from https://github.com/luongnv89/skills/tree/main/skills/herdr-agent into .agents/skills/herdr-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herdr-agent", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add luongnv89/skills --skill herdr-agent -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install luongnv89/skills herdr-agent --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/herdr-agent .cursor/skills/herdr-agent && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "herdr-agent" agent skill from https://github.com/luongnv89/skills/tree/main/skills/herdr-agent into .cursor/skills/herdr-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herdr-agent", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/luongnv89/skills.git --path skills/herdr-agent--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add luongnv89/skills --skill herdr-agent -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install luongnv89/skills herdr-agent --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/herdr-agent .gemini/skills/herdr-agent && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "herdr-agent" agent skill from https://github.com/luongnv89/skills/tree/main/skills/herdr-agent into .gemini/skills/herdr-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herdr-agent", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install luongnv89/skills herdr-agentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add luongnv89/skills --skill herdr-agent -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/herdr-agent .github/skills/herdr-agent && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "herdr-agent" agent skill from https://github.com/luongnv89/skills/tree/main/skills/herdr-agent into .github/skills/herdr-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herdr-agent", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add luongnv89/skills --skill herdr-agent -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install luongnv89/skills herdr-agent --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/herdr-agent .opencode/skills/herdr-agent && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "herdr-agent" agent skill from https://github.com/luongnv89/skills/tree/main/skills/herdr-agent into .opencode/skills/herdr-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herdr-agent", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
herdr-agentManage AI agent fleets in Herdr: tile root + sub-agents in one tab, start/prompt/wait/read/monitor via the herdr agent CLI, steer any pane; help lists every operation.
Herdr Agent is an agent skill from luongnv89/skills. Manage AI agent fleets in Herdr: tile root + sub-agents in one tab, start/prompt/wait/read/monitor via the herdr agent CLI, steer any pane; help lists every operation. Use for Herdr fleets. Don't use for tmux, screen, or non-Herdr terminals.
Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 32 other files, including scripts and reference files (for example `docs/README.md`, `evals/evals.json` and `references/context-succession.md`). Compatibility notes: Requires herdr 0.9.0 or later on PATH and a running Herdr server (herdr status) for every operation except help, which runs no herdr command. Default…
It sits in Agent Workflows, covering Subagents. It works with tmux. The repository describes itself as: Supercharge your AI agents/bots with reusable skills. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 891c720. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 6 files in scripts/ (Python and Shell, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires herdr 0.9.0 or later on PATH and a running Herdr server (`herdr status`) for every operation except `help`, which runs no herdr command. Default same-kind launches also require `pane process-info` to return full argv; `--without flags` explicitly opts out.
From compatibility in the SKILL.md frontmatter.
Herdr Agent loads about 4.8k tokens when it runs, and up to ~20k if it reads all its reference files. Until then it costs about 64 tokens; SKILL.md has 2,523 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from luongnv89/skills at commit 891c720, republished under its MIT licence (© luongnv89). 2,523 words, ~4,828 tokens.
.claude/skills/herdr-agent/SKILL.md (or your agent's skills folder). This skill also uses 28 other files; get the full folder from GitHub.Build and control an AI-agent fleet in the root agent's Herdr tab. Keep the root pane as orchestrator; add each sub-agent as a right-hand split running the main agent's own launch profile; equalize all columns; then start, prompt, wait, read, monitor, steer, or tear down through the herdr CLI.
Use Herdr concepts, not tmux assumptions. Let the server do the work: herdr agent prompt --wait submits and waits in one request, herdr agent wait is event-driven, and herdr api snapshot reports the whole fleet in one call. Relay reply deltas rather than whole panes to protect the context and token budget.
| Request | Follow |
|---|---|
help, or what this does and how to drive it | Help in references/help-request.md — answer and stop |
| Spawn sub-agents beside root | Phases 1–2, then 4–5 if assigning work |
| Message an existing agent | Phases 3–5 |
| Read without sending | Phase 3, then Phase 5 read only |
| Check what the fleet is doing | Phase 6 |
| Broadcast to a fleet | Phases 3 and 7 |
| Focus/steer a pane | Phase 3, then Phase 7 |
| Close workers | Phase 7 teardown |
| Main agent's own context is filling up | Phase 8 HANDOFF |
Read only the reference needed by that branch:
references/herdr-recipes.md for guarded grid spawning, equalization semantics, multi-line prompts, focus, and troubleshooting.references/launch-profile.md for where a worker's kind, model, thinking level, and flags come from, the kind gate, and what never carries over.references/delivery-and-waiting.md for the one-call prompt contract, error codes, wait semantics, reading replies, and the no-agent fallback.references/fleet-monitoring.md for snapshot status, sidebar badges, notifications, and the run report.references/context-succession.md for the main agent's context gate, HANDOFF procedure, and handoff brief template.references/final-report.md for the closing report's status words, required parts, and examples.Resolve this branch before Prerequisites. A help request runs no herdr command, touches no pane, and changes nothing, because someone asking how this works may not have Herdr installed yet. Take it on help, --help, /herdr-agent help, or any plain question about what the skill does or how to drive it. Answer, then stop: no fleet work, no completion report.
The full help text is in references/help-request.md. For a narrower question such as how to broadcast, answer from that one phase instead of printing the whole block, and name the phase so the user can ask for it again by name.
Done when: the user has the summary or their specific answer, and no herdr command ran.
command -v herdr and herdr status. If the server is unavailable, ask the user to start Herdr from a real terminal; never run bare herdr from a non-TTY shell.HERDR_ENV=1. Outside a Herdr pane, do not inspect or control the focused session. If check 1 or 2 fails, stop: the run ends BLOCKED.HERDR_PANE_ID, HERDR_TAB_ID, and HERDR_WORKSPACE_ID, or from herdr pane current --current and list/get commands.herdr <group> rather than inventing flags. Client and server versions can differ after an update; herdr status says whether the server supports what you are about to use.right, keep every worker in the root tab, then run the equalizer. Create separate tabs only when the user explicitly requests isolation.blocked target itself, but not a working one, and its wait tracks lifecycle state rather than one turn. Reject missing, ambiguous, working, or unverifiable targets yourself before dispatching.agent prompt --wait cycle.--without flags for a skill that demands bare launches). A field is named only by a concrete value: a kind, a model ID or alias, a thinking level, or a flag. Ask when a request is vague ("something cheaper") or names a model from another harness without a kind. A worker of a different kind inherits nothing else. Never guess a value you cannot read: model or thinking may be reported UNKNOWN, but unreadable same-kind setup flags abort the launch unless --without flags explicitly opts out.command -v herdr >/dev/null || { echo "Error: herdr is not installed" >&2; exit 1; }
test "${HERDR_ENV:-}" = 1 || { echo "Error: not running inside a Herdr pane" >&2; exit 1; }
herdr status || { echo "Error: Herdr server is unavailable" >&2; exit 1; }
root_pane="${HERDR_PANE_ID:?}"; root_tab="${HERDR_TAB_ID:?}"; ws="${HERDR_WORKSPACE_ID:?}"Resolve project_dir from the root pane's cwd, falling back to the current directory. Set here to the skill's scripts/ directory with the resolver in references/herdr-recipes.md, which probes repo-local installs before global ones. Every later script call uses "$here/…".
Done when: server status passes and concrete root_pane, root_tab, ws, project_dir, and here values are recorded.
Before spawning, define each worker's unique name, task, and expected deliverable. Placement and launch are two steps: herdr agent start never creates or moves layout, and requires a pane already sitting at its shell prompt.
Resolve the inherited launch profile once per spawn wave, as its own tool call before the call that splits, so the user sees it before any agent starts:
python3 "$here/launch_profile.py" --root-pane "$root_pane" \
--main-model "$main_model" --main-thinking "$main_thinking" >/dev/nullSet main_model and main_thinking to your own model ID and thinking level, and leave either one empty rather than guess. On Claude Code, leave main_thinking empty, because the script reads CLAUDE_EFFORT. Relay the summary line to the user before the first split, including any ⚠ or warning: line. A worker with an UNKNOWN model or thinking level still starts on its config default. Missing or malformed root argv aborts a same-kind launch before the split; --without flags is the explicit reduced-inheritance opt-out. If the user already declined bypass for this run, pass --without bypass on every worker. references/launch-profile.md has the source order, per-kind flags, and what never carries over.
Use the canonical spawn_sub workflow in references/herdr-recipes.md:
next_grid_split.py --root-pane "$root_pane" to plan the rightmost split.--direction right --no-focus in project_dir, passing --env "HERDR_ROLE=<name>" so the worker can read its own role instead of being told it in every prompt.next_grid_split.py --equalize --root-pane "$root_pane"; abort on any error or non-convergence.--start <name> --pane <id> --timeout 60000. Add only what the user named: --kind, --model, --thinking, --without bypass|flags, or native flags after --. The command runs herdr agent start on the profile.python3 "$here/badge.py" <name> --title "<job>" --token role=<role>.agent start is the readiness gate: it returns only once Herdr detects the expected agent and considers it interactive-ready, and returns agent_not_ready immediately if the agent booted into a dialog. There is no separate readiness pass. Names must match [a-z][a-z0-9_-]{0,31} and be unique among live agents. Never fold the task into argv.
Confirm the fleet with python3 "$here/fleet_status.py" --tab "$root_tab" --fail-on-blocked before assigning any work.
Done when: every worker has a unique name and pane ID in root_tab, the layout widths differ by at most one cell, root remains active, the launch-profile summary reached the user, and every start returned success.
Run herdr agent get <name> or herdr pane get <pane-id>. If a name is missing or ambiguous, list agents and ask; never silently retarget. agent_not_found means the pane hosts no detected agent — start one, or take the pane-surface fallback in references/delivery-and-waiting.md. Record both the name and pane ID and use that same ID for every later mutation.
Done when: one existing target resolves uniquely, and its name, pane ID, and current status are recorded.
python3 "$here/preflight_send.py" "$target" >/dev/null || exit $?
herdr agent prompt "$target" "$task" --wait --timeout 180000The preflight refuses working (2), blocked (3), unverifiable (4), and no-agent (5) targets. The prompt then submits text plus Enter as one ordered write honoring bracketed paste, refuses a blocked target server-side before writing anything, gates on observed activity, and waits for the first settled state — all in one request. Submission and waiting are atomic, so no transcript baseline or completion marker is needed: there is no gap between send and wait to race.
Do not add --until idle --until done; those are the --wait defaults. Use --until only for a state-specific wait such as --until blocked.
Done when: the prompt returned success, or a named error code was propagated.
Map the failure first. agent_blocked means nothing was sent and a human is needed. agent_prompt_stalled means it was submitted but no activity followed — inspect, never blindly resend. timeout means no settled state inside the budget. Propagate all three; do not report them as replies.
On success, read a capped transcript and relay only the relevant delta:
herdr agent read "$target" --source recent-unwrapped --lines 80Accept idle or done as settled; they differ only in whether the completion has been marked seen. If raising --lines reveals no more output, the agent is on the terminal's alternate screen — use the file fallback in references/delivery-and-waiting.md rather than a bigger line count.
Done when: the reply delta came from herdr agent read after an idle or done status, or the blocked/stalled/timeout code is reported and nothing more was sent.
python3 "$here/fleet_status.py" --tab "$root_tab"One herdr api snapshot call renders every agent's status, badge and title, sorted by attention, at flat cost for any fleet size. Prefer it over per-agent herdr agent get polling, which costs N round trips and can report a fleet state that never existed at one instant.
Keep the human oriented without making them read panes:
python3 "$here/badge.py" <name> --token phase=<phase>. Display-only, so it never perturbs waits or rollups.herdr notification show "Agent blocked" --body "<name> needs input" --sound request, and once at run completion with --sound done.See references/fleet-monitoring.md for field caps, token semantics, and workspace-level rollups.
Done when: the current fleet state came from a snapshot call, not from memory of what was dispatched.
"$here/broadcast.sh" "<task>" <targets...>. It resolves all targets from one agent list, dedupes, refuses unsafe ones, dispatches agent prompt --wait concurrently, and maps every error code to a reason. HAC_BADGE=1 badges each row with its phase.herdr agent focus <name>, which also marks that agent's completion seen. For follow-ups, repeat Phases 4–5.herdr server stop from an active session unless the user intends to stop every pane process.Done when: every requested target has a recorded outcome and destructive actions match the user's confirmed scope.
Long fleet runs outlive one context window. Self-check your own usage at three gate points — before a spawn wave, before a broadcast, and after each relayed reply — never mid-cycle between a dispatch and its wait. HANDOFF when self-reported usage is at or above the threshold (default 50%); when usage is UNKNOWN, apply the counter fallback in the reference below.
HANDOFF spawns a successor with the same Phase 2 machinery — main-g<N> in the root tab, equalized, started on the inherited launch profile so it runs your harness, model, and thinking level — then delivers a compact handoff brief through the Phase 4 cycle and waits for the ack HANDOFF ACCEPTED gen=<N> fleet=<k>. After the ack, that pane is the orchestrator; this pane goes read-only and announces the new one with herdr agent focus main-g<N>. A successor that fails to start or never acks means the HANDOFF failed: stay main, report the orphan pane, and ask before closing it.
Read references/context-succession.md for the gate-point table, UNKNOWN fallback logging, full procedure, and the brief template. Never paste transcripts or diffs into a brief.
Done when: the gate decision is recorded with a percentage or an explicit UNKNOWN fallback, and any HANDOFF has a ready successor pane, a delivered brief, a received ack, and no write from the outgoing pane afterward.
Expected final report for a successful fleet operation:
Result: COMPLETE — spawned reviewer and tests; both replied
Evidence:
herdr status: ok · root kept w26:p1 · 3 equal-width columns
Profile: claude · claude-opus-5[1m] · thinking max (inherited)
fleet_status.py: reviewer=done, tests=idle · 2 replies captured, 0 blocked, 0 timed out
Uncertainty: reply content relayed as written, not checked against the task
Decision: No approval needed.Acceptance criteria:
help request prints the usage summary, runs no herdr command, and emits no completion report.herdr status succeeds and every target resolves uniquely.fleet_status.py, not from recollection.help ends with the final report, which passes its four reader checks: result on the first line, facts separated from assumptions, every claim traced to evidence, next decision named. Without user feedback, human understanding stays unconfirmed.Read references/edge-cases.md when a target is blocked, agent_not_found, or unknown; a name collides; the grid passes four panes or will not equalize; the workspace or tab is wrong; a successor never acks; root process-info lacks full argv; or a start times out after inheriting a flag.
◆ Herdr Agent ([operation])
··································································
Server: √ pass
Root resolved: √ pass (pane · tab · workspace)
Targets: √ pass (N/N unique)
Launch profile: √ pass (kind · model · thinking · N flags; UNKNOWN and ⚠ named — if spawning; otherwise — n/a)
Layout/readiness: √ pass (if spawning; otherwise — n/a)
Delivery: √ pass (if prompting; otherwise — n/a)
Replies: √ pass (settled · blocked/stalled/timeouts reported)
Fleet snapshot: √ pass (N agents · statuses)
Context gate: √ pass (P% or UNKNOWN · continue | HANDOFF → main-gN)
Destructive action: — none (or confirmed scope)
Result: PASS | FAIL | PARTIALAfter the Step Completion Report, print the final report from references/final-report.md: Result: (COMPLETE, PARTIAL — <reason>, or BLOCKED — <reason>), Evidence: (only checks that ran), Uncertainty:, then Decision: (the approval needed, or No approval needed.). A help request skips it.
© luongnv89, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 28 other files (scripts, references) in skills/herdr-agent of luongnv89/skills.
Open the folder on GitHubat commit 891c720
Herdr Agent next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Herdr Agent this skillluongnv89/skills | 131 | — | ~4.8k | Automated safety check: Pass | MIT | |
| Agent Deckasheshgoplani/agent-deck | 1k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Clawteamwin4r/ClawTeam-OpenClaw | 1.5k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Multi Agentshibing624/agentica | 352 | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Claude Code DelegationXiaomiMiMo/MiMo-Code | 14k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Agents Project Coordinatorasgeirtj/system_prompts_leaks | 69k | — | ~2.9k | Automated safety check: Pass | CC0-1.0 |
asheshgoplani/agent-deck
agent-deck, the terminal session manager for AI coding agents.
win4r/ClawTeam-OpenClaw
Multi-agent swarm orchestration. An agent skill from win4r/ClawTeam-OpenClaw.
shibing624/agentica
Run work across more than one agent — choose between the task subagent, the delegate tool, and a second agentica CLI in tmux driven by peer messages (listagents / sendmessage).
XiaomiMiMo/MiMo-Code
Hands coding work to the Claude Code CLI from the terminal in print, interactive tmux or background mode, only when you explicitly ask for Claude Code.
asgeirtj/system_prompts_leaks
Runs a goal as a project in which the agent coordinates separate agent threads, judging when to split the work, and interviews you first when nothing can be verified.
ethanhq/cc-fleet
Spawn long-lived provider LLM teammates in tmux panes that you message via the native agent-team tools — multi-turn, collaborative, watchable.
luongnv89/skills
Review UI usability using Steve Krug's principles and produce a scannable report.
luongnv89/skills
Optimize Ollama configuration for the current machine's hardware.
luongnv89/skills
Install local-first security hardening: pre-commit secret detection, offline dependency scans, static analysis, reports, and gated free CI.
luongnv89/skills
Audit and optimize websites for technical SEO, content SEO, and AI bot accessibility.
luongnv89/skills
Generate sprint-based development tasks from a PRD. An agent skill from luongnv89/skills.
luongnv89/skills
Manage AI agents in tmux: spawn sessions, send messages, wait, capture replies, inspect fleets, and tear down safely.
Works with
Categories
Manage AI agent fleets in Herdr: tile root + sub-agents in one tab, start/prompt/wait/read/monitor via the herdr agent CLI, steer any pane; help lists every operation. Herdr Agent is an agent skill from luongnv89/skills. Manage AI agent fleets in Herdr: tile root + sub-agents in one tab, start/prompt/wait/read/monitor via the herdr agent CLI, steer any pane; help lists every operation.
Herdr Agent fits situations like: non-Herdr terminals; tasks that involve Subagents.
Run `npx skills add luongnv89/skills --skill herdr-agent -a claude-code`. Or copy the skill folder (skills/herdr-agent in luongnv89/skills) into .claude/skills/herdr-agent in your project. Claude Code loads it when a task matches its description.
Run `npx skills add luongnv89/skills --skill herdr-agent -a codex`. Or copy the skill folder (skills/herdr-agent in luongnv89/skills) into .agents/skills/herdr-agent in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add luongnv89/skills --skill herdr-agent -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/herdr-agent, .gemini/skills/herdr-agent, .github/skills/herdr-agent and .opencode/skills/herdr-agent in your project.
Going by SKILL.md and its folder, Herdr Agent needs Python and a shell for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3; A Bash shell. Compatibility (from SKILL.md): Requires herdr 0.9.0 or later on PATH and a running Herdr server (`herdr status`) for every operation except `help`, which runs no herdr command. Default same-kind launches also require `pane process-info` to return full argv; `--without flags` explicitly opts out..
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Herdr Agent is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 15k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Herdr Agent: Agent Deck (asheshgoplani/agent-deck, 1k stars), Clawteam (win4r/ClawTeam-OpenClaw, 1.5k stars), Multi Agent (shibing624/agentica, 352 stars) and Claude Code Delegation (XiaomiMiMo/MiMo-Code, 14k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
luongnv89 (a GitHub user) maintains it in luongnv89/skills, which has 131 GitHub stars. The repository holds 37 skills in this directory. The repository was last updated on October 9, 2026.
Source: luongnv89/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.