Skip to content

ZiYang-xie/clihub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


clihub
App Store is for humans. CliHub is for agents.
Discover, install, and manage 100+ CLI tools. Built for AI agents.

Website

PyPI License Python 3.10+ Tests


💡 The Insight

App stores were built for humans. Buttons, screenshots, star ratings — everything optimized for eyes and thumbs. That made sense when the user was a person browsing on a screen.

But the user is changing. AI agents are becoming the primary way software gets discovered, installed, and orchestrated. And agents don't browse — they query. They don't click — they pipe. They don't read screenshots — they read structured metadata.

The App Store needed a new interface. Not a GUI — a CLI. Not for humans — for agents.

That's CliHub. The App Store redesigned from the ground up for a world where the user is an LLM.

🧑 App Store 🔌 MCP 🤖 CliHub
👤 Built for Humans browsing a GUI Agents via JSON-RPC AI agents calling a CLI
🔍 Discovery Screenshots, ratings, reviews Schemas dumped into every prompt clihub list --json — on demand
📦 Install Click a button Configure server + restart clihub install jq — one command
🧠 Intelligence Store ranks and recommends Agent reads schema Agent reads catalog and decides
💸 Context cost N/A 8,000+ tokens per server 0 tokens until --help
🔗 Composability Apps are siloed One tool per call Unix pipes: curl | jq | grep
🌍 Ecosystem Walled garden Hundreds of servers Open — thousands of tools, 50 years

💡 LLMs are already trained on jq, ffmpeg, curl, and grep. They don't need a new schema — they need a way to find and install the right tool. That's all CliHub does.


⚡ Get Started

pip install clihub-ai

For humans — search, install, use:

clihub search "resize images"      # 🔍 fuzzy search across 104 tools
clihub install imagemagick          # 📦 auto-detects brew/pip/npm/cargo
clihub info jq                      # 📖 metadata, examples, and --help output
clihub list                         # 📋 browse all categories
clihub doctor                       # 🩺 check available package managers

For agents — add --json to any command:

clihub list --json                  # full catalog with descriptions + agent_hints
clihub install jq --json            # {"status": "success", "message": "Installed jq@1.7.1 via brew"}
clihub info ruff --json             # full metadata, install method, example commands

✅ Every response is valid JSON   ✅ Errors go to stderr   ✅ Exit codes: 0 success, 1 error, 2 not found


🧩 Agent Integration

The design is simple: CliHub is a dumb pipe. The agent is the brain.

An agent doesn't need a search algorithm — it is one. CliHub gives it a structured catalog. The agent reads it, picks the right tool, and installs it:

# 📥 Step 1: Read the catalog (87KB — fits in any context window)
$ clihub list --json
[
  {
    "name": "jq",
    "description": "Lightweight command-line JSON processor.",
    "categories": ["data", "json"],
    "agent_hints": {
      "when_to_use": "Parse, filter, or transform JSON data",
      "example_usage": ["jq '.users[] | select(.age > 30)' data.json"]
    },
    "install": {"method": "brew", "package": "jq"}
  },
  ... 103 more tools
]

# 📦 Step 2: Install what it needs
$ clihub install jq --json
{"status": "success", "message": "Installed jq@1.7.1 via brew"}

# 🚀 Step 3: Use it
$ jq '.users[] | .name' data.json

That's the entire integration. Two calls. Done.

🔗 Composable with anything

# Find all installed Python tools
clihub list --installed --json | jq '[.[] | select(.categories[] == "python")]'

# Get example commands for a tool
clihub info ffmpeg --json | jq '.agent_hints.example_usage'

# Check which package managers are missing
clihub doctor --json | jq '[.[] | select(.ok == false) | .check]'

📚 All Commands

