cli_code
Documentation

How CLI_CODE works

An open, self-contained directory of command-line tools for developers. Everything runs in the browser over a built JSON dataset — no server, no tracking.

Overview

Each entry is one command-line tool with a structured profile. Two kinds:

  • Harness CLIs — agent-native wrappers that drive real desktop software (Blender, GIMP, OBS…) or local services through their APIs, with structured JSON output.
  • Public CLIs — third-party or official tools already published to npm, Homebrew, PyPI and similar, catalogued the same way.

25 entries have a human-verified profile (language, license, platforms, difficulty, use cases, alternatives). The rest are auto-derived from the source registry and are marked as such — nothing is fabricated.

Browse & search

Browse runs a weighted client-side search over data/clis.json:

FieldWeight
name (exact / token / prefix)12 / 10 / 7
aliases8
tags6
summary + description5
categories4
use cases4
language / platform2
  • Multi-word queries use AND semantics; matched terms are highlighted.
  • Facets: source, category, platform, language, install method, difficulty (shown only when data exists), plus a Curated only toggle.
  • Sort by name, category, or verified date — click a header, again to reverse.
  • Keyboard: / focus, move, Enter open, Esc clear.
  • State is in the URL: registry.html?q=mock&cat=testing&source=harness reopens the same view.

Find my CLI

Find takes a plain-language goal and scores every tool against its tags, categories and use cases, with a small synonym map (“inspect http” → api, rest, request…). Each result shows exactly which fields matched. Deterministic — no AI service, no network call. Deep-linkable: find.html?goal=edit+video.

Stacks

Stacks has two parts:

  • Preset stacks (data/stacks.json) — curated tool sets for Frontend, Backend, DevOps, Cloud, AI Engineering, Cybersecurity and Data Engineering, each pick annotated with its role. “Copy all installs” yields a commented shell block. Thin areas carry an explicit note.
  • Capability matrices (data/matrix_registry.json) — for a whole workflow, the intents and the provider CLIs that satisfy each, designed to hand to an agent.

Compare

Compare puts 2–4 tools side by side. A Key differences summary leads (difficulty, language, license, platform gaps, missing data), then a field table with changed rows marked. Add tools from the Compare control on Browse or a tool page; the queue is deep-linkable as compare.html?slugs=a,b,c.

Cheat sheets

Cheat sheet composes a printable command reference from a set of tools — ?slugs=a,b, ?stack=devops, ?favorites=1, or the compare queue. It shows install steps and any documented examples; it never invents commands, so derived entries show install steps plus a pointer to --help.

AI models

A separate dataset — 50 AI/LLM models across 18 providers, with an independent schema, validation and stats. Every factual field traces to a source in the record's sources[] (official docs, model cards, GitHub, technical reports); unverified fields are left blank.

  • Openness is by license, not downloadabilityopen-source (OSI-style: Apache-2.0, MIT), open-weight (Llama / Gemma / Modified-MIT and similar custom licenses), proprietary / api-only, research-license, commercial-use-restricted.
  • Models — search + facets: provider, openness, availability, capability, context-window bucket, local-capable.
  • Find my model — pick requirements (coding, reasoning, local, low-resource, multimodal, large context, commercial use, open source, cheap API…); deterministic scoring, each result explains which requirements it met.
  • Model Battle — 2–4 models with a key-differences summary (openness, license, commercial use, context range, local support) then a diff-marked table. No "winner".
  • Run locally — the local-capable models grouped by runner (Ollama, llama.cpp, MLX, vLLM, Transformers). Hardware notes come from each model card, not estimates.
  • AI OSS explorer20 GitHub AI projects (inference, serving, training, fine-tuning, agents, RAG, eval, observability, vector search), each verified against the GitHub API with a timestamped star count.

Volatile data carries its own timestamp — pricingVerifiedAt, starsVerifiedAt, availabilityVerifiedAt — and is never presented as permanently current. See docs/MODEL-DATA.md for the full policy and the DISCOVER → VERIFY → NORMALIZE → VALIDATE → REVIEW → PUBLISH workflow.

Local state

Saved holds favorites, the compare queue, and recently-viewed tools. All of it lives in localStorage on this device only (schema-versioned; corrupt or old data is discarded on load). No account, nothing synced, nothing sent anywhere. The model comparison list is stored the same way under a separate key.

Tool pages & URLs

Every tool has a stable, deep-linkable page at cli.html?slug=<slug>: at-a-glance metadata, install methods, use cases, alternatives and related tools (cross-linked), tags, and authoritative external references. Categories are addressable via registry.html?cat=<category>.

Data model

A build step merges the upstream registry snapshots and the hand-curated catalog_registry.json with a human-verified overlay and emits the files the site loads, validated against schema/cli.schema.json (JSON Schema 2020-12). Derivation never invents domain facts — use cases, alternatives, difficulty and precise language come only from the overlay. A size gate in npm run check holds the active dataset at exactly 500 unique tools.

FileRole
data/clis.jsonBuilt, normalized entries the site loads (generated)
data/meta.jsonFacet counts (generated)
data/overlay.jsonContributor-maintained verified facts, keyed by slug
data/stacks.jsonPreset stacks (picks must reference real slugs)
data/registry.json, data/public_registry.json, data/registry-dates.jsonUpstream snapshots — build inputs
data/catalog_registry.jsonHand-curated catalog of mainstream CLI tools (397) — build input
data/matrix_registry.jsonCapability matrices for Stacks
schema/*.schema.jsonValidation schemas for entries and stacks

Built entry fields: id, slug, name, aliases, summary, description, categories, tags, useCases, platforms, language, runtime, license, install[], examples[], repository, documentation, packageManagers, difficulty, alternatives, related, source, dataQuality, lastVerified.

Contributing a tool profile

To add or correct verified facts for a tool, edit its block in data/overlay.json (keyed by slug). Set only what you can confirm from the tool's own docs. alternatives and related must point at slugs that exist in the dataset. Then:

npm install
npm run build      # regenerate data/clis.json + data/meta.json
npm run check      # schema + cross-references + drift + link integrity

CI runs npm run check on every push; a failing schema or dangling reference blocks the deploy.

Run & deploy

The shipped site is static and zero-dependency. fetch() needs HTTP, so serve the folder — do not open index.html directly:

npm install && npm run build
npx http-server -p 4173   # or: python -m http.server 4173

All paths are relative, so it works served from a subpath such as /CLI_CODE/. .github/workflows/deploy-pages.yml builds, validates and publishes to GitHub Pages on every push to main. One-time setup: repo Settings → Pages → Source: GitHub Actions.

For AI agents

The harness entries are designed to be discovered and driven by SKILL-compatible agents (Claude Code, OpenClaw, Nanobot, Codex). Add the meta-skill once and the agent reads the registry itself:

npx skills add HKUDS/CLI-Anything --skill cli-hub-meta-skill -g -y

Then: “Find an appropriate CLI in CLI_CODE and complete the task: <task>”. A pip client also exists — pip install cli-anything-hub, then cli-hub list|search|install|info|update|uninstall.

License

Apache-2.0. The harness/public registry snapshots come from the upstream CLI-Anything project; the curated catalog is maintained in this repository.