The App Store for AI Agents — discover, install, and manage CLI tools
Project description
The App Store for AI Agents
Discover, install, and manage CLI tools. Add yours in 30 seconds.
Website · Quick Start · For AI Agents · Add Your Tool · Roadmap
Every CLI tool is a superpower your agent can wield. MCP dumps full schemas into every prompt — one server with 20 tools adds 8,000+ tokens. CLI tools load nothing until the agent runs
--help.
$ clihub search "resize images"
# Name Description Rating Category
1 imagemagick Create, edit, compose, or convert… ★ 4.7 media, image
2 ffmpeg The Swiss Army knife of multimedi… ★ 4.8 media, video
$ clihub install imagemagick
✓ Installed imagemagick@7.1.1 via brew
Try it:
$ magick input.png -resize 800x600 output.png
$ magick convert input.jpg -quality 80 output.webp
Highlights
| Feature | Description | |
|---|---|---|
| 0 | Zero ambient cost | No schemas injected into context. Tools are discovered on demand via --help. |
| 35+ | Curated tools | jq, ripgrep, ffmpeg, pandoc, httpie, and more — each with agent-ready hints. |
| 4 | Package managers | Auto-detects pip, npm, brew, or cargo. One command to install anything. |
--json |
Agent-native | Every command outputs structured JSON. Exit codes 0/1/2 for success/error/not-found. |
convert |
Add your tool | Auto-detect metadata and generate a manifest in 30 seconds. |
Quick Start
pip install clihub # or: pipx install clihub
[!NOTE] Requires Python 3.10+
clihub search "json processing" # find tools
clihub install jq # install with auto-detected package manager
clihub info ripgrep # view metadata + help text
clihub list # browse the full registry
clihub doctor # check system readiness
Commands
search — Find tools with natural language
clihub search "json processing"
clihub search "pdf" --category documents
clihub search "video" --limit 5
install — One command, auto-detected package manager
clihub install jq # → brew install jq
clihub install httpie # → pip install httpie
clihub install ripgrep --via cargo # force a specific installer
info — Full metadata + help text
clihub info jq
╭─────────────────────────────── jq ───────────────────────────────╮
│ │
│ jq v1.7.1 │
│ Lightweight command-line JSON processor. │
│ │
│ Author: Stephen Dolan │
│ Home: https://jqlang.github.io/jq/ │
│ License: MIT │
│ │
│ Install: brew install jq │
│ │
│ When to use: Parse, filter, or transform JSON data │
│ Examples: │
│ $ cat data.json | jq '.users[] | select(.age > 30)' │
│ $ jq -r '.items[].name' inventory.json │
│ │
╰──────────────────────────────────────────────────────────────────╯
list — Browse the registry
clihub list # show all categories
clihub list --category data # tools in a category
clihub list --installed # what's on your PATH
doctor — System readiness check
clihub doctor
System Check
┏━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ ┃ Check ┃ Detail ┃
┡━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ ✓ │ Python >= 3.10 │ Python 3.11.4 │
│ ✓ │ pip │ pip │
│ ✓ │ npm │ npm │
│ ✓ │ brew │ brew │
│ ✓ │ cargo │ cargo │
└──────┴────────────────┴───────────────┘
convert — Auto-generate a tool manifest
clihub convert jq # detect metadata → clihub.yaml
clihub convert rg --package ripgrep # binary differs from package name
clihub convert myapp --via pip # specify the package manager
submit — Validate and prepare for submission
clihub submit clihub.yaml # validate + print PR-ready JSON
clihub submit --validate-only # just check, don't output
For AI Agents
CliHub is built for agents to use directly. Pass --json to any command for structured output:
# Agent discovers tools (the primary workflow)
clihub list --json # full catalog with agent_hints
clihub list --category data --json # slice by category
# Agent installs what it needs
clihub install jq
# Agent learns the tool
jq --help
[!TIP] Best practice for agents: Use
clihub list --json(notsearch) as the discovery command. The agent's LLM is better at matching tasks to tools than any search algorithm.
Why CLI over MCP?
| MCP | CLI (CliHub) | |
|---|---|---|
| Context cost | 8,000–15,000 tokens per server | 0 tokens until --help |
| Discovery | Schema dumped into every prompt | On-demand via list --json |
| LLM familiarity | Needs schema learning | Trained on billions of shell examples |
| Composability | Single-tool calls | Unix pipes: curl | jq | csv |
| Error handling | Custom error formats | Exit codes + stderr |
Add Your Tool
[!IMPORTANT] Got a CLI tool? Add it to CliHub in 30 seconds.
clihub convert mytool # auto-detects name, version, description, license, install method
# → generates clihub.yaml with detected fields + TODO placeholders
# Edit clihub.yaml — fill in categories, tags, agent_hints
vim clihub.yaml
clihub submit clihub.yaml # validates and prints PR-ready JSON
# → paste into registry.json, open a PR
What convert auto-detects:
- Binary location and version (
--version,-V) - Description from
--helpoutput - Package metadata from brew, pip, npm, or cargo
- Homepage, license, author
What you fill in:
categoriesandtagsagent_hints.when_to_use— when should an AI agent reach for this tool?agent_hints.example_usage— 2-3 example commands
The generated manifest:
name: jq
version: "1.7.1"
description: "Lightweight command-line JSON processor"
homepage: "https://jqlang.github.io/jq/"
license: "MIT"
categories: [data, json] # ← you add these
tags: [json, filter, transform] # ← you add these
install:
method: brew
package: jq
agent_hints:
when_to_use: "Parse, filter, or transform JSON data" # ← you add this
example_usage:
- "jq '.key' file.json" # ← you add these
Registry
CliHub ships with 35+ curated, battle-tested CLI tools:
| Category | Tools |
|---|---|
| Data | jq, yq, csvkit, xsv, dasel, gron |
| Search & Files | ripgrep, fd, fzf, bat, eza, tree, ncdu, dust |
| Network | httpie, curl, wget, aria2, dog |
| Dev Tools | gh, lazygit, delta, tokei, hyperfine |
| Media | ffmpeg, imagemagick, yt-dlp |
| Documents | pandoc |
| Productivity | tmux, tldr, zoxide, starship |
| System | htop, btop, procs, bandwhich |
Roadmap
- Phase 1 — CLI core: search, install, info, list, doctor
- Phase 1.5 —
convert+submit: add any tool in 30 seconds - Phase 2 — Registry API: remote search,
clihub publish, semantic discovery - Phase 3 — Web marketplace at clihub.net
- Phase 4 — AI-assisted tool creation:
clihub create "extract tables from PDFs"
Development
git clone https://github.com/clihub-ai/clihub.git
cd clihub
pip install -e ".[dev]"
pytest # unit tests
ruff check src/ tests/ # lint
Contributing
[!TIP] The easiest way to contribute is to add a tool:
clihub convert <tool>, fill in the TODOs, and open a PR.
Other ways to help:
- Improve search — Better fuzzy matching in
src/clihub/registry/search.py - Add installers — New package manager support in
src/clihub/installer/ - Fix bugs — Check issues
git checkout -b feature/your-feature
# make changes
pytest
git commit -m "feat: your feature"
git push origin feature/your-feature
License
MIT © CliHub
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clihub_ai-0.1.0.tar.gz.
File metadata
- Download URL: clihub_ai-0.1.0.tar.gz
- Upload date:
- Size: 35.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46e00f244d75888da47ee1efa72ce20cb400a63a80d21c5fca46e31694c71cd3
|
|
| MD5 |
4049a36607696c69a284ae440d35f5c9
|
|
| BLAKE2b-256 |
4543e2a9c3cab83bf9e163a8b1816d08fab210d2c5a3fe2c165008f8e83c28ce
|
File details
Details for the file clihub_ai-0.1.0-py3-none-any.whl.
File metadata
- Download URL: clihub_ai-0.1.0-py3-none-any.whl
- Upload date:
- Size: 34.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70081ac59dfc34c0d72fc2bfc9f23868440de86e80d33e47e88bf2d037936ace
|
|
| MD5 |
861fd2a6f02bcc96a5555d88ef388ddf
|
|
| BLAKE2b-256 |
f6f497c22a88c4668d0c7271710f7b951cadc09b1de7dc207d051d9feababb8c
|