Launch guideDeveloper tools
How to launch a CLI tool
CLI tools live or die on the install line. If someone can copy one command and run your tool, they'll try it. So the launch work is packaging: a Homebrew tap on day one (homebrew-core has notability rules), winget for Windows, and whichever language registry your users already use. Then a terminal recording that shows the tool doing something useful in seconds.
Updated · platform facts checked against the official docs linked below
At a glance
Where people find CLI tools
- Hacker News (Show HN): Terminal tools are a natural fit if the install is one line.
- Homebrew: Mac and Linux developers expect
brew install. - GitHub: Topics like
cliand your language get the repo onto browse pages. - Awesome lists for your language or shell: Curated lists developers search when they need a tool.
- Language communities: A Rust CLI launches in Rust communities; a Go CLI in Go ones.
Assets to prepare
| Asset | Spec or guidance |
|---|---|
| Install commands | One line per platform: brew, winget, npm/pip/cargo, plus a binary download. |
| Terminal recording | A short GIF or asciinema cast showing a real task. |
| `--help` output | Clear, grouped and copyable; people read it before your docs. |
| Homebrew tap | A homebrew-<name> repo with your formula until you meet core's notability bar.[1] |
| winget manifest | YAML per the Windows Package Manager schema.[2] |
| Release binaries | Signed where possible, with checksums, on GitHub Releases. |
Store and listing rules
What the platform itself says, with a link to the page we checked.
- homebrew-core accepts new packages with at least 30 forks, 30 watchers or 75 stars (90/90/225 if you submit your own), from a repo at least 30 days old. Below that, use a third-party tap.[1]
- winget submissions are YAML manifests submitted to the public winget-pkgs repository and must follow its policies.[2]
- Show HN titles start with "Show HN" and the thing must be ready to try.[3]
A 4-week launch timeline
Week 1 · four weeks out
- Polish
--help, errors and exit codes. - Set up release builds for macOS, Linux and Windows.
- Create your Homebrew tap.
- Polish
Week 2 · three weeks out
- Record the terminal demo.
- Write the README: what, GIF, install lines, examples.
- Write the winget manifest.
Week 3 · two weeks out
- Beta with ten developers; watch them install on different machines.
- Fix install failures first.
- Draft Show HN.
Week 4 · launch week
- Tag v1.0 with release notes.
- Submit the winget pull request.
- Write docs pages for the top three tasks.
Launch-day checklist
- Post Show HN with install lines in the first comment.
- Post in your language's community.
- Answer install issues immediately; they're the most common launch-day blocker.
- Add the project to LaunchRanked with a link to docs.
After launch: SEO steps
Launch boards reset; search pages don't. These steps keep people finding you after launch week.
- Write pages for "how to {task} from the command line" searches.
- Document each command on its own page with examples.
- Link docs, repo and package pages to each other.
- Once you meet the bar, submit to homebrew-core for the shorter install command.
Common mistakes
- Only supporting
curl | shinstalls. - Submitting to homebrew-core before meeting the notability bar.
- A README with no example output.
Templates for this launch
- Show HN postA Show HN template that follows Hacker News rules: a plain title, a link people can try, and a first comment on why you built it and how it works.
- Release notesRelease notes for a notable launch or version: what's new, why it matters, how to use it, upgrade steps and known issues, with a filled example.
- Changelog entryA changelog entry template grouped by Added, Changed, Fixed and Removed, written for users rather than commit logs, with a filled example.
FAQ
Can I get my CLI into Homebrew on launch day?
Into your own tap, yes. homebrew-core requires notability (for example 75 stars, or 225 if you submit your own project) and a repo at least 30 days old.
How do I distribute a CLI on Windows?
Publish release binaries and submit a winget manifest to the community repository; many developers also use language package managers.
What should a CLI launch post show?
A one-line install and a short terminal recording of a real task. That's what gets people to try it.
Where do CLI tools get discovered?
Show HN, GitHub topics, awesome lists and the language community. Search brings people later through docs pages.
Sources
- Homebrew: Package acceptance policy
- Microsoft Learn: Submit packages to Windows Package Manager
- Hacker News: Show HN guidelines
Checked . Platforms change their rules; open the source before you rely on a number.
Related launch guides
- How to launch an open-source projectLaunch an open-source project: README and repo setup, GitHub topics and social preview, Show HN rules, awesome lists, and docs that rank on Google.
- How to launch an npm packageLaunch an npm package: package.json fields, provenance and trusted publishing, a README that sells, and where JavaScript developers look.
- How to launch a Python libraryLaunch a Python library on PyPI: pyproject metadata, README rendering, classifiers, trusted publishing, docs that rank, and where Python developers look.
- How to launch a Windows appWindows app launch guide: free Microsoft Store developer accounts, MSI/EXE certification, screenshot sizes, winget, code signing and web SEO.