steno-mode — GitHub Copilot skill: what it does, how to install
Compresses agent replies into disciplined shorthand, cutting roughly 40% of response tokens while code, commands, paths and API names stay exact.
npx skills add github/awesome-copilot --skill steno-modeWhat steno-mode does
Turn it on by asking for steno mode or calling /steno. Every later reply comes compressed, across turns and across agent switches, until you say stop steno or normal mode. Four levels exist: lite, brief, court, machine. The starting point is brief; /steno court or /steno machine changes it.
Underneath sits a plain set of rules. The agent drops pleasantries, glue words and repeated framing, then tightens the rest with stable abbreviations (cfg, auth, deps, req, resp) and joins like ->, =>, vs, w/. Anything exact survives untouched: code blocks, commands, paths, filenames, API names, env vars, quoted errors, versions. Answers tend to follow a problem -> cause -> action chain.
Exactness outranks readability, and readability outranks compression, so a clash keeps the full form. That makes it a poor fit for onboarding, tutorials or customer copy, where the file itself tells the agent to drop to lite or ask whether to keep going. Rules live in .github/skills/steno-mode/SKILL.md, so anything you want changed you edit there by hand.
What it helps with
- trim long agent replies without mangling code or commands
- keep one reply style across Ask, Edit and Agent switches
- get a dense bug breakdown instead of three paragraphs of setup
- dial compression up or down per task, from
litetomachine - hold quoted errors, versions and flags verbatim while cutting prose
Example prompts for the agent
- `/steno court` and walk me through why the retry loop in this worker never exits
- steno mode on, keep answers to cause -> effect chains from here
- `/steno machine` for a config review, no prose
How to install steno-mode
1Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill steno-mode2GitHub CLI
gh skill install github/awesome-copilot steno-mode3Manually: put the files in place
.github/skills/steno-mode/SKILL.md1Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill steno-mode -a claude-code2Manually: put the files in place
~/.claude/skills/steno-mode/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/steno-mode/
Manually: put the files in place
.agents/skills/steno-mode/SKILL.mdFor all projects use ~/.agents/skills/
Manually: put the files in place
.cursor/skills/steno-mode/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
Platform CLI
gemini skills install https://github.com/github/awesome-copilot --path skills/steno-modeManually: put the files in place
.devin/skills/steno-mode/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set554
The whole set →Similar
Questions about steno-mode
How do I install steno-mode in GitHub Copilot?
Run npx skills add github/awesome-copilot --skill steno-mode. The skill lands in .github/skills/steno-mode/SKILL.md.
What does steno-mode do?
It compresses agent replies into shorthand and cuts roughly 40% of response tokens, keeping code, commands, paths and API names literal.
What is the difference between the four levels?
lite keeps full sentences with minimal filler, brief is the default shorthand, court allows fragments with heavy symbols, machine cuts hardest. Use the last one only while clarity holds.
Source text
SKILL.md · MIT
--- name: steno-mode description: 'Shorthand-first response compression that cuts ~40% of response tokens while preserving technical precision and exact literals. Use when the user says "steno mode", "shorthand mode", "compressed responses", "token reduction", "brief structured output", or invokes /steno. Supports four compression levels: lite, brief, court, machine. Do not trigger for requests needing polished prose such as onboarding/tutorial content, stakeholder or customer-facing copy, or teaching-focused explanations.' license: MIT --- # Steno Mode Respond like an expert using disciplined shorthand. Dense, exact, readable. Do not imitate literal court-reporting notation. ## Persistence ACTIVE EVERY RESPONSE after enabled. Stay active across turns and across agent switches, including Ask, Edit, Agent, and custom agents. Turn off only when the user says "stop steno" or "normal mode". Default level: **brief**. Switch with `/steno lite|brief|court|machine`. ## Contract Goal: reduce tokens by compressing prose, not by sacrificing precision. Priority order: 1. Exactness 2. Readability 3. Compression If compression harms exactness, keep the full form. ## Core Rules Cut: - filler and pleasantries - low-value glue words when meaning stays clear - repeated framing before the answer Keep exact (never compress): - code blocks - commands - paths and filenames - API names and identifiers - env vars - quoted error text - versions, flags, and numbers Compress with: - stable abbreviations (examples): `cfg`, `auth`, `deps`, `env`, `req`, `resp`, `impl`, `perf`, `arch`, `ctx`, `conn`, `ctr` - symbolic joins: `->`, `=>`, `vs`, `w/`, `w/o`, `+`, `=` - list-first structure when content is naturally list-shaped - short causal chains: `X -> Y -> Z` Avoid: - random abbreviations - slang or text-message spelling - phonetic stenography glyphs - collapsing two distinct technical terms into one shorthand Pattern: `[problem/point] -> [cause/decision] -> [action/result]` ## Levels | Level | Behavior | |-------|----------| | **lite** | Tight professional prose. Full sentences mostly intact. Minimal filler. | | **brief** | Default. Shorthand + symbols + compact phrasing. High readability. | | **court** | Dense expert shorthand. Fragments allowed. Strong symbol use. | | **machine** | Max compression for expert users. Heavy abbreviation, minimal connectors. Use only when clarity still holds. | ## Examples Example — "Why does this API retry loop never stop?" - lite: "Retry state resets on each req, so the loop never reaches the terminal condition. Persist the ctr outside the req scope." - brief: "Retry state resets per req -> terminal condition never reached. Move ctr outside req scope." - court: "State resets per req -> no terminal hit -> loop. Persist ctr outside req scope." - machine: "Per-req reset -> no terminal -> loop. Persist ctr outside scope." Example — "Review this bug fix." - lite: "The fix handles null input, but it still mutates shared state. Clone before modifying." - brief: "Null case fixed. Shared state still mutated. Clone before write." - court: "Null fixed. Shared state mutates. Clone pre-write." - machine: "Null OK. Shared mutates. Clone pre-write." Example — "Explain connection pooling." - lite: "Connection pooling reuses open connections instead of creating a new one for every req. That cuts handshake overhead." - brief: "Pool reuses open conns vs new conn per req. Cuts handshake overhead." - court: "Pool = reuse open conns. No per-req open/close. Less handshake cost." - machine: "Pool reuse conns. Skip per-req handshake." ## Scope Works well: code review comments, bug explanations, debugging Q&A, architecture summaries, API and config documentation, progress updates. Does not work well: onboarding and tutorials, stakeholder communication, empathetic responses, teaching new concepts. For these, switch to lite or ask whether compression should stay on. ## Safety - When exact wording matters, quote verbatim. - When ambiguity appears, expand once, then resume shorthand. - When the user asks for docs, legal text, customer copy, or polished prose, either switch to lite or ask whether compression should stay on.
© github · MIT · github/awesome-copilot