peek
Skill2 starsChanged 13 days agoMITView on GitHub
Use whenever you are an agent inside a multi-agent orchestration fleet (the conductor, a project-orchestrator, or a worker/builder seat) and need to report your own status so the level above you can see it, or need to check what your own children are doing right now. Trigger on: starting a new task, getting blocked, finishing a task, being asked "what's your fleet doing", wanting a live view of workers/orchestrators instead of capturing panes, or onboarding a new agent into the `PEEK_ID`/`PEEK_ROLE`/`PEEK_PARENT`/`PEEK_WORKSPACE` env contract. This is the fix for orchestrators losing track of fleet state in chat and having to capture-pane every worker to know if it's alive.
- Installs packages
2 other projects use a version of this.
Adopted by
Most recently taken up by
- thatmike1/claude-skillstheir own version, first seen Oct 26, 2026
- code-peekr/peek-skilltheir own version, first seen Jun 11, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- thatmike1/claude-skills★ 10same name
- code-peekr/peek-skill★ 0same name
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 repository27 other files it gives its agents.
- AGENTS.mdAGENTS.md
- cmux-agent-orchestratorSkill
- cmux-pr-qc-agentSkill
- cmuxSkill
- finchSkill
- gmail-inbox-zero-triageSkill
- gmail-oib-zeroSkill
- whatsapp-triageSkill
- add-to-changelogSkill
- check-prSkill
- cli-reviewSkill
- coderabbit-requestSkill
- convex-domain-folderSkill
- e2e-remote-setupSkill
- greploopSkill
- update-docsSkill
- antigravity-cliSkill
- social-captureSkill
- check-model-usageSkill
- code-structureSkill
- evidence-driven-testingSkill
- interviewSkill
- issue-breakdownSkill
- linear-labelsSkill
- model-classifierSkill
- remotion-explainer-videoSkill
- skill-makerSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 0 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
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
- Very specific: line 60
If these aren't set and you're not conductor, peek update will hard-error rather than write a silently-wrong record — that's intentional.
- Very specific: line 76
Call it at these three moments, not continuously — peek has no lifecycle hooks in v1, so if you don't call it, your record goes stale and …
- Very specific: line 103
If you have workers or sub-orchestrators reporting to you (your PEEK_ID shows up as their PEEK_PARENT), don't rely on capturing their panes …
- Very specific: line 121
Don't call peek update on every tool call or thought — three moments (start/block/done) is the contract.
- Very specific: line 123
Don't skip reporting because "the task is quick" — a worker that starts and finishes in two minutes without ever calling peek update is …
- Very specific: line 126
Don't use peek as a substitute for the actual reporting flow in your fleet's playbook (e.g.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
peek (fleet status reporting)
peek is a tiny, local, serverless CLI that makes an agent-orchestration fleet legible: each
agent reports its own status via peek update, which peek stores in a per-agent JSON file
behind the scenes; anyone above it in the hierarchy can read the tree instantly (via peek)
instead of capturing panes to guess what's alive. No server, no daemon — just files under
~/.peek/projects/<project-slug>/, which you never touch directly (see below).
The CLI is the only contract — never touch ~/.peek/ yourself
~/.peek/ is peek's private internal storage, not something you read, write, or inspect
directly. Always go through the CLI: peek update, peek, peek --all, peek watch,
peek web. Never cat/echo/hand-edit a file under ~/.peek/, and never glob it yourself
to "check" something — if you need to know the current state, run peek/peek --json, not a
filesystem read. This keeps the on-disk schema free to change without breaking every agent that
depends on it, keeps every write atomic/valid (the CLI validates; a hand-written JSON file
might not), and means you never have to know or care what the record shape actually is.
Are you set up to use it?
Setup is plain env exports, set once per session — there is no peek register command.
You export your identity a single time (at spawn, or once at session start if you're the
conductor); every peek update call after that is bare (just --task/--status/etc, never
re-exporting anything). Reading needs no identity at all — peek, peek --all, and
peek web all work with zero PEEK_* env vars set, for anyone just looking. Only writing
(peek update) requires your identity to already be exported.
You need four env vars, normally set by whatever spawned you (a launcher script, an
orchestrator's cast command, or your own boot sequence if you're the fleet's conductor):
| Var | What it is |
PEEK_ID | Your own unique identifier |
PEEK_ROLE | conductor, orchestrator, or worker |
PEEK_PARENT | Your parent's PEEK_ID (omit only if you're conductor) |
PEEK_WORKSPACE | Your project's computed slug (omit only if you're conductor — see below) |
The tree is built strictly from these stored PEEK_PARENT links — never from position,
spawn order, or directory structure — so get your own parent right at registration time.
If these aren't set and you're not conductor, peek update will hard-error rather than write
a silently-wrong record — that's intentional. Ask whoever cast you to set them, or if you're
bootstrapping a fresh fleet yourself, compute PEEK_WORKSPACE as your project root's absolute
path with every / replaced by - (same scheme as ~/.claude/projects/<slug>), normalized to
the main checkout if you're in a git worktree — never a worktree's own path.
Special case — you're the conductor: your whole setup is one line, once:
export PEEK_ROLE=conductor PEEK_ID=conductorRegistration is cwd-agnostic — your own directory is irrelevant, PEEK_ROLE=conductor alone
routes your record into the reserved ~/.peek/projects/_conductor/<PEEK_ID>.json slot, no
PEEK_PARENT/PEEK_WORKSPACE needed. Every peek update after that one export is bare.
When to peek update
Call it at these three moments, not continuously — peek has no lifecycle hooks in v1, so if
you don't call it, your record goes stale and eventually looks crashed to whoever's watching:
- On task start — the moment you pick up a ticket/task, before doing any real work:
peek update --task "implementing PEK-6: --json output on peek" --status working - On block — the moment you're stuck waiting on something (a decision, another seat, a
quota reset):
Go back topeek update --task "same as above" --status blocked --note "waiting on CEO: --all scope decision"--status workingthe moment you're unblocked and resume — don't leave a staleblockedrecord sitting once you're moving again. - On done — the moment your work is actually complete (committed, gates passed — not just
"code written"):
Apeek update --task "implementing PEK-6" --status done --ticket PEK-6donerecord is still visible (briefly) beforepeek pruneclears it — this is what lets the level above you see completion without you having to send a separate chat message.
--ticket and --note are optional; omitting them on a later call clears any previously-set
value (each peek update fully overwrites your record, it doesn't patch it).
When to check on your own children
If you have workers or sub-orchestrators reporting to you (your PEEK_ID shows up as their
PEEK_PARENT), don't rely on capturing their panes to know what they're doing:
peek— one-shot: your project's tree (or the whole fleet if you'reconductorwith noPEEK_WORKSPACE), each agent's task/status and a relative "Xm ago", with a dim/gray ⚠ on anything stale past ~10 minutes. Run this before deciding whether a seat needs a nudge.peek watch— same view, live-refreshing (~3s) until Ctrl-C. Use this instead of re-runningpeekin a loop yourself when you're actively monitoring a cast in progress.peek --all— force the full cross-project view regardless of your ownPEEK_WORKSPACEscope (usable by any role, not justconductor— see PLAN.md's clarification on why a conductor-only restriction would be pointless).peek --json— same data as a flat JSON array (each record plus a computedstaleboolean) if you need to consume it programmatically rather than read it.- A stale (⚠) entry that hasn't moved to
doneis your signal to actually check that seat — capture its pane, ask it a direct question, or treat it as crashed and re-cast the work.
What NOT to do
- Don't call
peek updateon every tool call or thought — three moments (start/block/done) is the contract. Spamming updates defeats the "at a glance" design and adds noise no one reads. - Don't skip reporting because "the task is quick" — a worker that starts and finishes in two
minutes without ever calling
peek updateis invisible the whole time; call it at start even for small tasks. - Don't use
peekas a substitute for the actual reporting flow in your fleet's playbook (e.g. builders still report commits to QA with sha + evidence) —peekis a status radar, not a replacement for the evidence-bearing handoffs a fleet's QC gates require.
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.

