control-cli
Skill213 starsChanged 3 days agoMITView on GitHub
Drive and inspect an interactive CLI or TUI with a repeatable local harness, deterministic input, transcripts, and optional profiling. Use for CLI UX checks, prompt flows, startup regressions, hangs, interrupts, resize behavior, or memory growth. Do not use for a non-interactive command that a normal test can cover.
We split this skill into the rules it gives an agent
8 rules. 0 are common, 8 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 9
Prefer a repository-native demo or test harness.
- Distinctive: line 23
Stop the process and remove temporary sessions, ports, and profiles.
- Distinctive: line 38
Prefer stable text markers and accessibility-aware terminal probes over sleeps.
- Distinctive: line 39
If a sleep is unavoidable, state why and keep it bounded.
- Distinctive: line 43
Never send credentials, destructive commands, or production paths into the controlled session.
- Distinctive: line 45
Do not rely on stale screen state after navigation, resize, or a prompt change.
- Distinctive: line 46
Do not hard-code paths, ports, or commands from another repository.
- Distinctive: line 47
Keep transcripts and profiles private when they contain prompts, source, or user data.
“Common” is measured: kept by at least 6 in 10 of the 6 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
Control CLI
Exercise an interactive terminal program through a small, repeatable harness. Prefer a repository-native demo or test harness; only assemble a temporary PTY or terminal session when the project has no suitable one.
Harness Loop
- Identify the command, smallest fixture, expected ready marker, and cleanup condition.
- Discover existing package scripts, PTY helpers, expect scripts, demo recorders, or TUI tests.
- Launch in an isolated environment with deterministic variables and local disposable data.
- Capture the initial screen or transcript.
- Send one action at a time and wait for a concrete prompt or screen marker.
- Capture the resulting transcript and any requested profile artifact.
- Stop the process and remove temporary sessions, ports, and profiles.
On Windows, prefer the project's own test runner or a checked-in Python/Node
probe. Use ConPTY or an already-installed PTY helper when available; do not add
a dependency just to run a one-off probe. On other systems, tmux, pty, or a
repository-supported terminal harness may be appropriate.
Evidence
For a bug fix or regression, run the same deterministic interaction against the
baseline and treatment and pass the captures to verify-this. For a hang, keep
the last screen, process exit state, timeout, and a stack/CPU sample when
available. For memory growth, use equal repetitions and record before/after
snapshots or a bounded allocation metric.
Prefer stable text markers and accessibility-aware terminal probes over sleeps. If a sleep is unavoidable, state why and keep it bounded.
Safety
- Never send credentials, destructive commands, or production paths into the controlled session.
- Do not rely on stale screen state after navigation, resize, or a prompt change.
- Do not hard-code paths, ports, or commands from another repository.
- Keep transcripts and profiles private when they contain prompts, source, or user data.
Gotchas
- A process that exits successfully before receiving input is not proof that the interactive flow works; assert the ready marker and the expected state change.
- Fixed sleeps hide race conditions and make a green run non-repeatable.
- A terminal transcript can miss rendering defects; use a real UI surface for graphical claims.
- Cleanup must be verified, especially after a timeout or forced interrupt.
Troubleshooting
| Symptom | Likely cause | Action |
| Harness hangs | Wrong ready marker or child process owns the terminal | Capture the screen, inspect the process tree, then terminate cleanly |
| Input is ignored | Program is not in the expected prompt state | Wait for a fresh marker and send one action only |
| Works manually, fails in harness | Hidden environment, terminal size, or timing dependency | Record env/size and replace sleeps with state-based waits |
| Transcript is empty | Output is on another stream or the PTY was detached | Capture stdout and stderr through the repo-native harness and verify file size |
Source
Adapted from Cursor Team Kit's MIT-licensed control-cli workflow:
https://github.com/cursor/plugins/tree/main/cursor-team-kit/skills/control-cli
Other versions7 projects use a version of this.
Word for word · 1
- AnastasiyaW/codex-claude-code-config★ 213100% same
Edited · 0
None found.
Wrote their own version · 6
- anis-dr/skills★ 3same name
- conscientiousness/herdr-pstack-orchestrator★ 2same name
- EvanBatten/pstack-for-cc★ 2same name
- ElyzeSolutions/skills★ 1same name
- ngcto/oh-my-pstack★ 1same name
- ArchitektApx/cursor-skills-for-claude★ 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.
Used alongsideProjects with it also use poteto-mode, automate-me and 9 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.
jaydubya818Skillpoteto-mode
Use when non-trivial work should follow the smallest rigorous Jstack workflow.
Also in 3 projects that use this
jaydubya818Skillautomate-me
Use when the user wants working preferences captured in a reusable mode skill.
Also in 3 projects that use this
LangChainSkillswarm
Dispatches many independent items in parallel: create a table, fan out to subagents, aggregate results. One row = one unit of work.
Also in 3 projects that use this
- +8 more from jaydubya818
In this repository60 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- agent-harness-designSkill
- agents-best-practicesSkill
- diffusion-engineeringSkill
- flux2-klein-promptingSkill
- flux2-lora-trainingSkill
- forensic-prompt-compilerSkill
- ml-research-labSkill
- notebooklm-grounded-researchSkill
- vlm-segmentationSkill
- feature-newSkill
- harness-designSkill
- layer-newSkill
- plan-swarm-reviewSkill
- pixel-art-storyboardSkill
- pixel-art-studioSkill
- architecture-firstSkill
- architecture-qualitySkill
- bug-reproducerSkill
- code-complexitySkill
- control-uiSkill
- deep-reviewSkill
- deslopSkill
- distill-feedbackSkill
- harness-feedbackSkill
- proof-verifySkill
- refactoring-safelySkill
- repo-mapSkill
- root-cause-deliverySkill
- system-and-data-designSkill
- testing-strategySkill
- thermo-nuclear-code-quality-reviewSkill
- verify-thisSkill
- workflow-orchestrationSkill
- frontend-designSkill
- motion-framerSkill
- ui-designSkill
- ui-ux-pro-maxSkill
- ios-developmentSkill
- lean-codeSkill
- cross-harness-continuationSkill
- deepseek-provider-contractSkill
- desktop-sessions-discoverySkill
- epistemic-challengeSkill
- gemini-delegateSkill
- harness-auditSkill
- observability-monitoringSkill
- remote-compute-opsSkill
- plan-to-ticketsSkill
- product-meaning-extractorSkill
- remotion-production-guideSkill
- script-evaluatorSkill
- video-narrative-arcSkill
- video-post-productionSkill
- article-structure-reviewSkill
- cavemanSkill
- humanize-englishSkill
- humanize-russianSkill
- owner-voiceSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

