herdr
Skill4.3k starsChanged 6 days agoMITView on GitHub
Operate and coordinate AI agents in Herdr workspaces in Ghostty. Use when the user mentions Herdr or asks to inspect, message, wait for, or coordinate its agents. Excludes cmux and ordinary terminal sessions.
- Reads credentials
51 other projects use a version of this, 1 of them edited.
Trending
More talk lately.about the whole repository
Most recently taken up by
- compozy/compozytheir own version, first seen Nov 13, 2026
- juraj-blahunka/skillstheir own version, first seen Nov 8, 2026
- bepaldes/heimdall-agenttheir own version, first seen Nov 8, 2026
- cormacc/dotagentstheir own version, first seen Nov 4, 2026
- rhasselle-oddball/claude-skillstheir own version, first seen Nov 1, 2026
- vidluther/skillstheir own version, first seen Nov 1, 2026
Who's talking about davidondrej/skills
- sudosubin/agents.nix“agent-skills.github.davidondrej.skills: 0-unstable-2026-11-03 → 0-unstable-2026-11-06”GitHub · Nov 6, 2026
- sudosubin/agents.nix“agent-skills.github.davidondrej.skills: 0-unstable-2026-11-01 → 0-unstable-2026-11-03”GitHub · Nov 3, 2026
- sudosubin/agents.nix“agent-skills.github.davidondrej.skills: d5e3a3a → 674b9ca”GitHub · Nov 1, 2026
- sudosubin/agents.nix“agent-skills.github.davidondrej.skills: 0-unstable-2026-10-31 → 0-unstable-2026-11-01”GitHub · Nov 1, 2026
- sudosubin/agents.nix“agent-skills.github.davidondrej.skills: 8e90e9d → 7201ee3”GitHub · Nov 1, 2026
The biggest 5 of 34 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 34
Talked about on GitHub (34 times).
On GitHub · 34
- Nov 6, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-11-03 → 0-unstable-2026-11-06 — sudosubin/agents.nix0 reactions
- Nov 3, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-11-01 → 0-unstable-2026-11-03 — sudosubin/agents.nix0 reactions
- Nov 1, 2026agent-skills.github.davidondrej.skills: d5e3a3a → 674b9ca — sudosubin/agents.nix0 reactions
- Nov 1, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-31 → 0-unstable-2026-11-01 — sudosubin/agents.nix0 reactions
- Nov 1, 2026agent-skills.github.davidondrej.skills: 8e90e9d → 7201ee3 — sudosubin/agents.nix0 reactions
29 more on GitHub
- Oct 31, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-30 → 0-unstable-2026-10-31 — sudosubin/agents.nix0 reactions
- Oct 30, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-29 → 0-unstable-2026-10-30 — sudosubin/agents.nix0 reactions
- Oct 29, 2026agent-skills.github.davidondrej.skills: 81f16ef → 3e30b51 — sudosubin/agents.nix0 reactions
- Oct 29, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-28 → 0-unstable-2026-10-29 — sudosubin/agents.nix0 reactions
- Oct 28, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-26 → 0-unstable-2026-10-28 — sudosubin/agents.nix0 reactions
- Oct 26, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-25 → 0-unstable-2026-10-26 — sudosubin/agents.nix0 reactions
- Oct 25, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-24 → 0-unstable-2026-10-25 — sudosubin/agents.nix0 reactions
- Oct 24, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-23 → 0-unstable-2026-10-24 — sudosubin/agents.nix0 reactions
- Oct 24, 2026agent-skills.github.davidondrej.skills: 1b7ea95 → f319526 — sudosubin/agents.nix0 reactions
- Oct 23, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-22 → 0-unstable-2026-10-23 — sudosubin/agents.nix0 reactions
- Oct 22, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-21 → 0-unstable-2026-10-22 — sudosubin/agents.nix0 reactions
- Oct 21, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-19 → 0-unstable-2026-10-21 — sudosubin/agents.nix0 reactions
- Oct 19, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-18 → 0-unstable-2026-10-19 — sudosubin/agents.nix0 reactions
- Oct 18, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-17 → 0-unstable-2026-10-18 — sudosubin/agents.nix0 reactions
- Oct 17, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-16 → 0-unstable-2026-10-17 — sudosubin/agents.nix0 reactions
- Oct 16, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-15 → 0-unstable-2026-10-16 — sudosubin/agents.nix0 reactions
- Oct 15, 2026agent-skills.github.davidondrej.skills: b3029ad → d23aac3 — sudosubin/agents.nix0 reactions
- Oct 15, 2026agent-skills.github.davidondrej.skills: 77a1672 → b3029ad — sudosubin/agents.nix0 reactions
- Oct 15, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-14 → 0-unstable-2026-10-15 — sudosubin/agents.nix0 reactions
- Oct 14, 2026agent-skills.github.davidondrej.skills: ec0b0c8 → 1df52b0 — sudosubin/agents.nix0 reactions
- Oct 14, 2026agent-skills.github.davidondrej.skills: 04fc097 → ec0b0c8 — sudosubin/agents.nix0 reactions
- Oct 14, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-13 → 0-unstable-2026-10-14 — sudosubin/agents.nix0 reactions
- Oct 13, 2026agent-skills.github.davidondrej.skills: 4a43eb8 → 66fea96 — sudosubin/agents.nix0 reactions
- Oct 13, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-07 → 0-unstable-2026-10-13 — sudosubin/agents.nix0 reactions
- Oct 7, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-04 → 0-unstable-2026-10-07 — sudosubin/agents.nix0 reactions
- Oct 4, 2026agent-skills.github.davidondrej.skills: 0-unstable-2026-10-03 → 0-unstable-2026-10-04 — sudosubin/agents.nix0 reactions
- Oct 3, 2026agent-skills.github.davidondrej.skills: init at 0-unstable-2026-10-03 — sudosubin/agents.nix0 reactions
- Aug 4, 2026feat(gateway): add davidondrej/skills as SHA-pinned vendor — lgtm-hq/ai-skills0 reactions · 1 comment
- Jul 5, 2026Add davidondrej/skills repository to ASM catalog and registry — luongnv89/asm0 reactions
Used with
Projects with it also use better-accessibility, show-me and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
AnasX7Skillbetter-accessibility
Helps your project comply with accessibility standards and best practices.
Also in 3 projects that use this
AnasX7Skillshow-me
Help the user understand the current topic visually with concise diagrams, code-shape sketches, and focused HTML artifacts.
Also in 5 projects that use this
kannaka-labsSkillskill-doctor
Environment diagnostics — check providers, auth, config, hooks, scheduler, and more. Use when: AUTOMATICALLY ACTIVATE when user asks about:. \"doctor\" or \"run doctor\" or \"diagnostics\". \"check my setup\" or \"is everything working\"
Also in 3 projects that use this
GoogleSkillwayfinder
Plan a huge chunk of work — more than one agent session can hold — as a shared map of decision tickets on your issue tracker, and resolve them one at a time until the way to the destination is clear.
Also in 6 projects that use this
AWSSkillwizard
Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.
Also in 5 projects that use this
MicrosoftSkillwriting-for-agents
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.
Also in 7 projects that use this
Other versions51 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- wprzechrzta/skills★ 020% same
Wrote their own version · 50
- ogulcancelik/herdr★ 47ksame name
- herdrdev/herdr★ 47ksame name
- compozy/compozy★ 2.9ksame name
- dmmulroy/skills★ 428same name
- ninehills/skills★ 280same name
- sammcj/agentic-coding★ 169same name
- ninehills/public-skills★ 86same name
- romiluz13/mifal★ 44same name
- hcchengithub/peforth★ 37same name
- ulises-jeremias/agent-toolkit★ 19same name
40 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository55 other files it gives its agents.
- AGENTS.mdAGENTS.md
- 4x4Skill
- adr-verbatimSkill
- anti-sleepSkill
- ask-then-buildSkill
- bb-cliSkill
- bb-pluginsSkill
- before-buildingSkill
- better-promptSkill
- boatSkill
- browser-harnessSkill
- browser-useSkill
- cmuxSkill
- codex-subagentSkill
- cua-driverSkill
- decisionsSkill
- deepapiSkill
- deep-researchSkill
- deep-scrapeSkill
- designsSkill
- domain-checkerSkill
- effective-agent-skillsSkill
- fable-reviewSkill
- fable-safe-promptSkill
- file-treeSkill
- fireflies-transcriptSkill
- gemini-reviewSkill
- github-outside-sandboxSkill
- git-worktreeSkill
- global-agent-guardrailsSkill
- goal-loopSkill
- gpt-reviewSkill
- handoffSkill
- image-promptSkill
- keep-trackSkill
- kimi-reviewSkill
- larp-detectorSkill
- muse-reviewSkill
- nagentSkill
- occams-razorSkill
- openrouterSkill
- persistent-localhostSkill
- prompt-for-othersSkill
- read-all-adrsSkill
- remindSkill
- rename-processSkill
- renameSkill
- repo-syncSkill
- risky-changesSkill
- self-archiveSkill
- setup-helpSkill
- stateSkill
- stop-overthinkingSkill
- total-reviewSkill
- varied-searchSkill
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 5 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 49 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Run the controlling agent inside Herdr in Ghostty.
- Distinctive: line 19
If either fails, tell the user this agent must be launched inside Herdr.
- Distinctive: line 48
When coordinating agents, share missing context, prevent duplicate work, and return one combined summary.
- Distinctive: line 50
Do not close, rename, move, resize, or reconfigure panes you did not create.
- Very specific: line 56
Use named herdr session stop <name> / herdr session delete <name> for destructive operations.
- Very specific: line 60
Use an isolated named session, never default, for risky experiments.
- Very specific: line 72
Use pane read --format ansi to distinguish placeholder text from human drafts: suggestions are dim (SGR-2) or dark truecolor.
- Very specific: line 87
Do not use tput cols for layout in scripts launched through pane run.
- Distinctive: line 92
ALWAYS launch agents with auto-approval — an unattended worker can otherwise stall on an unanswered prompt:
- Very specific: line 100
Verify launch with herdr agent wait <pane> --status working --timeout MS or herdr wait output <pane> --match <text>, then read.
- Very specific: line 104
Use cursor-agent in scripts.
“Common” is measured: kept by at least 6 in 10 of the 49 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Herdr
Herdr's CLI controls terminal panes through a local socket; it provides neither native agent-to-agent communication nor shared memory. It works with Pi, Codex, Claude Code, Cursor CLI, and other terminal agents. Native integrations improve detection, status accuracy, and session restoration.
Preconditions
Run the controlling agent inside Herdr in Ghostty. Verify access and workspace scope:
test "${HERDR_ENV:-}" = "1"
test -n "${HERDR_WORKSPACE_ID:-}"If either fails, tell the user this agent must be launched inside Herdr; do not claim access to other agents.
One-time installation:
npx skills add ogulcancelik/herdr --skill herdr -gInspect, message, wait, read
Append --session <name> to every Herdr command. HERDR_SESSION alone can silently select an already-running server. Discover pane IDs; never guess them.
herdr pane list --workspace "$HERDR_WORKSPACE_ID" --session <name>
herdr pane read <pane-id> --source recent-unwrapped --lines 200 --session <name>
# For TUI agent composers, separate text from Enter
herdr pane send-text <pane-id> "Check the failing tests and report back." --session <name>
sleep 1
herdr pane send-keys <pane-id> enter --session <name>
# Confirm submission, then wait for completion (idle if the integration uses it)
herdr agent wait <pane-id> --status working --timeout 120000 --session <name>
herdr agent wait <pane-id> --status done --timeout 120000 --session <name>
herdr pane read <pane-id> --source recent-unwrapped --lines 200 --session <name>Stay in the current workspace. Read before messaging; send nothing for inspection-only requests. Confirm submission through a native status transition to working/blocked after Enter, never merely changed pane content. Wait for done, idle, or blocked, then read again; do not assume the prompt was acted on. Corroborate idle with pane text as described below.
When coordinating agents, share missing context, prevent duplicate work, and return one combined summary.
Do not close, rename, move, resize, or reconfigure panes you did not create. Create or close panes only when the user explicitly asks. “Use the Herdr skill” means execute the CLI workflow, not merely explain it.
Operational details
Sessions and targeting
- Use named
herdr session stop <name>/herdr session delete <name>for destructive operations. Never useherdr server stop; it targets the ambient server. - Targets are
<session>:<pane-id>. Pane IDs contain a colon (w1:p2); split on the first colon only. - CLI calls do not auto-start a server. Start headless with
herdr server --session <name>. - Managed processes receive
HERDR_ENV=1andHERDR_PANE_ID. Inside nested tmux,$TMUXwins: treat the pane as tmux. - Use an isolated named session, never
default, for risky experiments. Re-checkherdr session list --json --session <name>immediately before stopping or deleting.
Input
pane send-texttypes without submitting.pane runsends text + Enter and works at shell prompts, but TUI composers (Claude Code, Cursor CLI) may swallow Enter as part of a paste. Use separatesend-text, ~1s pause, thensend-keys <pane> entercalls for TUIs.- C0 control bytes (e.g. ASCII 0x1f) trigger terminal actions and can erase typed text. Use U+2063 INVISIBLE SEPARATOR for invisible text markers.
- Slash-command autocomplete may consume the first Enter to close the popup or fill an argument placeholder.
escapedismisses the popup while preserving text.
Reading and status
pane read --lines Nreturns empty output if N is below viewport height. Request at least 200 lines and at least the viewport height; trim locally withtail -n N.pane get.cwdis fixed at creation;.foreground_cwdis live.- Use
pane read --format ansito distinguish placeholder text from human drafts: suggestions are dim (SGR-2) or dark truecolor; typed input renders normally. Plain text cannot reliably distinguish them. herdr agent get <pane>reports nativeworking/idle/done/blocked/unknownstatus; prefer it to regex guesses. Long-running foreground tools may still reportidle; check busy banners such as "esc to interrupt" before treating the pane as free or stale.- Native waits:
herdr agent wait <pane> --status <s> --timeout MS,herdr wait agent-status <pane> --status <s> --timeout MS, andherdr wait output <pane> --match <text>. - Socket protocol >=16 offers
pane.agent_status_changedandpane.output_matchedevents. Prefer events, with polling as a backstop. - Scripts can register via
pane report-agentand report idle/working/blocked.
Workspace and tab lifecycle
- Labels are not unique. Check duplicates yourself; find-by-label adopts the first match. Unlabeled workspaces display their cwd basename, which can collide with an explicit label.
workspace createseeds tab1. Closing the last tab deletes the workspace; closing a tab's only pane closes the tab.- Workspace/tab creation respects
--no-focus, except the first workspace in an empty session.pane split --no-focusstill shrinks the host viewport: focus and geometry are separate. - Named-session restarts preserve IDs and labels, but not processes or agent registrations. Restored panes are fresh shells (
agent_not_found), not live duplicates; close and replace them only within the pane permissions above.
Other details
- Do not use
tput colsfor layout in scripts launched throughpane run; it can report a stale default of 80. herdr integration install <harness>(claude, codex, cursor, pi, ...) enables native status detection.herdr notification show <title>displays an alert.
Launch agents only when the user asks
ALWAYS launch agents with auto-approval — an unattended worker can otherwise stall on an unanswered prompt:
- Cursor CLI:
cursor-agent --yolo "task"(alias for--force) - Codex CLI:
codex --yolo "task" - Claude Code:
claude --dangerously-skip-permissions "task"
First-run trust dialogs may still appear; inspect the pane after launch. Install each integration once for native status detection.
Verify launch with herdr agent wait <pane> --status working --timeout MS or herdr wait output <pane> --match <text>, then read. Never use sleep N && pane read as launch verification; the short input-submission pause above serves a different purpose.
Cursor CLI
Use cursor-agent in scripts. agent is an alias/new docs name; the user's interactive cur shorthand may expand to cursor-agent --yolo, but aliases do not expand in scripts.
Discover available model slugs with cursor-agent --list-models before launching into an existing shell pane:
herdr pane run <pane-id> "cd <worktree> && cursor-agent --model <verified-model-slug> --yolo 'fix the failing tests'" --session <name>- Interactive:
cursor-agent "task", or no argument for an empty session. Headless:cursor-agent -p "task" --output-format text|json|stream-json. - Permissions:
--force/--yoloskips per-command approval;--sandbox enabled|disabledcontrols sandboxing. Script auth:CURSOR_API_KEY. - Model:
--model <slug>at launch,/modelin-session. Slugs vary by version/account; never invent them from memory. - Effort: no
--effortflag. Use full slugs ending in-low,-medium,-high, or-xhigh(e.g.gpt-5.3-codex-xhigh,claude-opus-4-8-thinking-high).-fastcontrols speed, not effort. Despite--help,model[effort=high]is unsupported. - Some builds silently drop
--modelreasoning suffixes. Verify with/modelafter launch;--disable-auto-updatepreserves a working build. - Resume:
cursor-agent resume(latest),--resume <chatId>, orcursor-agent lsto list.
Direct shortcuts
Most defaults use Ctrl+B. Direct Ctrl+Alt shortcuts rarely conflict. Add to ~/.config/herdr/config.toml:
[keys]
new_workspace = "ctrl+alt+n"
workspace_picker = "ctrl+alt+w"
goto = "ctrl+alt+g"
new_tab = "ctrl+alt+c"Apply with:
herdr server reload-config --session <name>To keep prefixed shortcuts with a different prefix, set prefix = "ctrl+a" under [keys].
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

