mirror of
https://github.com/hanzoai/bot-hub.git
synced 2026-10-30 18:46:42 +00:00
Every route mounts under /v1/skills, the address api.hanzo.ai routes to this API; auth, personas, users, tokens, upload, integrations, search and whoami are sub-resources and RESERVED keeps them from being slugs. The web, the OG renderers, the CLI's default registry, /.well-known/bothub.json and openapi.json name api.hanzo.ai. Sign-in calls back to api.hanzo.ai/v1/skills/auth/callback and hands the token over in the fragment. The store starts again. docker-entrypoint.sh read Base's port from BASE_PORT, which Kubernetes sets to tcp://<ip>:<port> in a namespace holding a Service named base; Base now listens on 127.0.0.1:8090, fixed. The collections migration is rewritten for the Base the Dockerfile pins (1.5.91): flat field options, declared created/updated, and the users collection every Base already has, extended rather than created twice. Reads are anonymous against public rules, since Base takes IAM credentials only and no longer serves password sign-in; writes answer 503 saying so. The catalogue migration, generated by scripts/catalog.mjs, publishes the 83 skills in hanzoai/bot@8be8f1dc7b. /health reports the store, so the probes restart a pod whose Base is gone. cache.ts decides caching once: an anonymous 2xx GET is public for a minute (five at the edge) with a weak ETag and 304s; a credential, a write or an error is private, no-store. Filter values go through lit(). Embeddings go through api.hanzo.ai and are skipped without a key. k8s/ was a second declaration of the deployment; universe is the one.
5.1 KiB
5.1 KiB
summary, read_when
| summary | read_when | ||
|---|---|---|---|
| CLI reference: commands, flags, config, lockfile, sync behavior. |
|
CLI
CLI package: packages/bothub/ (published as bothub, bin: bothub).
From this repo you can run it via the wrapper script:
bun bothub --help
Global flags
--workdir <dir>: working directory (default: cwd; falls back to Clawdbot workspace if configured)--dir <dir>: install dir under workdir (default:skills)--site <url>: base URL for browser login (default:https://hub.hanzo.bot)--registry <url>: API base URL (default: discovered, elsehttps://api.hanzo.ai)--no-input: disable prompts
Env equivalents:
BOTHUB_SITE(legacyCLAWDHUB_SITE)BOTHUB_REGISTRY(legacyCLAWDHUB_REGISTRY)BOTHUB_WORKDIR(legacyCLAWDHUB_WORKDIR)
Config file
Stores your API token + cached registry URL.
- macOS:
~/Library/Application Support/bothub/config.json - override:
BOTHUB_CONFIG_PATH(legacyCLAWDHUB_CONFIG_PATH)
Commands
login / auth login
- Default: opens browser to
<site>/cli/authand completes via loopback callback. - Headless:
bothub login --token clh_...
whoami
- Verifies the stored token via
/v1/skills/whoami.
star <slug> / unstar <slug>
- Adds/removes a skill from your highlights.
- Calls
POST /v1/skills/stars/<slug>andDELETE /v1/skills/stars/<slug>. --yesskips confirmation.
search <query...>
- Calls
/v1/skills/search?q=....
explore
- Lists latest updated skills via
/v1/skills?limit=...(sorted byupdatedAtdesc). - Flags:
--limit <n>(1-200, default: 25)--sort newest|downloads|rating|installs|installsAllTime|trending(default: newest)--json(machine-readable output)
- Output:
<slug> v<version> <age> <summary>(summary truncated to 50 chars).
inspect <slug>
- Fetches skill metadata and version files without installing.
--version <version>: inspect a specific version (default: latest).--tag <tag>: inspect a tagged version (e.g.latest).--versions: list version history (first page).--limit <n>: max versions to list (1-200).--files: list files for the selected version.--file <path>: fetch raw file content (text files only; 200KB limit).--json: machine-readable output.
install <slug>
- Resolves latest version via
/v1/skills/<slug>. - Downloads zip via
/v1/skills/download. - Extracts into
<workdir>/<dir>/<slug>. - Writes:
<workdir>/.bothub/lock.json(legacy.bothub)<skill>/.bothub/origin.json(legacy.bothub)
uninstall <slug>
- Removes
<workdir>/<dir>/<slug>and deletes the lockfile entry. - Interactive: asks for confirmation.
- Non-interactive (
--no-input): requires--yes.
list
- Reads
<workdir>/.bothub/lock.json(legacy.bothub).
update [slug] / update --all
- Computes fingerprint from local files.
- If fingerprint matches a known version: no prompt.
- If fingerprint does not match:
- refuses by default
- overwrites with
--force(or prompt, if interactive)
publish <path>
- Publishes via
POST /v1/skills(multipart). - Requires semver:
--version 1.2.3.
delete <slug>
- Soft-delete a skill (moderator/admin only).
- Calls
DELETE /v1/skills/{slug}. --yesskips confirmation.
undelete <slug>
- Restore a hidden skill (moderator/admin only).
- Calls
POST /v1/skills/{slug}/undelete. --yesskips confirmation.
hide <slug>
- Hide a skill (moderator/admin only).
- Alias for
delete.
unhide <slug>
- Unhide a skill (moderator/admin only).
- Alias for
undelete.
ban-user <handleOrId>
- Ban a user and delete owned skills (moderator/admin only).
- Calls
POST /v1/skills/users/ban. --idtreats the argument as a user id instead of a handle.--fuzzyresolves the handle via fuzzy user search (admin only).--reasonrecords an optional ban reason.--yesskips confirmation.
set-role <handleOrId> <role>
- Change a user role (admin only).
- Calls
POST /v1/skills/users/role. --idtreats the argument as a user id instead of a handle.--fuzzyresolves the handle via fuzzy user search (admin only).--yesskips confirmation.
sync
- Scans for local skill folders and publishes new/changed ones.
- Roots can be any folder: a skills directory or a single skill folder with
SKILL.md. - Auto-adds Clawdbot skill roots when
~/.clawdbot/clawdbot.jsonis present:agent.workspace/skills(main agent)routing.agents.*.workspace/skills(per-agent)~/.clawdbot/skills(shared)skills.load.extraDirs(shared packs)
- Respects
CLAWDBOT_CONFIG_PATH/CLAWDBOT_STATE_DIRandHANZO_BOT_CONFIG_PATH/HANZO_BOT_STATE_DIR. - Flags:
--root <dir...>extra scan roots--allupload without prompting--dry-runshow plan only--bump patch|minor|major(default: patch)--changelog <text>(non-interactive)--tags a,b,c(default: latest)--concurrency <n>(default: 4)
Telemetry:
- Sent during
syncwhen logged in, unlessBOTHUB_DISABLE_TELEMETRY=1(legacyCLAWDHUB_DISABLE_TELEMETRY=1). - Details:
docs/telemetry.md.