Command reference
Every command is a thin wrapper over one HTTP endpoint under /api/cli, so anything the CLI does can also be done with curl from a script or CI job.
| Command | Endpoint | Status |
|---|---|---|
| add <org>/<name>[@<version>] | GET /api/cli/add | available |
| info <org>/<name> | GET /api/cli/info | available |
| login | POST /api/cli/login | coming soon |
| push | POST /api/cli/push | coming soon |
add
Downloads a public prompt's files into prompts/<org>/<name>/ and records the version in rubricary.lock.json. Without a version it installs the current one. To install a specific version, add @ and the label shown on the prompt's Versions tab. No account is needed.
npx rubricary add support/refund-requestnpx rubricary add support/refund-request@v1.4 --dir src/prompts✓ support/refund-request@v1.4 (8cf85ac, MIT) score 88/100 on openai/gpt-5-mini, judged by typesafe/jev-1.13 files prompts/support/refund-request/ · LICENSE · README.md · evals.yaml · prompt.md--dir changes the folder; the default is prompts. If a file on disk differs from the downloaded version, add stops and lists the file, so it never overwrites a local edit. Pass --force to overwrite. Running add again on a newer version updates the files and the lockfile:
{ "prompts": { "support/refund-request": { "version": "v1.4", "commit": "8cf85ac4c17d5efc824a505f9f609b8aee5fc976", "path": "prompts/support/refund-request", "url": "https://app.rubricary.com/prompt/support/refund-request" } }}The same call over HTTP. This is also what the “Fetch at runtime” snippet on each prompt uses:
curl "https://app.rubricary.com/api/cli/add?prompt=support/refund-request@v1.4"{ "name": "support/refund-request", "version": "v1.4", "current": true, "commit": "8cf85ac4c17d…", "license": "MIT", "locale": "en-US", "score": { "value": 88, "model": "openai/gpt-5-mini", "judge": "typesafe/jev-1.13-20260917", "ranAt": "…" }, "url": "https://app.rubricary.com/prompt/support/refund-request", "files": { "prompt.md": "…", "evals.yaml": "…", "README.md": "…", "LICENSE": "…" }}score is the latest eval run of that version, or null if it has not been evaluated yet. Methodology explains how scores are computed. A malformed name returns 400. A version that does not exist returns 404 and lists the versions that do, and a private prompt returns the same 404 as one that does not exist. Responses allow any origin (CORS), so a browser app can call the endpoint directly.
info
Prints the current version, its score, the license and the latest versions with their scores.
npx rubricary info support/refund-requestlogin and push
These will let you publish new versions from the terminal, once API keys are available. Both endpoints already exist and return 501 with a message saying what to do instead. Until then, sign in on the web: owners and admins of a prompt's organization can commit and publish from the Edit button on the prompt page. The editor runs the same lint a push will.