Lens: the launch-day playbook for an open-source developer tool, reverse-engineered from
real launches. Every claim is cited to a primary URL (HN item, tweet, repo, blog). Numbers pulled
2026-07-08: HN metrics via the Algolia API (hn.algolia.com/api/v1/*), star counts via the GitHub
API. Anything I could not verify to a source is marked [UNVERIFIED].
Target for this playbook: Claude Mission Control — a native macOS command center that watches a Claude Code agent fleet (SEE / AUDIT / LAUNCH). Its two closest real-world analogs both launched in the last ~12 months and are studied below: CodexBar (steipete, macOS menu-bar Claude/Codex usage, 17.1k stars) and sniffly (Chip Huyen, Claude Code analytics dashboard, 1.2k stars). The 14x gap between two same-category tools is the single most instructive data point in this doc.
TL;DR — the five launch tactics that actually move stars
- Ship a submittable artifact, not a repo link. The biggest HN spikes were plain-story
submissions of a thing worth reading/watching: ripgrep's benchmark blog post (740 pts), bun's
demo-video +
bun.sh/?launchlanding page (1431 pts), difftastic's "understands syntax" framing (983 pts). A bare GitHub URL underperforms a page that makes the value undeniable in 5 seconds. - The author must work the comment thread — hard. In the launches that spiked, the creator was the single most prolific commenter: ripgrep's Andrew Gallant wrote 41 of 209 comments, difftastic's Wilfred Hughes 17, vibe-kanban's cofounder 18, aider's Paul Gauthier showed up even though a stranger submitted it. Answering every question for 8 hours is the tactic.
- Comparative / benchmark / "I built X because Y" framing. "ripgrep is faster than {grep, ag, git grep, ucg, pt, sift}", "Get 10X more out of Claude Code" (vibe-kanban), "a diff that understands syntax". A specific, provable, comparative claim in the title does the work.
- You don't have to post it yourself — but you must make it postable. ~8 of the 10 biggest launches here were submitted by a third party, not the author (ccusage, aider, ripgrep, bun, difftastic, atuin, lazygit, claudia). You engineer that by (a) making the artifact irresistible and (b) seeding it to a network that will post it. The controllable alternative is a Show HN you post weekday morning US-Eastern and then babysit.
- Chain the channels — don't spend them at once. The compounding pattern is demo on X → HN front page → newsletters (TLDR/Console/Changelog) → Reddit long-tail, each feeding the next. ccusage and CodexBar are X-native (author has an audience); ripgrep/bun/difftastic are HN-native (artifact carries it). Pick your first channel by where your distribution already is.
The evidence table (real launches, roughly by HN launch score)
| Tool | What it is | Launch artifact / event | HN launch (pts · comments · date, UTC) | Author worked thread? | Stars (2026-07-08) |
|---|---|---|---|---|---|
| bun | JS runtime in Zig | bun.sh/?launch landing page + founder tweet, same evening (no video) |
1431 · 312 · Tue 2022-07-05 | flat thread (creator light here) | 93,636 |
| difftastic | syntax-aware diff | "a diff that understands syntax" | 983 · 219 · Tue 2022-03-29 | @Wilfred 17 comments (top) | 25,610 |
| ripgrep | fast grep (Rust) | benchmark blog post | 740 · 209 · Fri 2016-09-23 13:33 | @burntsushi 41 comments (top) | 65,893 |
| atuin | shell history in SQLite | "replaces your shell history with a SQLite database" | 551 · 194 · Sat 2023-05-06 08:50 | creator @ellieh + @conradludgate 17 | 30,472 |
| claudia | Claude Code GUI | claudiacode.com landing |
501 · 226 · Sun 2025-08-17 | light | 22,156 |
| aider | AI pair-programming CLI | plain repo link (3rd-party submit) | 432 · 156 · Wed 2024-04-10 | creator @anotherpaulg showed up (5) | 47,165 |
| zellij | terminal multiplexer | zellij.dev/news/beta |
414 · 238 · Thu 2021-04-22 13:22 | submitter/contributor @ibraheemdev 5 | 34,152 |
| lazygit | git TUI | plain repo link (3rd-party submit) | 395 · 141 · Tue 2021-11-30 | creator @jesseduffield 3 | 80,148 |
| presenterm | terminal slideshows | plain repo link | 306 · 45 · Sat 2025-03-08 | submitter @pea-tear 6 | 8,586 |
| fzf | fuzzy finder | (grew via ecosystem, not one spike) | 279 · 92 · Sat 2022-03-19 | — | 81,547 |
| zx | JS for shell scripts (Google) | 3rd-party submit "JavaScript for Shell Scripting" | 385 · 181 · Fri 2021-05-07 05:28 | creator absent | 45,587 |
| ollama | run LLMs locally | Show HN: Ollama – Run LLMs on your Mac | 284 · 94 · Thu 2023-07-20 16:06 | creator @jmorgan ~12–15 | 175,685 |
| vibe-kanban | manage AI coding agents | Show HN + "Get 10X more out of Claude Code" | 195 · 132 · Fri 2025-07-11 15:08 | cofounder @louiskw 18 (top) | 27,302 |
| claude-code-router | route Claude Code to any LLM | plain repo link | 160 · 59 · Mon 2025-07-28 00:19 | no | 35,668 |
| container-use | sandboxes for agents | Show HN (Dagger) | 82 · 17 · Thu 2025-06-05 | founder @shykes 3 | 3,907 |
| ccusage | Claude Code usage CLI | X-native; HN was a weak 3rd-party repost | 75 · 29 · Fri 2025-07-18 23:22 | no (influencer @ghuntley top) | 16,963 |
| CodexBar | macOS menu-bar CC/Codex usage | X-native (steipete audience) | (no HN spike) | — | 17,086 |
| sniffly | Claude Code analytics dashboard | plain repo link | 41 · 19 · Sun 2025-08-31 | — | 1,244 |
Sources — HN items are [news.ycombinator.com/item?id=](https://news.ycombinator.com/item?id=)<ID>:
bun 31993429 ·
difftastic 30841244 ·
ripgrep 12564442 ·
atuin 35839470 ·
claudia 44933255 ·
aider 39995725 ·
zellij 26902430 ·
lazygit 29394162 ·
presenterm 43303752 ·
fzf 30736518 ·
vibe-kanban 44533004 ·
claude-code-router 44705958 ·
container-use 44193933 ·
ccusage 44610925 ·
sniffly 45081711.
Star counts: GitHub API repos/{owner}/{repo} on 2026-07-08.
Channel 1 — Hacker News (the highest-leverage channel for dev tools)
HN is where a developer tool can go from ~0 to its first few thousand stars in 24 hours. Two distinct launch modes exist, and conflating them is the most common mistake.
Mode A — the organic third-party submission (highest ceiling)
The single largest spikes here were not self-posts. A stranger found the project and submitted it as a plain story (no "Show HN" prefix). Evidence: the submitter handle ≠ the author handle in nearly every top launch — ccusage submitted by @kristianp, aider by @tosh, ripgrep by @anp, bun by @firloop, difftastic by @tempodox, atuin by @thunderbong, lazygit by @tnorthcutt, claudia by @zerealshadowban. (Verified: the author appears separately in the comments — e.g. aider's @anotherpaulg, ripgrep's @burntsushi.)
Why it wins: a plain story is judged as content and rides the same front-page algorithm as any article, whereas "Show HN" is a smaller, self-selected feed. Plain submissions in this sample scored 279–1431 pts; Show HN posts scored 82–195 pts. You cannot fully control who submits — but you engineer it by making the artifact irresistible (see Tactic 1) and seeding it to people who post to HN.
Mode B — the Show HN self-post (controllable, lower ceiling, needs comment work)
Per the official Show HN rules (news.ycombinator.com/showhn.html):
"Show HN is for something you've made that other people can play with." … "Off topic: blog posts, sign-up pages, newsletters, lists, and other reading material." … "Please make it easy for users to try your thing out, ideally without barriers such as signups or emails." … "If your work isn't ready for users to try out, please don't do a Show HN." … Title must begin with "Show HN". … "New features and upgrades ('Foo 1.3.1 is out') generally aren't substantive enough to be Show HNs."
Implication for a macOS app: a blog post or landing page is off-topic for Show HN — but a downloadable
app / brew install / npx with no signup is exactly on-topic. vibe-kanban (195 pts) and container-use
(82 pts) are the model. The Show HN ceiling is lower, but you own the timing and the framing.
Title patterns that hit the front page
- Comparative / benchmark: "ripgrep is faster than {grep, ag, git grep, ucg, pt, sift}" (Andrew Gallant, 2016-09-23, burntsushi.net/ripgrep) — the post is structured as 25 benchmarks; the title is a falsifiable superiority claim.
- One-line "replaces/understands" value prop: "Atuin replaces your existing shell history with a SQLite database"; "Difftastic: a diff that understands syntax". The reader knows exactly what it does and why it's novel from the title alone.
- Outcome / multiplier framing: vibe-kanban's repo tagline "Get 10X more out of Claude Code, Codex or any coding agent" (BloopAI/vibe-kanban).
- Plain "Name – what it is": "Ripgrep – A new command line search tool", "Zellij – A Terminal Workspace and Multiplexer", "Lazygit: A simple terminal UI for git commands". Boring but legible; works when the linked artifact carries the weight.
- Avoid: version-bump titles ("Foo 1.3 is out") — explicitly discouraged and low-scoring.
Timing (computed from the real launch posts, UTC)
| Post | Weekday · time (UTC) | US-Eastern equiv | pts |
|---|---|---|---|
| difftastic | Tue 11:38 | 07:38 | 983 |
| ripgrep | Fri 13:33 | 09:33 | 740 |
| zellij | Thu 13:22 | 09:22 | 414 |
| vibe-kanban (Show HN) | Fri 15:08 | 11:08 | 195 |
| lazygit | Tue 16:49 | 12:49 | 395 |
| claudia | Sun 17:26 | 13:26 | 501 |
| container-use (Show HN) | Thu 17:44 | 13:44 | 82 |
| bun | Tue 20:41 | 16:41 | 1431 |
| aider | Wed 21:06 | 17:06 | 432 |
| atuin | Sat 08:50 | 04:50 | 551 |
Read: the controllable self-launches you'd emulate (ripgrep, zellij, vibe-kanban, lazygit, difftastic) cluster at weekday ~11:00–17:00 UTC (07:00–13:00 US-Eastern) — i.e. post as the US East Coast wakes up and before the West Coast lunch, Mon–Thu. Off-hour hits (bun 20:41, aider 21:06, atuin Sat) were organic third-party posts where the submitter chose the time — you don't control those. For a Show HN you control, target Tue–Thu ~14:00–16:00 UTC and be at your keyboard for the next 8 hours.
The killer tactic — the author works the comments
Quantified from the full comment trees (comments authored by the creator, of total):
- ripgrep — Andrew Gallant (@burntsushi): 41 of 209 — the top commenter by 4x. He answered methodology challenges, benchmark disputes, and feature requests in real time. (item 12564442)
- difftastic — Wilfred Hughes (@Wilfred): 17 of 219, top commenter. (item 30841244)
- vibe-kanban — cofounder @louiskw: 18 of 132, top commenter (a Show HN). (item 44533004)
- atuin — creator @ellieh (6) + core @conradludgate (17) both in the top 5. (item 35839470)
- aider — creator @anotherpaulg: 5 — showed up in a thread a stranger submitted. (item 39995725)
- container-use — Dagger founder @shykes: 3 of 17. (item 44193933)
The tools where the author was absent from the thread (claude-code-router, ccusage-on-HN, sniffly) got weaker HN outcomes. Correlation, not proof — but the pattern is consistent and the mechanism is obvious: early substantive author replies keep a thread alive, and thread activity is a front-page ranking input.
Self-post vs. others posting — the honest guidance
- If you have no audience: do a Show HN, weekday morning ET, and work the comments for 8h. This is the reliable, controllable path (vibe-kanban, container-use).
- If you have any audience (X following, newsletter, prior HN karma): make the artifact so good that someone else posts it as a plain story — then show up in the comments as the author. If nobody posts it within a day of your X launch, submit it yourself as a plain story (allowed) or as a Show HN.
- Don't submit your own project as a plain non-"Show HN" story and pretend to be a bystander — HN culture and mods dislike it; the safe self-post is Show HN.
Channel 2 — X / Twitter launch thread anatomy
X is the channel you control and the one that works even with zero HN luck — if you have (or can borrow) an audience. The honest finding from real data: a founder's own launch tweet is usually weak; third-party amplification and "someone else found it" tweets do the heavy lifting.
The "demo-video-first" rule is real but oversold. bun's canonical launch tweet —
"Introducing Bun — an incredibly fast all-in-one JavaScript runtime"
(x.com/jarredsumner/status/1544460933753229312,
2022-07-05, 7,189 likes / 1,516 RT) — carried no video, just text + a link card to bun.sh. The
community-made video (swyx's 2-hour live-test stream) came days later. Meanwhile a typical founder
launch tweet with an embedded demo video landed at 13 likes / 2 RT
(x.com/4xdotrip/status/2074047919909703848). So: a
GIF/video raises the ceiling but does not rescue a tweet with no distribution behind it.
What actually pulls numbers on X (real examples):
- A curated "study these N repos" listicle thread is a top discovery vector — "If I had to learn Claude Code in 7 days, I would not watch a single tutorial. I would study these 10 GitHub repos" (949 likes / 78,263 views), which slots ccusage at #7 with a one-line pitch (x.com/i/status/2046476497800823280). Getting listed by an aggregator beats most self-announcements.
- Third-party "SOMEONE JUST BUILT X" hype — "SOMEONE JUST BUILT a Claude Code skill called /brag…" (2,269 likes / 229,696 views, x.com/i/status/2069039170451091878). Caveat: that account sells paid promotion — treat as seeded, not organic. Still: the "found it" frame from a non-author out-performs "I built it" from the author.
- User flex / social-proof tweets become the growth loop — ccusage spreads through users quote-tweeting their own cost screenshots: "npx ccusage — 15 billion tokens, $11k usd in actual token usage in last 5 months 🤯" (x.com/i/status/2074330289585950830). The tool's output is the ad. Design a shareable artifact (a screenshot people want to post) into the product.
- Before/after + "no cloud / no subscription" framing performs — "Local AI was never this EASY… No cloud required, No subscription required" (1,374 likes / 66,934 views, x.com/i/status/2074287304810885294). For a local-first, privacy-preserving tool, lead with the "nothing leaves your machine" line.
Thread shape that works: tweet 1 = one-sentence value prop + a 10–30s screen-capture GIF/video of the
tool doing the thing; reply 1 = the GitHub/brew/npx link (links in the first tweet suppress reach on X);
replies 2–n = the "how it works / why I built it" mini-thread; then quote-tweet your own launch a few
hours later with an early social-proof screenshot. Tag/seed people who curate dev tools rather than
begging big accounts to RT. If you have no audience, your realistic X outcome is the 13-like tweet — so
engineer the third-party post (ship to a few people who will say "look what I found").
Channel 3 — Reddit (2026: the megathread era — read the room or get auto-removed)
The biggest change vs. the older playbooks: standalone "I built X" posts are now auto-removed in most dev subreddits and funneled into mandatory weekly/monthly megathreads. Posting blind will get you silently removed.
- r/macapps — the most relevant sub for a macOS app. Non-"Trust/Transparency"-status accounts must use the monthly "Megathread: The App Pile" in PCP format (Problem / Comparison / Pricing) (reddit.com/r/macapps/comments/1uknpm8). Mod warning, quoted: "There is a 90% chance Reddit will auto-remove your post here if you have not verified your email … and your first comment contains a link… The odds of removal is also higher for AI-assisted posts (em dashes and other AI formatting characteristics likely trigger this)." A third-party discovery post beats a creator's own — "FOSS Fully native macOS YouTube/YouTube Music Client…" (about Kaset) hit 133 upvotes (reddit.com/r/macapps/comments/1uq25d9).
- r/selfhosted — standalone launches used to spike ("Ninite for Linux" hit 1,248 upvotes, reddit.com/r/selfhosted/comments/1pwvxs8) but a 2026 rules overhaul now forces a weekly New Project Megathread (template requires an "AI Involvement: (Please be transparent)" line) — reddit.com/r/selfhosted/comments/1sey9ch.
- r/commandline — real but low ceiling for a single launch (typical 3–15 upvotes); aggregator threads out-perform launches — "Share your favorite CLI tools… fzf, zoxide, lazygit…" hit 104 upvotes (reddit.com/r/commandline/comments/1o86trb).
- r/programming — not a tool-launch venue, and directly hostile to AI-adjacent tools: its rules mark "Content about AI and LLMs … off-topic with the sole exclusion of deeply technical content about implementation" (r/programming AI policy). A Mission-Control post survives there only framed as a technical deep-dive (e.g., "parsing Claude Code's JSONL transcript format with an incremental FSEvents index"), never as a product announcement.
- r/rust / r/golang — language subs also channel launches into weekly "small projects" threads; mature releases can still post to the main feed.
Reddit rules of engagement: verify your email; don't put a link in your first comment; strip AI-tell formatting (em-dashes) from the post; use the sub's required template; and prefer getting someone else to post the discovery. On Reddit the creator's own post is the weakest form.
Secondary channels — Product Hunt / lobste.rs / dev.to / newsletters
- Product Hunt — works for dev tools, but it's a day-long team operation, not post-and-wait. Corbado hit "#1 Developer Tool of the week" with 2x traffic and 4x signups on launch day (corbado.com/blog/launch-developer-tool-product-hunt). Operational facts: PH doesn't rank anything in the first 4 hours; supporters need 1–2 weeks of prior PH activity for their votes to count (weighted by verified/active users, not raw upvotes); expect an approval queue. Permit.io reached Product of the Day on ~$800 + a multi-channel push (permit.io/blog/producthunt-howto); playbook: awesome-product-hunt.
- lobste.rs — invite-only, new accounts restricted for their first 70 days, tag system with per-tag RSS, public moderation log, and explicit anti-self-promotion norms; a narrow "technical reading group" audience (great for credibility and deep discussion, bad for a hard sell) (why lobste.rs vs HN). Post the technical story here, not the product pitch.
- Newsletters — the highest-ROI earned secondary channel. Console.dev is purpose-built for tool discovery ("68% of readers sign up for tools featured", console.dev) and takes editorial submissions. Changelog (Changelog News / podcast) and language-specific weeklies (Golang Weekly, This Week in Rust, Swift Weekly Brief, iOS Dev Weekly, Hacker Newsletter) curate launches editorially. TLDR (275k subs) and Pointer.io surfaced as paid-sponsorship only in this pass ($3,500 / ~$12 CPM, tldr.tech/sponsor) — no confirmed free editorial path. dev.to / Hashnode launch-post conventions and several newsletter free-submission mechanics: [UNVERIFIED] — not confirmed in this pass.
The compounding sequence — which channel first, and how they chain
The launches that spiked did not fire every channel at once; they chained them, each buying the credibility for the next. Two archetypes, chosen by where your distribution already lives:
Archetype 1 — HN-native (no audience, but a killer artifact): ripgrep / difftastic / bun.
build a genuinely-better tool → make the artifact undeniable (benchmark blog post, or a polished
landing page like bun.sh/?launch) → it hits HN front page (self-post as Show HN if it's runnable, or let
a stranger submit the blog as a plain story) → author works the comment thread for 8h → newsletters
(Console/Changelog/language-weeklies) pick up the HN winner within days → Reddit/X carry the long tail.
bun ran HN + a founder tweet ~2.5 hours apart the same evening and let them cross-feed.
Archetype 2 — X-native (you or a friend has an audience): ccusage / CodexBar.
tease/demo on X → the tool's own output becomes the ad (users post cost-screenshots) → get listed in a "study these repos" thread → HN is optional and often a weak echo (ccusage's HN was a 75-pt third-party
repost while the repo sailed past 16k stars on X + word-of-mouth). Here the flywheel is shareable output +
influencer listicles, not a front-page spike.
The universal spine: (1) one irresistible artifact, (2) launched into your strongest channel first, (3) with the author visibly present, (4) then syndicated to newsletters, (5) with Reddit/PH as deliberate, rules-aware follow-ups — never the opening move.
Deep dives — real launches, with the transferable lesson
The headline contrast: CodexBar (17.1k) vs sniffly (1.2k) — same category, 14x gap
Both are Claude-Code usage tools shipped in mid/late-2025. CodexBar (Peter Steinberger / @steipete) is a macOS menu-bar app: "Show usage stats for OpenAI Codex and Claude Code, without having to login" (github.com/steipete/CodexBar). It has no Show HN and no HN spike at all — it grew 0→17k stars in ~8 months purely on the founder's X audience + a relentless ship-in-public cadence (single feature tweets pulling 800–3,840 likes and 765k–2.7M views, e.g. 2.7M-view tweet), plus 56 community-contributed provider integrations and a README "Privacy Note" that preempts the OAuth/token-security objection users kept raising. sniffly (Chip Huyen — a famous author) is a local web dashboard you run and open in a browser; it got a 41-pt HN post and sits at 1,244 stars (chiphuyen/sniffly). Lesson for Mission Control: author fame and a good tool are not enough. The winning form was always-visible + glanceable + zero-friction (a menu-bar glance) over "a dashboard you have to launch," and the winning motion was public shipping + fast response to user pain — not a one-shot launch. Mission Control already has the CodexBar-shaped hook (menu-bar count + dock badge + the "door light"); lead with that, not the full app. (Star totals are hard facts; the causal attribution of the gap is reasoned inference from the two products' form + channel, not a claim from a single source.)
ccusage — the "resubmit until it catches, then let output be the ad" pattern
ryoppippi's Claude-Code usage CLI took three HN submissions: two flops
(44211946 4pts,
44234470 2pts) before the third landed at 75pts
(44610925, submitted by a third party, kristianp).
75 HN points does not explain 16,963 stars — a dev.to writeup calls it "the de facto standard" that
"went viral" (dev.to writeup).
The real engine was X + the tool's own output: users quote-tweet their npx ccusage cost screenshots
("15 billion tokens, $11k…") and it gets listed in "study these 10 Claude Code repos" threads.
Lesson: (1) HN reposts are allowed and normal — if a good post flops, try again days later with a better
title; (2) build a shareable screenshot into the product so the output markets the tool.
aider — benchmark-leaderboard-as-content, then a two-stage HN launch
aider's spike came 11 months after the repo appeared, in two HN hits ~2 weeks apart: first Paul Gauthier's blog "Claude 3 beats GPT-4 on Aider's code editing benchmark" (39838169, 202pts, blog aider.chat/2024/03/08), then the tool itself "Aider: AI pair programming in your terminal" (39995725, 432pts — the strongest single HN showing of the AI-tool cohort). Lesson: a rigorous benchmark/leaderboard is recurring, re-postable content that builds credibility and keeps putting the tool in front of HN without "launching" again — the same move as ripgrep's benchmark post.
vibe-kanban — the textbook founder Show HN (the model to copy for a controllable launch)
Show HN was the launch (repo + post shipped together, 4 weeks after repo creation). Cofounder Louis
Knight-Webb opened with "Hey HN! I'm Louis, one of the creators of Vibe Kanban" and a pain-first body,
verbatim: "Personally, I was feeling pretty useless working synchronously with coding agents. The 2–5
minutes that they take to complete their work often led me to distraction and doomscrolling." Posted **Fri
15:08 UTC (8am PT — prime US-morning window)**, 195pts / 132 comments (the highest comment count of the
cohort). He worked the thread hard (18 comments) and shipped a fix live — when a user flagged silent
opt-out analytics, he merged the fix in-thread: "Merged and building, thanks for bearing with us."
(44533004). Now 27,302 stars. Lesson: first-person
pain-story + prime-time slot + relentless comment work + fixing real bugs live = the repeatable Show HN.
ripgrep — the benchmark blog post + the most extreme comment-working case
Andrew Gallant's post "ripgrep is faster than {grep, ag, git grep, ucg, pt, sift}" (burntsushi.net/ripgrep, 2016-09-23) was structured as 25 benchmarks. A stranger (@anp) submitted it to HN, retitled to the bland "Ripgrep – A new command line search tool" (740pts, 12564442). Gallant then posted ~41 comments over 6 days, answering methodology disputes and opening GitHub issues from thread feedback. Now 65,893 stars. Lesson: prove a superiority claim with real benchmarks; expect to defend it personally for a week.
bun — coordinated same-evening two-channel launch, no video in the launch tweet
The HN post (bun.sh/?launch, submitted by @firloop, 20:41 UTC) fired ~2.5h before Jarred Sumner's
own tweet "Introducing Bun — an incredibly fast all-in-one JavaScript runtime" (23:19 UTC, 7,189 likes,
tweet); both the same Tuesday. HN hit 1,431pts.
The launch tweet had no video — a polished landing page did the selling; video came from the community
days later. [UNVERIFIED] a secondary source claims "20k stars in the first week." Lesson: a great landing
page + near-simultaneous HN + X can cross-feed; the artifact matters more than the tweet's media type.
ollama — a macOS-framed Show HN that under-indexed at launch but compounded to #1
"Show HN: Ollama – Run LLMs on your Mac" (36802582, Thu 2023-07-20 16:06 UTC) was a modest 284pts — yet ollama is now 175,685 stars, the largest here. Growth came from a sustained cadence of 300–650-pt product posts over three years, not the debut. Lesson: the launch is ignition; a repeatable release-post rhythm is the fuel. (Also: "Run LLMs on your Mac" — a platform-specific Show HN framing that maps directly onto a macOS tool.)
fzf & zx — the counter-examples (no launch spike required, and the reframing effect)
fzf (81.5k stars) had no launch spike — its early HN posts got 1 pt; its best-ever HN post is a third-party tutorial a decade later ("So you've installed fzf – now what?", 1,102pts, 35248098). It grew through dotfiles/tutorial culture. zx (google/zx) was submitted by a stranger as "JavaScript for Shell Scripting" (385pts, 27072515) — note the submitter's reframe beat the repo's own tagline ("a tool for writing better scripts"). Lesson: a spike is one path, not the only one; and whoever writes the HN title controls the framing — so give submitters a great one-liner to copy.
Launch plan for Claude Mission Control
Mission Control's situation: a native macOS app, AI/Claude-Code-adjacent, local-first / privacy-preserving
(reads files Claude already writes, never writes ~/.claude, nothing leaves the machine), by an author
(@ss251) with a real but not steipete-scale X presence. That profile says: run the vibe-kanban Show HN
playbook as the controllable core, wrap it in a CodexBar-style ship-in-public cadence, and engineer
shareable output like ccusage. Don't bet on a CodexBar-style audience spike you don't have.
The wedge (what to lead with)
Not "a Claude Code dashboard" (that's sniffly — 1.2k). Lead with the one glanceable job: "which of my N agents needs me right now?" — the Attention Strip + menu-bar count + dock badge (the "door light"). CodexBar proved the always-visible menu-bar glance is the form that wins. The full SEE/AUDIT/LAUNCH app is the upsell you reveal after the hook lands.
The comparative claim (your ripgrep-style title line)
Use the differentiator already in the README: *"Anthropic's Remote Control owns single-session mobile; CodexBar owns menu-bar usage; Omnara owns a cloud. None sees a fleet across machines."* The cross-machine Tailscale fleet is the falsifiable "we do the thing they don't" claim — put it front and center.
The demo asset (build these before launch day)
- A 15–30s screen-capture GIF/video (tweet-1 asset): 8 agents running across two machines → the menu-bar glyph flips to filled+count ("needs you") → the BLOCKED session's heartbeat goes still. The motion is the pitch. (Not a talking-head; the tool doing its job.)
- A shareable "audit" screenshot (the ccusage flex loop): the AUDIT view showing "cache-miss dollars" or the dead-skill prompt tax ("95 of 110 skills never fired") — a number people want to post about their own setup. This is the output-as-ad.
- Deterministic static shots for posts/README via the existing
--render-*PNG modes (identity, fleet, audit, attention) — light+dark. No display/Space flakiness.
Channel sequence (the compounding chain)
- X first (you control it). Tweet 1 = one-liner value prop + the demo GIF; link in reply 1 (
brew/ signed.dmg— no signup); replies = a short "why I built it" (running 8 agents and not knowing which was blocked on me) + the cross-machine differentiator. Quote-tweet yourself a few hours later with an early audit screenshot. Seed it to a handful of Claude-Code-community accounts as "look what I found," not "please RT" — third-party framing out-performs the author's own. - Show HN, same day or next weekday morning. Target Tue–Thu ~14:00–16:00 UTC (9–11am ET). Title:
Show HN: Mission Control – see which of your Claude Code agents needs you (macOS). Body = vibe-kanban shape: first-person pain story, one-paragraph what/why, a Privacy Note that preempts the CodexBar objection (read-only; reads only files Claude already writes; never writes~/.claude; nothing leaves the machine; cross-machine mirror is a read-only Tailscale pull). It qualifies as Show HN because it's runnable with no signup. Then be at your keyboard for 8 hours and work every comment; if someone finds a bug, fix and say so in-thread (the Louis move). - If HN flops, resubmit. ccusage took 3 tries, claude-code-router 2. Wait ~3–7 days, sharpen the title, post again. A flop is data, not a verdict.
- Syndicate the HN/X winner to newsletters (earned, free): Console.dev (editorial, tool-focused — "68% of readers sign up for featured tools"), Changelog News, and the macOS/Swift lane (iOS Dev Weekly, Swift Weekly Brief) since it's a native Swift app. Hacker Newsletter picks up HN front-page items.
- Reddit as a rules-aware follow-up (never the opener):
- r/macapps monthly "Megathread: The App Pile" in PCP format (Problem / Comparison / Pricing). Verify your email, don't put the link in your first comment, and strip em-dashes / AI-tells or you hit the "90% auto-remove" rule. Better: get a user to post the "look what I found" discovery.
- Tool-specific subs (r/ClaudeAI, r/ClaudeCode/community subs) are the natural home for "I built this to manage my Claude Code fleet."
- r/programming only as a deep-technical post, never a product pitch — e.g. "Parsing Claude Code's JSONL transcripts with an incremental FSEvents index (13k lines of Swift, 265 tests)". Anything that reads as an AI product announcement is off-topic there and will be removed.
- Recurring content = your benchmark/leaderboard (the aider/ripgrep move). Publish the audit methodology as standalone posts/threads: "I measured cache-miss waste across my Claude Code fleet — here's the $X/month the warm-cache floor was silently costing me," or "95 of 110 skills never fire: pricing the dead-prompt tax." Each is re-postable, credibility-building, and drags the tool along.
- Product Hunt: optional, later. Only if you'll run it as a full-day team op with 1–2 weeks of pre-seeded supporters (it doesn't rank the first 4 hours and weights active-user votes). Not a cold post-and-wait.
What NOT to do
- Don't launch as "another Claude Code analytics dashboard" (sniffly's grave).
- Don't rely on a single big tweet — the median founder launch tweet, even with video, lands ~13 likes.
- Don't cold-post to r/programming or a standalone r/macapps thread — you'll be auto-removed.
- Don't fire every channel at once; chain them so each buys the next one's credibility.
- Don't disappear after posting — absence from the thread correlates with the weak outcomes here.
One-line summary of the plan
Build the menu-bar "door light" wedge + a 20-second fleet demo GIF + a screenshottable audit number → launch on X (author present, seeded as discovery) → Show HN Tue–Thu 9–11am ET with a pain-first body and a privacy note, and babysit the thread for 8h → syndicate the winner to Console.dev/Changelog + the Swift newsletters → follow with rules-aware r/macapps + tool-sub posts and a recurring "cost-of-waste" benchmark series. Resubmit if it flops.
Appendix — method & caveats
- HN metrics: Algolia API (
hn.algolia.com/api/v1/search,/items/{id}), pulled 2026-07-08; points/comments are as-of-pull, not launch-day snapshots. Star counts: GitHub RESTrepos/{owner}/{repo}, 2026-07-08. - "Author worked the thread" counts were computed by walking each HN item's full comment tree and tallying comments per author (the creator is identified by their known handle, e.g. @burntsushi, @Wilfred, @louiskw, @anotherpaulg, @ellieh).
- X/Twitter engagement figures are live-fetched but the
opencli twitterbackend surfaced mostly recent (2026) tweets; original 2025 launch-week tweets for some AI tools could not be recovered and are marked [UNVERIFIED] rather than asserted absent. - Star-delta "spike magnitude" at launch is [UNVERIFIED] for every tool — no public source snapshots day-over-day stars; HN points/comments are the launch-intensity proxy used throughout.
- Causal claims (e.g. why CodexBar beat sniffly) are reasoned inference from form + channel, flagged as such; the underlying numbers are hard facts.