{
  "markdown": "# No-Clank\n\n![No-Clank](assets/logo.svg)\n\n*Are you tired of AI-generated clankerspeech slop? Me too.*\n\n---\n\n**No-Clank kills the AI-typical writing patterns that make every LLM output sound like it was written by the same model.**\n\nContrastive parallelism. Gratuitous em dashes. \"Delve.\" \"Navigate the landscape.\" \"It's not just a tool — it's a philosophy.\" \"Certainly! Let's dive in.\"\n\nYou know the sound. This stops it.\n\n## Before / After\n\n**You ask: \"How does this algorithm work?\"**\n\nWithout No-Clank:\n\n> When exploring the intricate landscape of algorithmic paradigms, it's crucial to understand that this isn't merely about sorting data — it's a testament to the elegant tapestry of computational thinking. By leveraging a divide-and-conquer methodology, we unlock the ability to navigate the ever-evolving realm of efficient data processing. Fast, scalable, and robust. But what does this actually mean for you? It means you're not just sorting — you're orchestrating a symphony of data.\n\nWith No-Clank:\n\n> It splits the input in half, sorts each half recursively, then merges them. The merge step is where the comparison happens.\n\n---\n\n**You ask: \"What's the right tool for this job?\"**\n\nWithout No-Clank:\n\n> In today's fast-paced, ever-changing development landscape, selecting the appropriate tool is a journey that requires careful consideration of multifaceted requirements. Whether you're a startup or an enterprise, navigating this terrain demands a nuanced understanding of your ecosystem. From local development to production-scale deployments, the right tool doesn't just meet your needs — it elevates your entire workflow.\n\nWith No-Clank:\n\n>  `sqlite3`. Single file, no server, zero setup. Add `pg` when you have multiple writers.\n\n---\n\n**You ask for a commit message.**\n\nWithout No-Clank:\n\n> This commit introduces a robust authentication enhancement that seamlessly integrates with our existing user management ecosystem. By leveraging JWT tokens and harnessing the power of middleware, we unlock a new paradigm of secure access control. Not just a security improvement — it's a foundational shift in how we approach user verification. Closes #42.\n\nWith No-Clank:\n\n> Add JWT auth middleware. Closes #42.\n\n---\n\n**You ask: \"Write a brief paragraph explaining what happiness is for humans.\"**\n\nThe agent drafts an answer, then checks it against every rule before responding:\n\n**Draft** (caught by self-audit):\n> Happiness is a subjective emotional state characterized by feelings of contentment, satisfaction, and well-being. For humans, it arises from a combination of factors: meeting basic needs, forming meaningful social connections, pursuing goals, and experiencing positive events.\n\n**Violations found:**\n- Colon introducing a list in prose: `\"a combination of factors: meeting basic needs...\"`\n- Rule of three: `\"contentment, satisfaction, and well-being\"` is three items\n\n**Final response** (after iterative fixes):\n> Happiness is a subjective emotional state of contentment and well-being. For humans, it comes from meeting basic needs and building social connections while pursuing meaningful goals. Genetics and personality set a baseline, but intentional activities like gratitude and relationships also shape it. Happiness fluctuates and depends on both mindset and circumstances.\n\nThe full session (including the `/noclank-audit` of the response) is in [`noclank-example.md`](noclank-example.md).\n\n## Numbers\n\nMeasured on Claude Code sessions writing responses to 10 common developer questions, with and without No-Clank (n=5, Haiku 4.5):\n\n| Metric | vs baseline |\n|--------|-------------|\n| Output length | ~60% shorter |\n| Banned words used | 0 vs 4-7 per response |\n| Em dashes | 0 vs 2-5 per response |\n| \"Certainly!\" / \"Let's dive in\" | 0 vs 1-3 per response |\n| Information density | 2.5x higher |\n\n## How it works\n\nBefore writing any text, the agent checks every sentence against the No-Clank ruleset:\n\n1. **Sentence patterns** — no contrastive parallelism, rule of three, false emphasis, \"not just X but Y\", \"from X to Y\", rhetorical questions, gerund openers\n2. **Punctuation** — no gratuitous em dashes, no excessive bolding, no colon-then-list in casual prose, no emoji bullets, no Title-Case headers without cause\n3. **Vocabulary** — a banned list of ~50 words statistically over-represented in LLM output\n4. **Hedges/intensifiers** — no throat-clearing, no canned enthusiasm, no filler intensifiers\n5. **Grandiose framing** — no TED Talk intros, no false elevation of stakes\n6. **Structural tics** — no rhythm-for-rhythm's-sake phrasing, no unnecessary summaries, no hedged-then-confident close\n\n## Install\n\n### npm (install anywhere)\n\n```\nnpm install @alessiods/noclank\n```\n\n### Claude Code\n\n```\n/plugin marketplace add @alessiods/noclank\n```\n```\n/plugin install noclank@noclank\n```\n\n### Codex\n\n```\ncodex plugin marketplace add @alessiods/noclank\n```\n\nOpen `/plugins`, install No-Clank, then open `/hooks` and trust its two lifecycle hooks. Restart for desktop app.\n\n### GitHub Copilot CLI\n\n```\ncopilot plugin marketplace add @alessiods/noclank\ncopilot plugin install noclank@noclank\n```\n\nIn interactive mode:\n```\n/plugin marketplace add @alessiods/noclank\n/plugin install noclank@noclank\n```\n\n### OpenCode\n\nAdd to `opencode.json`:\n\n```json\n{ \"plugin\": [\"@alessiods/noclank\"] }\n```\n\nRun from a checkout instead (the plugin reuses `hooks/` and `skills/`):\n\n```json\n{ \"plugin\": [\"./.opencode/plugins/noclank.mjs\"] }\n```\n\nInjects the ruleset every turn at the active level; adds the `/noclank` commands (see [Commands](#commands)). OpenCode also auto-loads this repo's `AGENTS.md`, so the rules hold even without the plugin. The plugin adds the `lite/full/ultra/off` levels.\n\nThe `./` path resolves against your project's `opencode.json`; to share one checkout across projects, point it at the absolute path of the `.mjs` instead (it finds its `hooks/` and `skills/` relative to its own file).\n\n### Pi agent harness\n\n```\npi install git:github.com/alessio-ds/no-clank\n```\n\n### Gemini CLI / Antigravity CLI\n\n```\ngemini extensions install https://github.com/alessio-ds/no-clank\n```\n\nor after the rename:\n\n```\nagy plugin install https://github.com/alessio-ds/no-clank\n```\n\n### Other agents\n\n| Agent | How |\n|-------|-----|\n| **Cursor** | Copy `.cursor/rules/noclank.mdc` to your project's `.cursor/rules/` |\n| **Windsurf** | Copy `.windsurf/rules/noclank.md` to your project's `.windsurf/rules/` |\n| **Cline** | Copy `.clinerules/noclank.md` to your project's `.clinerules/` |\n| **Kiro** | Copy `.kiro/steering/noclank.md` to `~/.kiro/steering/` or your project's `.kiro/steering/` |\n| **GitHub Copilot** | Copy `.github/copilot-instructions.md` to your project's `.github/` |\n| **Aider / CodeWhale / Swival** | Copy `AGENTS.md` to your project root |\n| **OpenClaw** | `clawhub install noclank` or copy `.openclaw/skills/noclank/` to `~/.openclaw/skills/` |\n\n### Uninstall\n\n| Host | Command |\n|------|---------|\n| Claude Code | `/plugin remove noclank` |\n| Codex | `codex plugin remove noclank` |\n| Copilot CLI | `copilot plugin remove noclank` |\n| Pi | `pi uninstall noclank` |\n| Cursor / Windsurf / Cline | Delete the copied rule file |\n\n## Commands\n\n| Command | What it does |\n|---------|-------------|\n| `/noclank [lite\\|full\\|ultra\\|off]` | Set intensity level |\n| `/noclank-audit` | Scan the last response for clankerspeech violations |\n| `/noclank-help` | Quick reference |\n\n**Intensity levels:**\n\n| Level | What changes |\n|-------|-------------|\n| **lite** | Run all rules, flag banned vocab with notes, allow rhetorical overrides |\n| **full** | Rules enforced strictly. Default. |\n| **ultra** | Every sentence must pass \"would I text this to a coworker?\" |\n\nPersist the default with `NOCLANK_DEFAULT_MODE` env var or `~/.config/noclank/config.json`:\n\n```json\n{ \"defaultMode\": \"ultra\" }\n```\n\n## FAQ\n\n**Does it apply to code?** Variable names, comments, commit messages, and docs follow the rules. Code logic itself doesn't — write clean code however you want.\n\n**What if I need marketing copy?** No-Clank governs technical prose. If you explicitly ask for a different style (\"write this in marketing voice\", \"make it sound exciting\"), follow the request.\n\n**Does it work in every agent?** The `AGENTS.md` file works in any agent that reads it (most of them). The plugin+lifecycle-hook version works in Claude Code, Codex, Copilot CLI, OpenCode, Pi, Gemini CLI, and Antigravity. The rest use the instruction-only fallback.\n\n**What about creative writing?** Poetry, fiction, lyrics, and deliberately stylized prose are exempt. No-Clank is for technical and professional communication.\n\n**Why \"noclank\"?** Because every LLM output sounds like it was written by a clanker trying to sound human.\n\n## License\n\nMIT. Do what you want with it.\n",
  "bytes": 8782,
  "sha": "9a38b3b7f99c3a79f4e53c587f27ceb082b24d4a8243cb29b1d866f5ecacd086",
  "repo_slug": "alessio-ds/no-clank",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_alessio_ds_no_clank_37ebf366/readme"
}