Command What it Does
clihub list [--json] 📋 Browse the full tool catalog (104 tools with metadata)
clihub search <query> [--json] 🔍 Fuzzy-search tools by keyword
clihub install <tool> [--json] 📦 Install via auto-detected package manager
clihub info <tool> [--json] 📖 Show metadata, agent hints, and --help output
clihub doctor [--json] 🩺 Check system readiness and available package managers
clihub convert <tool> [--json] ⚙️ Auto-generate a manifest from an installed tool
clihub submit <file> [--json] ✅ Validate a manifest for registry submission

📦 Tool Catalog

104 tools across 17 categories — every one has agent_hints with natural-language descriptions and example commands.

Category Tools Use Case
📊 Data jq, yq, csvkit, xsv, dasel, gron, fx, jless Parse JSON, transform YAML, query CSV
🗄️ Database mycli, pgcli, litecli, iredis, usql MySQL, Postgres, Redis, SQLite clients
🔍 Search & Files ripgrep, fd, fzf, bat, eza, lsd, broot, ranger, nnn Find files, search code, browse directories
🌐 Network httpie, curl, wget, aria2, ngrok, mosh, nmap HTTP requests, downloads, tunneling, scanning
🐍 Python ruff, black, mypy, uv, pipx, poetry Lint, format, type-check, manage packages
💛 JavaScript prettier, eslint, tsx, npm-check-updates Format, lint, run TypeScript, update deps
🛠️ Dev Tools gh, lazygit, gitui, tokei, hyperfine, just, grex, shellcheck Git workflows, benchmarks, task running
🐳 Docker & Cloud lazydocker, k9s, dive, act, awscli, terraform Containers, Kubernetes, CI, infrastructure
🎬 Media ffmpeg, imagemagick, yt-dlp, svgo, gifsicle, asciinema Video, images, downloads, GIFs, recordings
📄 Documents pandoc, glow Convert Markdown/HTML/PDF, render in terminal
✂️ Text sd, choose, sad Find-and-replace, cut columns, batch edits
✏️ Editors neovim, micro, helix Terminal-based text editing
⏱️ Productivity tmux, tldr, zoxide, starship, taskwarrior, watson, nb Sessions, navigation, tasks, time tracking
🚀 Release semantic-release, release-it, commitizen, cookiecutter Versioning, changelogs, project scaffolding
🔒 Security openssl, age, mkcert TLS, encryption, local certificates
💻 System htop, btop, procs, bandwhich, pv, ncdu, dust Processes, bandwidth, disk usage, pipelines
🎉 Fun lolcat, fortune, cmatrix Rainbow text, quotes, Matrix rain

➕ Add Your Tool

Got a CLI tool? Add it to CliHub in 30 seconds:

clihub convert mytool           # ⚙️ auto-detects version, description, license, homepage
vim clihub.yaml                 # ✏️ fill in categories, tags, agent_hints
clihub submit clihub.yaml       # ✅ validates and prints PR-ready JSON

convert pulls metadata from --help, --version, and package managers (brew, pip, npm, cargo). You fill in what makes your tool discoverable to agents — categories, tags, and agent_hints.when_to_use:

name: mytool
version: "2.1.0"
description: "Do something useful from the terminal"
categories: [utilities]
install:
  method: brew
  package: mytool
agent_hints:
  when_to_use: "When you need to do something useful quickly"
  example_usage:
    - "mytool input.txt --output result.json"

Then open a PR. 🎉


🧑‍💻 Development

git clone https://github.com/ZiYang-xie/clihub.git
cd clihub
pip install -e ".[dev]"
pytest                      # unit tests
ruff check src/ tests/      # lint

🤝 Contributing

The easiest way to contribute: clihub convert <tool>, fill in the TODOs, open a PR.

📄 License

MIT © Ziyang Xie


⭐ Star History

If CliHub helps your agent get things done, give it a star — it helps others find it too.

Star History Chart


clihub.net · PyPI · Issues

About

The App Store for AI Agents — discover, install, and manage 100+ CLI tools

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages