Sno Station
Sno Station is your agents' workstation: open-source software that turns the AI agents you already run into one squad on your own machine. Two heads are better than one, and they get better with every
翻訳待ち
リポジトリ情報はまだ収集していません。
No updates detected yet. GitHub releases will appear here.
Research-backed prose registers for AI coding agents. Six levels from classy humanized (liner) to bare keywords (morse). Concise output that stays clear.
翻訳待ち
Loading the full README.
Read the full README ↗Transatlantic is a skill/plugin for Claude Code and 30+ other AI coding agents. The voice comes first. At Sage.is, makers of the Sage AI UI, the house writing guidelines have been minimal, earnest, and Hemingway-inspired for years: short declarative sentences, plain words, nothing cut that carries meaning. Transatlantic packages that register so your agent writes to it too. It's built on a fork of caveman, which proved that agents waste most of their words and contributed its measurement culture; we contributed the voice. The default cuts the filler and keeps the grammar, because the evidence says that's where compression is free.
The name is the idea. Every level is a way people once talked across the Atlantic: the ocean liner, the plain letter, the newsreel broadcast, aviation radio, the telegraph cable, morse code. Pick how far down the wire you want to go.
Question: "Why does my React component re-render?"
A typical agent (69 tokens): The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. When you pass an inline object as a prop, React's shallow comparison sees it as a different object every time, which triggers a re-render. I'd recommend using useMemo to memoize the object.
transatlantic, the default (26 tokens): The component re-renders because each render creates a new object reference. Wrap the value in
useMemoto keep the reference stable.
telegraph, when you want it terse (19 tokens): New object ref each render. Inline object prop = new ref = re-render. Wrap in
useMemo.
Same fix each time. The default reads like a good newsroom edit; telegraph reads like a cable from 1912. You choose the register, and code, commands, and error strings stay byte-for-byte exact at every level.
One command finds every agent on your machine and wires each one:
# macOS · Linux · WSL
curl -fsSL https://raw.githubusercontent.com/Startr/transatlantic/master/install.sh | bash
# Or from a clone, same result
git clone https://github.com/Startr/transatlantic.git && cd transatlantic
node bin/install.js
On Claude Code specifically, the plugin path also works: claude plugin marketplace add Startr/transatlantic && claude plugin install transatlantic@transatlantic. The full per-agent matrix (Cursor, Windsurf, Cline, Gemini, 30+ more) lives in INSTALL.md.
Or simply npx -y transatlantic once Node ≥18 is on the box. Safe to re-run; npx -y transatlantic --uninstall removes everything it added.
Turn it on: it's on by default from message one on Claude Code. Switch levels with /transatlantic <level> (or the short form /ta <level>). Turn it off: say "normal mode". The legacy /caveman commands still work and map onto the new ladder.
A word on command names, because upstream got this wrong and we won't: Claude Code namespaces plugin commands, so a plugin alone only provides /transatlantic:transatlantic. This project's session hook therefore mirrors its commands into your user scope at session start, which is what makes the bare /transatlantic and /ta forms real. The mirror is polite (files you author yourself are never touched) and takes effect from your first session start after install (in the very first session, the namespaced form works immediately). Every command documented here is tested to resolve.
Six levels, most readable to most compressed. Each maps to a real research tradition; the full citations live in docs/research/level-ladder.md.
| Level | Voice | When to use it |
|---|---|---|
liner | Classy, humanized prose. Varied rhythm, no machine tells. | Essays, announcements, anything with a byline |
plain | The plain-language letter. Short sentences, common words, helpful redundancy kept. | Explaining things to non-experts |
transatlantic | Default. The newsreel voice. Full grammar with the filler, hedging, and padding cut. | Everyday agent work |
aviation | Controlled technical English, ASD-STE100 style. One instruction per sentence. | Runbooks, procedures, ESL readers, translation |
telegraph | Pay-per-word. Dropped articles, fragments. The old caveman full. | Skimming as an expert |
morse | Bare keywords. The old caveman ultra. | Maximum compression, you fill the gaps |
wenyan | Classical Chinese (文言文), the densest register of all. Also wenyan-lite and wenyan-ultra. | When you read classical Chinese and want maximum meaning per token |
Your language is preserved at every level. Write Portuguese and the agent answers in Portuguese, compressed the same way.
Most "be concise" tools guess. We ran a 29-source research pass with adversarial fact-checking (24 of 25 spot-verified claims confirmed) and built each level on what survived. Four findings shape the design:
Plainer prose wins, measurably. A rewritten Veterans Affairs letter cut inbound support calls from 1,128 to 192. A US Navy study found officers read plain memos 17–23% faster with better comprehension. Even lawyers understand legalese worse than a plain rewrite of the same contract (PNAS 2023).
Syntax is the real enemy. Center-embedded clauses, sentences folded inside sentences, hurt recall more than jargon does (Cognition 2022). Every level therefore splits nested clauses first and worries about word choice second.
Shorter and clearer are different axes. Plain wording improved comprehension without making reading faster in controlled testing. So the ladder never pretends its tersest levels are its clearest; telegraph and morse are labeled as skim registers, honestly.
This is the beginning of the README. Read the rest at the original. Read the full README ↗