CodeGraph Agent Eval
colbymchenry/codegraph
Benchmarks how much CodeGraph helps a coding agent on a real repository, comparing runs with and without it for a chosen local or published version.
Operate and coordinate AI agents in Herdr workspaces in Ghostty.
$ npx skills add davidondrej/skills --skill herdr -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install davidondrej/skills herdr --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/davidondrej/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/agent-orchestration/herdr .claude/skills/herdr && 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 skill from https://github.com/davidondrej/skills/tree/main/skills/agent-orchestration/herdr into .claude/skills/herdr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herdr", 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/davidondrej/skills/tree/main/skills/agent-orchestration/herdrType 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 davidondrej/skills --skill herdr -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install davidondrej/skills herdr --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davidondrej/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/agent-orchestration/herdr .agents/skills/herdr && 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 skill from https://github.com/davidondrej/skills/tree/main/skills/agent-orchestration/herdr into .agents/skills/herdr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herdr", 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 davidondrej/skills --skill herdr -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install davidondrej/skills herdr --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davidondrej/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/agent-orchestration/herdr .cursor/skills/herdr && 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 skill from https://github.com/davidondrej/skills/tree/main/skills/agent-orchestration/herdr into .cursor/skills/herdr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herdr", 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/davidondrej/skills.git --path skills/agent-orchestration/herdr--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 davidondrej/skills --skill herdr -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install davidondrej/skills herdr --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davidondrej/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/agent-orchestration/herdr .gemini/skills/herdr && 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 skill from https://github.com/davidondrej/skills/tree/main/skills/agent-orchestration/herdr into .gemini/skills/herdr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herdr", 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 davidondrej/skills herdrInstalls 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 davidondrej/skills --skill herdr -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/davidondrej/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/agent-orchestration/herdr .github/skills/herdr && 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 skill from https://github.com/davidondrej/skills/tree/main/skills/agent-orchestration/herdr into .github/skills/herdr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herdr", 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 davidondrej/skills --skill herdr -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install davidondrej/skills herdr --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davidondrej/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/agent-orchestration/herdr .opencode/skills/herdr && 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 skill from https://github.com/davidondrej/skills/tree/main/skills/agent-orchestration/herdr into .opencode/skills/herdr/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herdr", 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.
herdrOperate and coordinate AI agents in Herdr workspaces in Ghostty.
Herdr is an agent skill from davidondrej/skills. 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.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows. It works with tmux. The repository describes itself as: access to david ondrej's personal agent skills. The licence is MIT.
Read from SKILL.md and the folder at commit 7874889. 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.
Shell commands in SKILL.md call:
npxcodexclaudeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
CURSOR_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Herdr loads about 2.1k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 973 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); files beside SKILL.md are not scanned.
The full file from davidondrej/skills at commit 7874889, republished under its MIT licence (© davidondrej). 973 words, ~2,134 tokens.
.claude/skills/herdr/SKILL.md (or your agent's skills folder).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.
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 -gAppend --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.
herdr session stop <name> / herdr session delete <name> for destructive operations. Never use herdr server stop; it targets the ambient server.<session>:<pane-id>. Pane IDs contain a colon (w1:p2); split on the first colon only.herdr server --session <name>.HERDR_ENV=1 and HERDR_PANE_ID. Inside nested tmux, $TMUX wins: treat the pane as tmux.default, for risky experiments. Re-check herdr session list --json --session <name> immediately before stopping or deleting.pane send-text types without submitting. pane run sends text + Enter and works at shell prompts, but TUI composers (Claude Code, Cursor CLI) may swallow Enter as part of a paste. Use separate send-text, ~1s pause, then send-keys <pane> enter calls for TUIs.escape dismisses the popup while preserving text.pane read --lines N returns empty output if N is below viewport height. Request at least 200 lines and at least the viewport height; trim locally with tail -n N.pane get .cwd is fixed at creation; .foreground_cwd is live.pane read --format ansi to 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 native working/idle/done/blocked/unknown status; prefer it to regex guesses. Long-running foreground tools may still report idle; check busy banners such as "esc to interrupt" before treating the pane as free or stale.herdr agent wait <pane> --status <s> --timeout MS, herdr wait agent-status <pane> --status <s> --timeout MS, and herdr wait output <pane> --match <text>.pane.agent_status_changed and pane.output_matched events. Prefer events, with polling as a backstop.pane report-agent and report idle/working/blocked.workspace create seeds tab 1. Closing the last tab deletes the workspace; closing a tab's only pane closes the tab.--no-focus, except the first workspace in an empty session. pane split --no-focus still shrinks the host viewport: focus and geometry are separate.agent_not_found), not live duplicates; close and replace them only within the pane permissions above.tput cols for layout in scripts launched through pane 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.ALWAYS launch agents with auto-approval — an unattended worker can otherwise stall on an unanswered prompt:
cursor-agent --yolo "task" (alias for --force)codex --yolo "task"claude --dangerously-skip-permissions "task"This relies on an agent guardrail deny-list hook being installed across agents. 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.
Use cursor-agent in scripts. agent is an alias/new docs name; the user's interactive cur shorthand expands 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>cursor-agent "task", or no argument for an empty session. Headless: cursor-agent -p "task" --output-format text|json|stream-json.--force / --yolo skips per-command approval; --sandbox enabled|disabled controls sandboxing. Script auth: CURSOR_API_KEY.--model <slug> at launch, /model in-session. Slugs vary by version/account; never invent them from memory.--effort flag. Use full slugs ending in -low, -medium, -high, or -xhigh (e.g. gpt-5.3-codex-xhigh, claude-opus-4-8-thinking-high). -fast controls speed, not effort. Despite --help, model[effort=high] is unsupported.--model reasoning suffixes. Verify with /model after launch; --disable-auto-update preserves a working build.cursor-agent resume (latest), --resume <chatId>, or cursor-agent ls to list.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].
© davidondrej, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/agent-orchestration/herdr of davidondrej/skills.
Open the folder on GitHubat commit 7874889
Herdr 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 this skilldavidondrej/skills | 4.1k | — | ~2.1k | Automated safety check: Pass | MIT | |
| CodeGraph Agent Evalcolbymchenry/codegraph | 74k | — | ~950 | Automated safety check: Pass | MIT | |
| Agent of Empires Session Manageragent-of-empires/agent-of-empires | 3.3k | — | ~2.5k | Automated safety check: Pass | MIT | |
| Agent Deckasheshgoplani/agent-deck | 1k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Agent of Empires Session Manageragent-of-empires/agent-of-empires | 3.3k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Clawteamwin4r/ClawTeam-OpenClaw | 1.5k | — | ~3.1k | Automated safety check: Pass | MIT |
colbymchenry/codegraph
Benchmarks how much CodeGraph helps a coding agent on a real repository, comparing runs with and without it for a chosen local or published version.
agent-of-empires/agent-of-empires
Launches, monitors and organizes AI coding agent sessions such as Claude Code or Codex inside tmux, tracking status, capturing output and managing git worktrees for parallel branches.
asheshgoplani/agent-deck
agent-deck, the terminal session manager for AI coding agents.
agent-of-empires/agent-of-empires
Starts, monitors and organizes coding agent sessions that run in tmux through the aoe command, including groups, profiles and worktree-based parallel work.
win4r/ClawTeam-OpenClaw
Multi-agent swarm orchestration. An agent skill from win4r/ClawTeam-OpenClaw.
asgeirtj/system_prompts_leaks
Shows one digest of coding-agent sessions across your connected machines and lets you open, read, steer, approve, stop and close them, over Herdr, tmux or MSP.
davidondrej/skills
Launch a new bb worker thread with the right project, model, worktree, and task brief.
davidondrej/skills
Direct browser control via CDP. An agent skill from davidondrej/skills.
davidondrej/skills
Manage persistent dev servers, APIs, and other local processes on a port using macOS LaunchAgents.
davidondrej/skills
Reset a stuck Cursor ACP thread in <chat-system and reload its configuration.
davidondrej/skills
Keep a Mac awake for a set duration or while a process runs.
davidondrej/skills
Use this when controlling bb. An agent skill from davidondrej/skills.
Works with
Categories
Operate and coordinate AI agents in Herdr workspaces in Ghostty. Herdr is an agent skill from davidondrej/skills. Operate and coordinate AI agents in Herdr workspaces in Ghostty.
Herdr fits situations like: the user mentions Herdr; asks to inspect; coordinate its agents.
Run `npx skills add davidondrej/skills --skill herdr -a claude-code`. Or copy the skill folder (skills/agent-orchestration/herdr in davidondrej/skills) into .claude/skills/herdr in your project. Claude Code loads it when a task matches its description.
Run `npx skills add davidondrej/skills --skill herdr -a codex`. Or copy the skill folder (skills/agent-orchestration/herdr in davidondrej/skills) into .agents/skills/herdr 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 davidondrej/skills --skill herdr -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, .gemini/skills/herdr, .github/skills/herdr and .opencode/skills/herdr in your project.
Going by SKILL.md and its folder, Herdr needs the command-line tools its instructions call (npx, codex and claude) and credentials named CURSOR_API_KEY. Our summary lists: Node.js; A credential in CURSOR_API_KEY.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. 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. Review the folder before installing.
Herdr is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Herdr: CodeGraph Agent Eval (colbymchenry/codegraph, 74k stars), Agent of Empires Session Manager (agent-of-empires/agent-of-empires, 3.3k stars), Agent Deck (asheshgoplani/agent-deck, 1k stars) and Agent of Empires Session Manager (agent-of-empires/agent-of-empires, 3.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
davidondrej (a GitHub user) maintains it in davidondrej/skills, which has 4,112 GitHub stars. The repository holds 51 skills in this directory. The repository was last updated on October 8, 2026.
Source: davidondrej/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.