Borrowing it
Nothing to install: this file belongs to windaddict/switchboard-streamdeck. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/windaddict/switchboard-streamdeck/main/CLAUDE.mdgit clone --depth 1 https://github.com/windaddict/switchboard-streamdeckWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/windaddict/switchboard-streamdeck/claude-md)<a href="https://agentmods.dev/instructions/windaddict/switchboard-streamdeck/claude-md"><img src="https://agentmods.dev/badge/instructions/windaddict/switchboard-streamdeck/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/windaddict/switchboard-streamdeck/claude-md"><img src="https://agentmods.dev/badge/instructions/windaddict/switchboard-streamdeck/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.10453 | $0.10453 |
| Opus 5.5 | $0.04181 | $0.04181 |
| Sonnet 5.5 | $0.02091 | $0.02091 |
| Haiku 4.5 | $0.01045 | $0.01045 |
Grade A, and why
switchboard-streamdeck CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 26d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 587 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Switchboard — Stream Deck plugin (developer guide)
A macOS Stream Deck plugin (public name Switchboard, by Moving Average Labs).
Built with the Elgato SDK v2 (TypeScript/Node). The plugin UUID is
com.movingavg.switchboard (renamed from the legacy com.johnknox.safarijump).
Don't change it casually — installed buttons reference it, so a change orphans
configured keys unless migrated. scripts/rename.sh performs such a migration
(it rewrites the UUIDs in the Stream Deck profile store so settings survive); see
that script before ever renaming again. Sixteen actions today (the manifest is the
source of truth — scripts/make-hero.py reads it).
Layout
src/
plugin.ts # entry: registers every action, streamDeck.connect()
actions/*.ts # thin SDK glue per action (onKeyDown/onDialRotate/…)
applescript/
escape.ts # escapeForAppleScript (shared)
runner.ts # runAppleScript via osascript; classifyError (TCC)
mac/ # PURE, tested logic (no SDK, no I/O)
targets/safari ... # see files below
safari/ # Safari tab logic (targets.ts, applescript.ts, runner re-export)
mac/agent-*.ts # AI Project (supersedes the three per-agent keys):
# agent-project (one AgentKind/AgentState vocabulary,
# per-kind approval-prompt matchers, decideAgentFace,
# per-kind key face), agent-scan (ADAPTER over the three
# existing scanners — never a fourth scanner)
mac/deprecation.ts # the badge on the three superseded key faces; DELETE
# this whole file when those actions are retired
mac/cursor-*.ts # Cursor CLI detection: cursor-scan (pgrep -f the installed
# versions path -> ps -o pid=,ppid=,tty=,args= -> lsof), cursor-project
# (identity + turn_ended state + approval-prompt scrape + key face)
mac/claude-*.ts # Claude Code detection: claude-scan (ps→batched lsof +
# shell-snapshot busy children = "N shells still running"; pgrep
# misses ancestors), claude-state (title marker: braille=working,
# ✳=waiting; tmux pane-tty map), claude-transcript (~/.claude/
# projects freshness), claude-project (state decision + key face)
mac/{coalesce,serialize,press-gate}.ts # shared async plumbing (all unit-tested)
mac/pasteboard-stash.ts # Paste Snippet's clipboard save/restore: copies the
# WHOLE pasteboard (every item, every type) into a
# named stash pasteboard and back, so a gesture
# borrows the clipboard instead of keeping it.
# NEVER stashes a ConcealedType clipboard.
mac/snippet.ts # Paste Snippet pure logic: size cap, and the four key
# faces — preview (the default, whatever the text's
# provenance), masked (opt-in per key), blank
# (whitespace-only) and over-cap. Key-face SVG.
mac/clipboard-snippet.ts # Paste Snippet's ⌘C/⌘V route: the capture poll, the
# snippet write (build the item, THEN clear), the
# per-write ownership token, and the gesture
# orchestration that saves/restores the clipboard
mac/ax-text.ts # Paste Snippet's no-clipboard route, CAPTURE ONLY:
# captureViaAx reads AXSelectedText on the frontmost
# app's focused element via System Events. Framed
# `ok\n<text>` / nosel / unsupported / err|<n> — status
# on the first line, payload after the first newline, so
# selection text can't corrupt the framing. insertViaAx
# exists but is NOT on the live path: the AX write was
# measured reporting success while inserting nothing
tests/*.test.ts # vitest; one file per pure module
com.movingavg.switchboard.sdPlugin/
manifest.json # actions, layouts, icons, CodePath -> bin/plugin.js
ui/*.html # property inspectors (sdpi-components bundled in ui/lib/)
ui/lib/permissions.js # shared PI Accessibility-warning banner (see below)
layouts/*.json # custom encoder (touchscreen) layouts
imgs/actions/<a>/*.png # icon.png/@2x + key.png/@2x per action
bin/plugin.js # rollup output — COMMITTED (self-contained bundle)
bin/macos/{scroll,tile,axcheck} # compiled Swift helpers — committed, UNIVERSAL
# (arm64+x86_64), Developer ID signed + notarized
helper/{scroll,tile,axcheck}.swift # native helpers (scroll wheel / window tiling / AX probe)
scripts/
build-helpers.sh # build the 3 helpers universal; auto-sign if a Developer ID cert is present
notarize-helpers.sh # no-Fastlane notarize fallback
make-hero.py # regenerate docs/switchboard-hero.png from the manifest
rename.sh # UUID migration tool (see Rename section)
fastlane/ # Developer ID signing + notarization (see Releasing)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 26d ago Changed · +2 lines · +43 tokens per session bd4b32401750
- 27d ago Changed · +1 lines · +21 tokens per session 98a00a7e698a
- 28d ago Changed · +49 lines · +1,039 tokens per session 900bb8e46471
- 2mo ago First seen · 535 lines · 9,350 tokens per session scan A 3507983dbc1a
switchboard-streamdeck CLAUDE.md is an instructions file published in the GitHub repository windaddict/switchboard-streamdeck (6 stars, last pushed 27d ago), licensed MIT. It adds 10,453 tokens to every session, about $0.0418 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
switchboard-streamdeck CLAUDE.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| switchboard-streamdeck CLAUDE.mdwindaddict/switchboard-streamdeck | Instructions file | 6 | 27d ago | MIT | A | 10,453 | Claude Code |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | yesterday | MIT | A | 7,461 | Codex, OpenCode |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | yesterday | MIT | A | 4,680 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 5,516 | GitHub Copilot |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 3,093 | GitHub Copilot |
| deepseek-harness AGENTS.mddeepseek-ai/deepseek-harness | Instructions file | 274k | 2d ago | MIT | A | 4,313 | Codex, OpenCode |