─ · · ─ · · · ─ · ─ · · ─ ─
T E L E T E X T
─ · · ─ · · · ─ · ─ · · ─ ─
Telegraphic communication style for AI agents.
Strips unnecessary words from AI responses using the same economy rules that governed 19th-century telegraph operators — when every word cost money and clarity was non-negotiable.
Code blocks never touched. Rules sourced from a real 1928 handbook.
"Brevity is the soul of telegraphy." — Nelson E. Ross, How to Write Telegrams Properly, 1928, p. 20
When you send a telegram, you pay per word. So you learn fast to drop every word that doesn't carry meaning: articles, filler, pleasantries, redundant phrases. What remains is precise, fast, and clear.
AI agents are verbose by default. TeleText applies the same discipline: activate it, and responses shed function words while keeping every fact intact.
| Agent | Method | Auto-activates? |
|---|---|---|
| Claude Code | Plugin or hooks | Yes — every session |
| Cursor | Rule file | Yes — always on |
| Windsurf | Rule file | Yes — always on |
| Cline | .clinerules |
Yes — auto-discovered |
| Copilot | copilot-instructions.md |
Yes — repo-wide |
| Others | npx skills |
No — /teletext each session |
Option A — Plugin (recommended)
claude plugin install subhsaha/teletextHooks activate CABLE on every session start. Statusline badge [CABLE] / [WIRE] / [FLASH] appears automatically. No manual /teletext needed.
Option B — Hooks installer
From a local clone:
bash hooks/install.shOr without cloning (one-liner):
bash <(curl -s https://raw.githubusercontent.com/subhsaha/TeleText/main/hooks/install.sh)What it installs:
SessionStarthook — injects teletext rules at session startUserPromptSubmithook — tracks level when you switch with/teletext wireetc.- Statusline badge — shows active level in terminal
Restart Claude Code after running.
Option C — Skill files only (no auto-activation)
bash scripts/install.sh claudeCopies skill .md files to ~/.claude/commands/. Use /teletext to activate manually each session.
bash scripts/install.sh cursorCopies skill files to ~/.cursor/commands/. The repo also ships a .cursor/rules/teletext.mdc with alwaysApply: true — clone the repo into your project to get always-on activation without a command.
bash scripts/install.sh windsurfCopies skill files to ~/.windsurf/commands/. The .windsurf/rules/teletext.md file with trigger: always_on ships in the repo — clone it into your project for always-on activation.
.clinerules/teletext.md is in the repo root. Cline auto-discovers all .clinerules/ files — clone the repo or copy that file into your project root. No command needed.
.github/copilot-instructions.md and AGENTS.md are included. They activate teletext repo-wide when the repo is in your workspace.
Manual install to VS Code commands directory:
bash scripts/install.sh vscodenpx skills add subhsaha/teletextCopies skill files to the right location for whatever agent npx skills detects. Use /teletext to activate.
bash scripts/install.shScans for Claude Code, Cursor, Windsurf, and VS Code — installs to every one it finds.
bash hooks/uninstall.sh # Claude Code hooks
bash scripts/uninstall.sh # skill files (all agents)export TELETEXT_DEFAULT_LEVEL=wireOr persist it:
# ~/.config/teletext/config.json
{ "defaultLevel": "wire" }Valid values: off wire cable flash code
| Command | What it does |
|---|---|
/teletext |
Activate CABLE level (default) for this session |
/teletext wire |
Light compression — grammar intact, filler removed |
/teletext cable |
Default telegraphic — drops articles, pronouns, auxiliaries |
/teletext flash |
Maximum compression — for memory/log files only |
/teletext code |
Structured key=value output |
/teletext-commit |
Terse conventional commit message from staged diff |
/teletext-review |
One-line code review comments, issues only |
/teletext-compress <file> |
Compress a memory or context file in-place |
There are 4 levels, ranging from light to extreme. Each is grounded in Ross's own text.
Removes filler, closings, and pleasantries. Sentence grammar stays intact. Safe to paste into tickets, emails, or Slack.
What gets removed: "I just wanted to let you know", "Yours sincerely", "essentially", "basically", "it is worth noting that"
Before:
"I just wanted to let you know that the build is currently passing
and all of the tests are green. Everything looks really good."
After [WIRE]:
"Build passing. All tests green."
Ross's prescribed economy level. Based directly on his demonstration in the book (p. 23). Drops articles (a, the), subject pronouns (I, we, that), and redundant auxiliaries where meaning survives without them. Fragments are allowed.
What gets removed: articles, subject pronouns, auxiliary verbs, conjunctions where avoidable
Before:
"We received your very fine letter and your telegram this morning
on the morning after you left us there were so many things to be
done that all we could do was to pack up and get a taxi in time
for the train we are leaving now."
After [CABLE] — Ross's own compressed version, p. 23:
"Received your very fine letter and telegram this morning so many
things to be done morning after you left all we could do was pack
and get taxi for train are leaving now."
Technical example:
Before:
"The authentication service is currently down and users are unable
to log in to the system at this time."
After [CABLE]:
"Auth svc down. Users cannot login."
Press correspondent style — how wire journalists filed dispatches when cable tolls were charged by the word. Ross demonstrates this on p. 24 and immediately notes it is "unsuited to the ordinary business or social telegram."
Use this only for compressing memory files and session context — not for human-facing responses.
Before:
"The enemy has not yet been met or even seen on account of the
entanglements thrown up during the night."
After [FLASH] — Ross's own cable version, p. 24:
"Enemy unmet unseen account entanglements upthrown night."
Memory file example:
Before:
"The user is a senior software engineer working on the authentication
service. They have deep expertise in Go but this is their first time
working on the React frontend."
After [FLASH]:
"user: senior eng. auth svc. go expert. react=new."
Key=value pairs. Inspired by Ross's description of industry codebooks (p. 26–27), where grain merchants compressed 14-word trade messages to 3-word codes. Use for logs, CI output, and structured data.
status=fail svc=auth err=timeout retries=3 ts=2026-04-14T09:32Z
TeleText only compresses prose. These are always preserved exactly:
- Code blocks — never altered
- File paths —
src/auth/jwt.tsstays as-is - URLs — never shortened or altered
- Identifiers and variable names —
authTokenExpiryis notauth token expiry - Raw error message text — the error string is kept verbatim; telegraphic style applies to the surrounding explanation only
Inspired by caveman by Julius Brussee. Credit where it's due.
Every rule in TeleText traces to a single source:
Nelson E. Ross, How to Write Telegrams Properly, 1928 Little Blue Book No. 459 Haldeman-Julius Publications, Girard, Kansas Public domain — full text available on Wikisource
Ross's two governing principles, quoted directly:
What to cut (p. 9):
"If the telegram is packed full of unnecessary words — words which might be omitted without impairing the sense of the message — the sender has been guilty of economic waste."
What to keep (p. 9):
"In the other extreme, he may have omitted words necessary to the sense, thus sacrificing clearness in his eagerness to save a few cents."
The balance between these two is what TeleText enforces. Accuracy is never traded for brevity.
Apache 2.0 — see LICENSE.