herdr-names
Rename Herdr tabs, panes, and agents so each sidebar entry says in a few words what that session is doing.
Skill by petekp
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/petekp-herdr-names
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: productivity, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/herdr-names- Your home directory (~)
~/.config/herdr/config.toml
What's inside
- Skill name
herdr-names- Description
- Rename Herdr tabs, panes, and agents so each sidebar entry says in a few words what that session is doing. Use whenever the user mentions Herdr and wants tab, pane, or agent names renamed, relabeled, cleaned up, tidied, or made clearer; says a tab or agent name is confusing, meaningless, stale, or just a number; asks what a tab is; or wants the sidebar readable at a glance, even if they only say 'fix the names' or 'label these'. Reads each pane's recent output and names the task, not the project and never the auto-generated terminal title. Needs to run inside Herdr (HERDR_ENV=1). Not for naming things in code, git branches, tmux or terminal windows, or Claude Code sessions outside Herdr.
- License
- MIT
- Instructions
- 83 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Files (3)
- SKILL.md
- openai.yaml · agents/
- herdr_names.py · scripts/
SKILL.md (first lines)
# Herdr names
## Why names go stale
Herdr's sidebar is only useful when each entry says what that session is for. Three things break that:
- A new tab is labeled with a number ("1") unless someone names it.
- Claude Code rewrites the terminal title on every prompt from the latest user message. A real session showed "Address findings" after the user typed "address the findings". Out of context it says nothing.
- Workspace names already carry the project, so a tab that repeats it ("zui" under zui) adds nothing.
This skill reads what each agent is actually doing and gives the tab, its pane, and the agent one short task name each. Run it end to end without asking for confirmation. Every rename is reversible, and the user invoked it to avoid doing this by hand.
## Steps
`SKILL_DIR` below is the base directory printed when this skill loaded.
1. Confirm you are inside Herdr with `test "${HERDR_ENV:-}" = 1`. If that fails, say you are not running inside Herdr and stop. The CLI can only see the session it runs in.
2. Take the snapshot:
```bash
python3 "$SKILL_DIR/scripts/herdr_names.py" snapshot
```
It prints every workspace, tab, and pane with current labels, the agent's name and state, cwd, git branch, terminal title, and the tail of each agent's recent output. For Claude Code panes the recap line comes first; it is the best one-line statement of what the session is for. The first lines also say whether the Agents panel is configured to show tab or pane names at all.
3. Choose names with the rules below. For your own pane, marked "[this session]", use the conversation, not the output tail.
4. Write the plan as JSON in the scratchpad and apply it:
```bash
python3 "$SKILL_DIR/scripts/herdr_names.py" apply plan.json
```
Add `--dry-run` first when a choice feels uncertain. The script validates the whole plan before touching anything, skips names that are already in place, and prints before and after for each rename.
5. Report a before → after table, one line for each tab left alone and why, and the sidebar warning if the snapshot raised one.
## Naming rules
**Tab label: the task, not the project.** Two to four words, 24 characters or fewer, so it fits the sidebar without truncation. Build it from the recap line, the last assistant summary, and the branch name. Never copy the terminal title. Lowercase except proper nouns, which matches how tabs get named by hand. From a real session:
| Evidence | Tab label |
|---|---|
| recap: "Touch-pinch v1 for the zoomable grid is built and verified" | touch pinch-to-zoom |
| recap: "Pixel Pete audit remediation is complete: 18 of 20 findings fixed" | Pixel Pete audit fixes |
| branch `pkp/site-fit-and-finish`, output about a postcard shadow fix | site fit & finish |
| recap: "building the reimagined three.js Timewave Zero view" | three.js view rebuild |
**Pane label: same as the tab when the tab has one agent.** When a tab holds two or more agents, give each pane its role instead ("reviewer", "tests"), because the tab name cannot tell them apart.
**Agent name: a kebab-case slug of the tab label.** It must match `[a-z][a-z0-9_-]{0,31}` and be unique across live agents; the script rejects anything else. Keep it around 16 characters because it gets typed on the command line, as in `herdr agent prompt pinch-zoom "..."`. An agent name lives only as long as that agent process. When the session restarts the name is gone, and the next run of this skill sets it again.
**Keep names that are already clear.** Renaming a good label costs the user the recognition they have built up. Change a name only when it is a default number, repeats the workspace, is the auto-generated title, or no longer matches what the session is doing. Running the skill twice in a row should change nothing the second time.
## What to leave alone
- Workspace labels. They are the project layer and the user sets them on purpose. Change one only when asked.
- Tabs with no agent, such as a shell prompt or a dev server. Rename one only if its label is a bare number; then name what the shell is doing ("api server shell"). List them in the report either way.
- The panes themselves. Never send text or keys, never focus, never close. Reading is the only contact, and CLI reads do not disturb an agent or mark its work as seen.
## If the names will not show
The Agents panel renders whatever the `rows` under `[ui.sidebar.agents]` in `~/.config/herdr/config.toml` list. When the snapshot says those rows have no `tab` or `pane` token, the new names exist but the panel keeps showing something else, usually the terminal title. Do not edit the config on your own; the user may have chosen that layout deliberately. Report it and offer this layout, which puts the tab name first with the workspace under it:
```toml
[ui.sidebar.agents]
rows = [
["state_icon", { token = "tab", bold = true }],
[{ token = "workspace", dim = true }],
]
```
If they say yes, back the file up, make the edit, and run `herdr server reload-config`.
## Plan format
```json
[
{"pane_id": "wA:p1", "tab": "touch pinch-to-zoom", "pane": "touch pinch-to-zoom", "agent": "pinch-zoom"},
{"tab_id": "w5:tP", "tab": "api server shell"}
]
```
Every name field is optional; omit one to leave it unchanged. A `pane_id` entry renames that pane's own tab. Use `tab_id` for a tab that has no agent pane. An empty string for `pane` or `agent` clears that label.From petekp/claude-code-setup, MIT.
More from petekp/claude-code-setup
- 0.663score
frame-check
petekp
Check whether the stated problem is the right problem before work commits to it.
SkillAFreshness: A★ 48Claude Code +9 - 0.663score
latent-potential
petekp
First-principles, team-of-experts assessment of a software project that surfaces latent potential; underexploited assets, a sharper north star, missing…
SkillAFreshness: A★ 48Claude Code +9 - 0.663score
pr-description
petekp
Write or update a GitHub PR description a teammate understands in one quick read: a picture when one fits, then a few plain sentences grounded in the diff and…
SkillAFreshness: A★ 48Claude Code +9 - 0.663score
pr-screenshot-comparison
petekp
Create clear, polished before-and-after screenshots from the actual running product for a GitHub pull request.
SkillAFreshness: A★ 48Claude Code +9 - 0.660score
pr-self-review
petekp
Draft explanatory author-context comments for the user's own PR or local diff.
SkillAFreshness: A★ 48Claude Code +9 - 0.659score
vignette-todo-run
petekp
Run a batch of Vignette TODO items as a multi-agent worktree run.
SkillAFreshness: A★ 48Claude Code +9 - 0.658score
code-comments
petekp
Write, review, or remove code comments.
SkillAFreshness: A★ 48Claude Code +9 - 0.658score
release-notes
petekp
Write release notes or a changelog entry that tell existing users what they will notice after updating, with the technical detail after it.
SkillAFreshness: A★ 48Claude Code +9 - 0.623score
refine-prose
petekp
Refine prose so it says what the writer means to a specific reader: cut the text that should not exist, put the point first, state things literally, remove…
SkillBFreshness: B★ 48Claude Code +9 - 0.618score
catch-up
petekp
Give the human a fast, plain-English catch-up on what changed in the project: what the agents did, why, and what decisions need their input.
SkillBFreshness: B★ 48Claude Code +9 - 0.618score
clean-copy
petekp
Cut interface copy that should not exist.
SkillBFreshness: B★ 48Claude Code +9 - 0.615score
deep-research
petekp
Investigate a question that requires sustained research across sources and produce cited findings.
SkillBFreshness: B★ 48Claude Code +9
Signals
- Stars
- 48
- Forks
- 11
- Open issues
- 2
- Last commit (this folder)
- Oct 21, 2026 (8 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/petekp/claude-code-setup
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from petekp
- 0.663score
frame-check
petekp
Check whether the stated problem is the right problem before work commits to it.
SkillAFreshness: A★ 48Claude Code +9 - 0.663score
pr-description
petekp
Write or update a GitHub PR description a teammate understands in one quick read: a picture when one fits, then a few plain sentences grounded in the diff and…
SkillAFreshness: A★ 48Claude Code +9 - 0.663score
pr-screenshot-comparison
petekp
Create clear, polished before-and-after screenshots from the actual running product for a GitHub pull request.
SkillAFreshness: A★ 48Claude Code +9 - 0.663score
latent-potential
petekp
First-principles, team-of-experts assessment of a software project that surfaces latent potential; underexploited assets, a sharper north star, missing…
SkillAFreshness: A★ 48Claude Code +9 - 0.660score
pr-self-review
petekp
Draft explanatory author-context comments for the user's own PR or local diff.
SkillAFreshness: A★ 48Claude Code +9 - 0.659score
vignette-todo-run
petekp
Run a batch of Vignette TODO items as a multi-agent worktree run.
SkillAFreshness: A★ 48Claude Code +9
Cite this page
herdr-names skill. Agent Mart. https://agentmart.dev/skills/petekp-herdr-names (last updated 2026-10-24)