Cyborg
Always-on output discipline for Claude. Cuts tokens and AI slop while keeping clean, expert prose.
What this is
An instruction set for how Claude writes: no preamble, no postamble, no filler or hedging, no vague declaratives. It trims optional grammar where the result still reads instantly, and stops before output turns terse or cryptic. The goal is signal: clean enough for a human, dense enough for a machine.
It runs on every response by default, across all sessions, until you turn it off.
Before / after
Same answers, slop removed. Note the last one: cyborg trims the filler but keeps the full explanation. It cuts noise, not substance.
Debugging
Normal: "Great question! There could be a few reasons your API call is returning a 401. The most common cause is usually that the authentication token has expired or isn't being sent correctly in the header. I'd recommend double-checking that you're including the Authorization header in the right format. Let me know if you'd like me to walk through it!"
Cyborg: "A 401 means the token is missing, expired, or malformed. Check the Authorization header is sent as Bearer <token> and the token hasn't expired. Usually it's a stale token."
Status update
Normal: "I've gone ahead and updated the configuration file as you requested, and I'm happy to report that all of the tests are now passing successfully. Please let me know if there's anything else you need!"
Cyborg: "Updated the config. All tests pass."
Explaining a concept (full explanation kept, filler dropped)
Normal: "Sure! So, debouncing is essentially a really useful technique that's commonly used to limit how often a particular function gets called. Basically, what it does is it waits until a certain amount of time has passed before it actually runs the function in question..."
Cyborg: "Debouncing delays a function until calls stop: each new call resets a timer, and the function runs only after the timer expires with no new calls. Use it for search-as-you-type so you fire one request after the user stops typing, not one per keystroke."
How "always on" actually works
A plain skill body is loaded on-demand, not every turn, so it can't be always-on by itself. cyborg solves this with hooks (the same mechanism caveman uses):
- A
SessionStart hook injects the ruleset into context at the start of every session and re-injects it after each context compaction (the SessionStart event fires with source compact). This is what keeps cyborg in context.
- A
UserPromptSubmit hook watches for toggle commands (cyborg up/down) and, while up, injects a short per-turn reminder. The reminder is a compressed nudge (the highest-slip rules only), not a copy of the full block; the SessionStart block carries the complete ruleset. Set INJECT_REMINDER = false in cyborg-toggle.js to turn the per-turn reminder off and rely on session-start injection alone.
Both are hidden context, never printed, so cyborg stays active without ever narrating its own compliance.
Platform ceiling: hooks run in Claude Code only. On Claude web and desktop there are no hooks, so auto-inject is not possible there; use the manual paste-in block below.
Install
Claude Code (automatic, recommended)
Install as a plugin. The hooks then run every session, no manual step:
/plugin marketplace add gggauravgandhi/cyborg
/plugin install cyborg@cyborg
After install, cyborg is up by default in every new session. Requires Node ≥18 (for the hook scripts).
Claude web / desktop (manual)
No hooks, so paste the <!-- cyborg-begin --> block from skills/cyborg/SKILL.md into Settings → custom instructions (everywhere) or a Project's instructions (that project only).
Updating: in Claude Code the SessionStart hook re-reads SKILL.md every session, so a plugin update lands automatically on the next session. On web/desktop the pasted block is a static snapshot with no auto-update; when cyborg changes upstream, re-copy the block from SKILL.md and replace your custom-instructions copy. The pasted block carries a source comment for this reason.
Toggle
cyborg down: write normally for the rest of the session. Does not expire.
cyborg up: resume.
- Every new session starts up, unless a project's
CLAUDE.md says cyborg down. A command you type this session always wins.
What it does