Skip to content

gvkhosla/open-cli

Repository files navigation

Open CLI

opencli.co is a curated directory of command-line tools.

It is built around a simple idea:

  • find a useful CLI
  • copy the install command
  • run the first real command
  • understand who built it
  • see exact source-labeled metrics when available

Stack

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Vercel

Local development

npm install
npm run dev

Core content files

  • Makers: src/content/makers.json
  • CLI directory: src/content/clis.json
  • Exact metrics cache: src/content/cli-metrics.json
  • Radar candidates: src/content/radar-candidates.json

Data philosophy

Open CLI keeps two kinds of data separate:

1. Editorial data

Curated by hand:

  • name
  • maker
  • category
  • install command
  • docs links
  • aliases
  • tags
  • use cases
  • agent-readiness notes
  • explicit package source fields like npmPackage, brewFormula, brewCask, crateName, pypiPackage, and dockerImage

2. Exact metrics

Fetched by script and stored in git:

  • GitHub stars
  • latest release activity
  • license
  • npm weekly downloads
  • Homebrew installs (30d)
  • crates recent downloads

If Open CLI cannot fetch an exact install metric for a tool, it does not invent one.

Validate content

npm run validate:data

This checks the curated JSON for duplicate slugs, missing required fields, invalid maker references, bad URLs, malformed GitHub repo names, invalid metric records, and malformed radar candidates.

Refresh metrics

npm run sync:metrics

This updates src/content/cli-metrics.json using:

  • GitHub API
  • npm downloads API
  • Homebrew formula and cask APIs
  • crates.io API
  • pypistats API
  • Docker Hub API

The sync script prefers explicit package source fields when they are present, and falls back to install-command inference, PyPI download stats, Docker pulls, and latest GitHub release downloads when needed.

The script prefers GITHUB_TOKEN, and falls back to gh auth token if available.

Discover more CLIs

npm run discover:maker -- steipete
npm run discover:github

These commands print or generate candidate repos and packages so you can review them before adding them to the directory.

Submit a CLI

Use the public submit flow:

That keeps the project easy to contribute to without adding a heavy backend.

Links

About

A curated directory of command-line tools with install commands, quick starts, and a leaderboard.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors