{"slug": "show-hn-grai-a-single-file-offline-writing-desk-that-measures-your-voice-dna", "title": "Show HN: Grai, a single-file offline writing desk that measures your voice DNA", "summary": "A developer released Grai, a single-file offline HTML writing tool (grai.html) that extracts a writer's \"Voice DNA\" from 5 to 20 past posts and audits drafts against 6 structural rules and a CV ≥ 0.32 rhythm floor, running locally in a copy-paste mode over Claude, ChatGPT or Gemini at zero API cost. Grai's author cites a LigoSocial dataset of 1,499 profiles and 134,522 LinkedIn posts from January 2023 to September 2026, which found openings starting with \"Here is why\" increased sevenfold while banned corporate buzzwords dropped but robotic cadence persisted. The tool scores drafts from 4 to 100 on cadence and reports that raw LLM prompts produce a sentence-length standard deviation of 1.4 words versus 7.8 words under Grai's enforcement.", "body_md": "THE PERSONAL VOICE ENGINE. LOCAL-FIRST. ZERO SUBSCRIPTION.\n\nNo subscriptionLocal-first HTML5 workbenchInstant launch\n\nStop publishing AI slop with your name on it.\n\nDraft faster with AI without the polite, robotic ChatGPT smell that kills your authority. grai extracts your Voice DNA and audits every draft against your structural rules and rhythm floor. It turns rough ideas into high-trust posts that win clients.\n\nRaw idea Most founders post every day and still get ignored. They think it is a volume problem.\n\nMost founders post daily and stay invisible. Volume is not the problem. Nobody remembers a voice they have heard a hundred times.\n\nshort hooksharp rhythmLinkedIn speed\n\nMost founders assume the feed rewards volume. It does not. It rewards recognition: the moment a reader sees two lines and knows who wrote them before checking the name. Another content calendar changes nothing because the work is structural. Sentence rhythm must move. Openings must stop sounding borrowed from corporate playbooks. The argument must carry a real operational cost, never a lazy slogan.\n\ndense argumentnewsletter depthlong arc\n\n1,499 profiles analyzed across 134,522 posts between January 2023 and September 2026 revealed identical viral traps. Arrow bullets surged. Openings starting with \"Here is why\" increased sevenfold across the dataset. Banned corporate buzzwords dropped. Writers deleted the vocabulary and kept the exact same robotic cadence. That is the tell. Fix the rhythm, never the word list.\n\nZero new AI subscriptions. The shipped grai.html runs locally in Copy-Paste mode over Claude or ChatGPT (plus Gemini) at zero API cost. Custom source builds also support direct API keys or local Ollama models.\n\nCLAUDEGPTGEMINIDEEPSEEKLOCAL OLLAMA\n\nArchitecture // Deterministic Syntax Compiler\n\nWhy prompts fail. And how grai enforces your spine.\n\nTHE LLM BLIND SPOT\n\nTell an LLM to \"write in a punchy, human tone\" and it nods politely before reverting to corporate porridge in two paragraphs. Why? Because LLMs are probabilistic next-word predictors trained on internet averages. They cannot count syllables or calculate sentence-length variance while streaming tokens.\n\nRAW LLM PROMPT\n\nσ = 1.4 words (Robotic Flatline)\n\ngrai ENFORCED\n\nσ = 7.8 words (Human Burstiness)\n\nSTAGE 01 // INPUT LAYERSYNTAX, NOT ADJECTIVES\n\nVoice DNA Extraction\n\nSENTENCE VARIANCE (σ)≥ 6.8 words\n\nHOOK PACING FLOOR4.2 words / line\n\nASYMMETRIC CADENCELOCKED [5 SAMPLES]\n\nVague style adjectives like \"witty\" or \"authoritative\" mean nothing to a machine. grai ingests 5 to 20 of your past posts and extracts your mathematical fingerprint: median sentence length, burstiness (CV), and rhythm floor.\n\n→\n\nSTAGE 02 // LOGIC INTERCEPTANTI-CONSENSUS\n\nPremise Sparring\n\nWEAK THESIS\"AI is changing how B2B teams work...\"\n\nSPARRING CHALLENGE\"Everyone agrees. Where is the blood on the floor? Name the exact failure mode.\"\n\nGreat syntax cannot save a cowardly idea. Before generating a single paragraph of draft prose, grai challenges lazy, consensual takes and forces you to sharpen your core thesis until it cuts.\n\n→\n\nSTAGE 03 // COMPILER GATEDETERMINISTIC AUDITOR\n\nThe Cadence Gate\n\nFLAGGEDContrastive negation (\"It's not X, it's Y\")\n\nHIGHLIGHTEDFlat rhythm below CV ≥ 0.32 floor\n\nVERIFIEDRhythm floor verified (6/6 rules clean).\n\ngrai deterministically scans the draft in your browser outside the LLM. It scores cadence from 4 to 100 against 6 structural rules and a CV ≥ 0.32 floor. It highlights matching spans and offers targeted span repair while you keep final control over editing and copying.\n\nYou bring the raw insight./Your AI brings the speed./grai enforces your spine.\n\nThe study\n\nIn a feed of clones, an unmistakable voice is a monopoly.\n\nEvery AI writing tool tells you to block the mocked words. You deleted the vocabulary. The habits stayed.\n\nThe LigoSocial dataset: 134,522 LinkedIn posts from 1,499 profiles, January 2023 to September 2026. Writers removed the mocked words. The habits multiplied: arrow bullets rose 20.5x, and \"Here is why\" openings rose 7.4x.\n\nHere is why most founders struggle with content. It is not a distribution problem, it is a courage problem. In today's fast-paced world, consistency is the single most important key to unlocking your potential across multiple channels. The harsh truth is that your audience craves authentic storytelling at scale.\n\n→ Post every single day without exception.\n\n→ Add massive value in every interaction.\n\n→ Stay consistent and trust the process.\n\nOne rhythm · 5 cliches · 1 false opposition\n\nInputrobotic↓Cut6 rules↓Outputclean\n\ngrai calibratedYour Voice DNA\n\nMost founders do not have a distribution problem.They post every day. The feed keeps scrolling.What is missing is a voice people recognise after two lines, not another content calendar.So I stopped counting posts. I started counting sentences that sound like me.Three drafts a week now do more than thirty that sound like everyone else.\n\nVaried rhythm · 0 cliches · 0 false oppositions\n\nThe free test\n\nScore your last post (Free test).\n\nPaste the post you published last. The same six mechanical rules that ship in grai run in this page, with no model, no key and no upload.\n\nVOICE CALIBRATOR\n\nRuns locally on your device\n\n32/100Flat cadence. Sounds like everyone else.\n\nSentence rhythmshort/long --monotone\n\nshortlongest --long\n\nVoice mechanicSignals\n\nSix checkers and one rhythm floor. Paste the specimen over the draft. Nothing leaves your browser.\n\nNo 20 posts to paste? Start from a measured Voice DNA archetype. The full pack is $39, and every preview below loads straight into the live calibrator above.\n\nBrutalist Engineer\n\nCV 0.52 · 100/100 · 12 samples\n\nShort declaratives, numbers over adjectives, zero corporate vocabulary.\n\nContrarian Bootstrapper\n\nCV 0.44 · 100/100 · 15 samples\n\nDirect pricing talk, contrarian premise, no venture language.\n\nB2B Sniper\n\nCV 0.38 · 100/100 · 10 samples\n\nCold outreach under 65 words: observation, receipt, one ask.\n\nSubstack Essayist\n\nCV 0.41 · 100/100 · 20 samples\n\nLong-form essay rhythm, no tricolon, a quiet turn near the end.\n\ngrai opens directly in your desktop browser. No installer, no account creation, no grai application backend, and zero monthly subscriptions. You buy it once and run the workbench locally.\n\n1. Shipped Local App (Direct API Blocked by Default)\n\nThe pre-built grai.html file (591 KB) ships with a strict Content Security Policy (default-src 'none'; connect-src 'none') that allows inline styles, inline scripts, and data: fonts and images while blocking direct API connections from the page.\n\n2. Copy-Paste (\"Any AI\") Mode\n\nOut of the box, grai.html runs in Copy-Paste mode. It builds a compact prompt under 1,800 characters that you copy into your existing Claude or ChatGPT tab (or Gemini), then paste back into grai for local verification. Zero API fees.\n\n3. Custom Source Build (BYOK & Local Ollama)\n\nWant direct browser-to-API calls or local Ollama (http://localhost:11434)? Edit connect-src in source/src/app.html and rebuild with python3 scripts/build.py (included in the kit). Direct requests go from your browser to your endpoint, subject to browser CORS rules on file://.\n\n1-Click Local Backup & Agency Team Distribution\n\nA founder exports the client profile as one .grai file and drops it in Slack. The junior writer clicks Restore Backup and writes in that measured voice before the call ends. No shared login, no cloud workspace, and zero per-seat fees.\n\nSafari, Chrome, Arc, Brave, Edge. Double-click, open, write. Zero local port conflicts, zero terminal setup.\n\nWindows\n\n● NATIVE OPTIMAL\n\nEdge, Chrome, Firefox, Brave. Runs instantly in user space. No bloated installer, no background daemons, no IT admin rights required.\n\nLinux\n\n● NATIVE OPTIMAL\n\nChrome, Firefox, Chromium. The exact same local-first syntax engine with full local file control.\n\niPad & Tablets\n\n◐ PROFILER ACTIVE\n\nVoice DNA extraction works cleanly. However, the 3-column Writing Desk is an editorial cockpit engineered for a physical keyboard and a widescreen display.\n\nSmartphones\n\n○ DESKTOP INSTRUMENT\n\nGlass is designed for scrolling, while physical keys are for thinking. Thumbs cannot write high-authority prose. Grab your license on mobile today, then open the file on your workstation.\n\nFor agencies & ghostwriters.\n\nThe $3,000 retainer is won in the first screen share.\n\nWhen you charge $2,000 to $3,000 a month per client, you cannot deliver copy that sounds like a default AI prompt. The Agency Edition prints a 1-page A4 Client Voice DNA Dossier (#grai-print-certificate) with 8 concrete audit fields: (1) Voice profile name, (2) Samples analysed count, (3) Target sentence length, and (4) Selected platforms. It also prints (5) Rules passed (X of 6), (6) Cadence score (score/100 with formatted CV), and (7) Generation date (YYYY-MM-DD). Field (8) is a locally computed SHA-256 checksum over the profile and audit JSON payload (a deterministic content fingerprint, not a third-party identity signature).\n\nCLIENT VOICE DNA DOSSIER // SPECIMENA4 PRINTABLE · SHA-256 CHECKSUM\n\nShow the dossier on screen during the pitch. The client immediately sees their voice measured. That is the moment the retainer stops being a cost and becomes an enduring asset they can trust.\n\nThe internal QA filter\n\nEvery junior draft runs through the same profile before it reaches the client. The dossier is the strict protocol. Flagged spans and flat rhythm show up in the HUD before the draft leaves your desk.\n\nFor engineering teams & AI coding agents\n\nClean codebases, invariant documentation & team style gates.\n\nWhen coding agents write markdown, every README, changelog, architecture decision record, and pull request note arrives with identical AI tells: flat cadence, swollen vocabularies, and monotonous bullet cascades. The free grai-gate plugin catches slop in your terminal. The Pro Cockpit gives your team the calibration workbench.\n\n1. Terminal Linter (grai-gate)\n\nA pure Python PostToolUse hook for Google Antigravity and git pre-commit pipelines. Computes sentence-length burstiness (CV) and flags the 6 structural tells in 15 milliseconds. Free, MIT-licensed, zero network calls.\n\n2. Team Style Invariants\n\nMove beyond generic linters. Calibrate your engineering brand with explicit rhythm floors, custom banned dictionaries, and domain terminology profiles. Stop AI documentation from reading like a bland corporate press release.\n\n3. Portable .grai Profiles\n\nExport measured profiles as air-gapped .grai JSON configurations. Drop them into team repositories, distribute them across senior engineers, and enforce identical documentation standards across every developer workspace.\n\nDeveloper Tooling Integration · CI/CD & Git Hooks\n\nRun grai-gate in your local terminal during active pairing or invoke python3 gate.py docs/ in your CI pipeline. When a file fails cadence, the hook outputs an exact, reproducible repair prompt tailored for your coding agent to rewrite the text cleanly.\n\nSolo Engineer · Founder Edition ($69)\n\nFor independent developers and technical founders. Full Voice DNA calibration workbench, instant repair prompt generator, Scalpel/Broadsheet/Ledger drafts, and lifetime updates. One-time payment, zero subscriptions.\n\nFor multi-repo engineering teams and technical consultancies. Manage up to 25 project voice profiles, export team sync files, generate printable SHA-256 documentation certificates, and enforce invariants across developers.\n\nLooking for the free terminal linter? Inspect the open-source engine on GitHub (adrianpeticila/grai) → or install via agy plugin install grai-gate.\n\nEditions\n\nTwo editions, one payment each.\n\n1 client retainer saved with the SHA-256 A4 Dossier = $1,500 to $3,000/mo protected (5 retainers = $7,500/mo at risk). With grai Agency Edition: $149 once ($29.80 for 5 clients, down to $5.96 per client across 25 profiles).\n\nFounder Edition\n\n$69\n\none-time payment · lifetime access · one person\n\n$0.19 / day over Year 1 · replaces $39 to $65/mo cloud tools.\n\nBuilt for founders and independent builders who want an unmistakable personal brand that commands attention and attracts clients.\n\ngrai, the local-first HTML5 writing workbench\n\nVoice DNA profiler (extract your personal cadence)\n\nThe Writing Desk (Scalpel, Broadsheet & Ledger drafts)\n\nCadence Gate: six structural checks and a rhythm floor\n\n1-Click Local Backup & Device Migration (.grai file)\n\nUnmistakably you, hard to sustain. You write three strong posts, get buried by company operations, and go silent when client work spikes.\n\n2. Agency Ghostwriter\n\n$18,000 to $48,000 / yr ($1.5k to $4k / mo)\n\nDone-for-you service\n\nHuman service (interviews, research, full drafting). Agencies vary in how they use AI: ask who drafts the posts, what editing is included, and how data is handled.\n\n3. Cloud AI Copywriting SaaS\n\n$468 to $1,188 / yr ($39 to $99 / mo)\n\nHosted cloud app\n\nRecurring monthly subscription for cloud templates and hosted workflows.\n\n4. Raw ChatGPT or Claude\n\n$240 / yr ($20 / mo)\n\nPrompt + manual rewrite\n\nGeneral-purpose chat models. Prompt instructions alone lack a deterministic burstiness check, so writers review and polish the cadence by hand.\n\n5. Your AI + grai\n\n$69 once +$240/yr existing AI ($309 Yr 1) or $0 API with Ollama\n\nSelf-operated local gate\n\nYour existing AI speed locked to your spine. grai scores your sentence variance (CV ≥ 0.32), highlights structural tells, and offers targeted span repair.\n\nWrite a newsletter or advise founders? Earn 40% instant commission on every referral ($27.60 per Founder sale, $59.60 per Agency sale). Two Agency referrals pay $119.20 and cover your own workbench.\n\nThe 30-Day Distinction Guarantee. If grai does not make your writing visibly sharper and faster to produce within 30 days, email [email protected] with your order number. 100% refund, no forms, no questions.\n\nDay 0Instant 410 KB ZIP download (grai.html + MIT skill).\n\nDays 1 to 30Profile your Voice DNA and audit unlimited drafts locally.\n\nDay 30Not visibly sharper? Email [email protected] with your order number for a 100% refund.\n\nSecure checkout via Payhip & Stripe. Automated VAT and instant ZIP delivery. One payment, no subscription.\n\nQuestions\n\nNine questions people actually ask.\n\nWhy pay $69 when I already have ChatGPT Plus or Claude Pro?\n\nYour subscription writes in a generic voice. grai does not replace it. It sits on top: it measures your cadence, then audits every draft against 6 structural rules and a CV ≥ 0.32 burstiness floor. You keep the model you already pay for and stop paying with your authority.\n\nHow does it write if the local app has no grai backend?\n\nTwo paths. The shipped grai.html file blocks direct API connections by default (connect-src 'none') and runs in Copy-Paste mode. It builds a compact prompt under 1,800 characters that you copy into your existing Claude or ChatGPT tab (or Gemini), then paste back into grai for local verification. If you want direct browser-to-API calls (BYOK) or local Ollama models, edit the connect-src directive in source/src/app.html and rebuild grai.html with python3 scripts/build.py (included in the kit).\n\nDo I need technical skills or coding?\n\nNo. In the default Copy-Paste mode, you open grai.html in your browser and paste your posts. You extract your Voice DNA and write. If you can use a browser and a text field, you can use grai.\n\nWhat devices and systems does it run on?\n\nRuns natively on macOS and Windows as well as Linux in any modern browser. No installer or admin permissions needed. Tablets load the application and run the profiler, while the full three-column Writing Desk is optimized specifically for laptop or desktop displays. Phones are for reading, never for serious writing.\n\nWhere do my texts go, and can they be used to train AI models?\n\nThe local grai.html app has no grai application backend and zero telemetry. Voice profiles and writing samples (along with drafts) are stored in your browser's localStorage when available. If your browser settings or private-browsing mode block localStorage on local file:// pages, grai falls back to in-memory session storage (memStorage), which lasts until the tab closes. Use the 1-click .grai backup export to save your profiles permanently to disk. Data leaves your machine in three cases: (1) when you paste and submit a prompt into Claude or ChatGPT (or Gemini) in Copy-Paste mode, or (2) when a custom BYOK build calls your selected API provider. It also leaves (3) when you voluntarily export and share a .grai file or PDF Dossier (such as over Slack or email, which sends the exported profile to that external communication service), or if your own browser syncs local data across devices.\n\nHow is it different from Custom Instructions in ChatGPT or Claude?\n\nCustom Instructions are a paragraph of preferences the model may ignore. grai measures your actual sentence lengths, openings and rhythm, stores that as a profile, and runs a deterministic 6-rule audit and CV ≥ 0.32 burstiness check over every draft in your browser. It highlights matching spans and offers targeted span repair while you keep final control over editing and copying.\n\nWhat happens if my style changes in time?\n\nRe-run the profiler on recent posts. Compare the new metrics against your archived baseline with one click. Voice evolves, so grai adapts with your thinking instead of freezing past habits.\n\nCan I make a backup if I change laptops or clear browser data?\n\nYes. Click Backup Profiles to export all voice settings into a single local file. Restore Backup loads the file onto any new machine instantly. No cloud login required. When sharing with colleagues, remember that Restore replaces existing profiles on that device. Export your working set first.\n\nHow does the 30-day guarantee work?\n\nBuy it, use it for 30 days. If your writing is not visibly sharper and faster to produce, email [email protected] with your order number. Full refund, no forms, no questions.\n\nYour unfair advantage\n\nBuild a personal brand voice nobody can imitate.\n\nTake last week's post. grai returns a quantitative score and reveals the hidden structural patterns flattening your reach. You already suspected something was off. Focused local calibration removes the robotic tells before you publish.\n\nPublish again in your real cadence. Not polite. Distinct.", "url": "https://wpnews.pro/news/show-hn-grai-a-single-file-offline-writing-desk-that-measures-your-voice-dna", "canonical_source": "https://grai.page/", "published_at": "2026-11-03 21:09:01+00:00", "updated_at": "2026-11-03 21:20:22.201682+00:00", "lang": "en", "topics": ["ai-tools", "generative-ai", "large-language-models", "ai-products"], "entities": ["Grai", "Claude", "ChatGPT", "Gemini", "DeepSeek", "Ollama", "LigoSocial", "LinkedIn"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/show-hn-grai-a-single-file-offline-writing-desk-that-measures-your-voice-dna", "markdown": "https://wpnews.pro/news/show-hn-grai-a-single-file-offline-writing-desk-that-measures-your-voice-dna.md", "text": "https://wpnews.pro/news/show-hn-grai-a-single-file-offline-writing-desk-that-measures-your-voice-dna.txt", "jsonld": "https://wpnews.pro/news/show-hn-grai-a-single-file-offline-writing-desk-that-measures-your-voice-dna.jsonld"}}