silo-drift-cli
v0.1.5
Published
Run Silo prompt drift checks from your terminal and CI
Downloads
747
Readme
silo-drift-cli
Run Silo prompt drift checks from your terminal and CI.
Silo is already deployed and ready to use. Install the CLI, sign in to the app to create an API key, and connect it to your hosted Silo workspace.
Website: https://silo-frontend.onrender.com/
npm package: https://www.npmjs.com/package/silo-drift-cli
Production backend API: https://silo-siix.onrender.com
Published name is silo-drift-cli (short names like silo-cli / silo-prompt are taken or blocked on npm).
Install
npm install -g silo-drift-cliThe CLI talks to the Silo HTTP API only. Most users can point it at the deployed Silo app, set SILO_API_BASE_URL and SILO_API_KEY, and start using it right away.
Update
npm update -g silo-drift-cli
# or install the latest explicitly
npm install -g silo-drift-cli@latestLocal development (this repo)
cd packages/cli
npm install
npm run build
npm linkAuth Setup
silo login
silo doctorConfig precedence:
- CLI flags like
--urland--key SILO_API_BASE_URLandSILO_API_KEY~/.config/silo/config.json- Default URL
https://silo-siix.onrender.com
Command Reference
silo login --url https://silo-siix.onrender.com --key silo_...
silo doctor
silo whoami
silo setup [--repo <path>] [--force]
silo revert-setup [--repo <path>] [--force] [--dry-run]
silo suites list
silo suites get <suite-id>
silo suites create --name "Support Eval" --model gpt-4o-mini
silo prompts list --suite <suite-id>
silo prompts get <prompt-id>
silo test-cases list --suite <suite-id>
silo test-cases create --suite <suite-id> --file cases.json
silo test-cases generate --suite <suite-id> --prompt-key refund --candidate "..." --baseline "..." --count 10
silo run --suite <suite-id> --prompt refund --candidate 12 --test-input "Where is my refund?"
silo run --suite <suite-id> --prompt refund --candidate 12 --test-case-id tc1 tc2 --preset ci --stream
silo runs list --limit 10
silo runs get <run-id>
silo runs explain <run-id>
silo gate --run-id <run-id> --config thresholds.json
silo sync --base origin/main --head HEAD
silo dashboardsilo setup
Creates a skeleton git layout at the repo root (no suite or prompt content):
silo/silo.yml— emptysuites/suite_definitions, defaultdefaults, emptyprompt_metasilo/prompts/.gitkeep— sosilo/prompts/is tracked before you add*.promptfiles.github/workflows/silo-prompt-pipeline.yml— GitHub Actions job that runsnpx silo-drift-cli syncwithSILO_API_BASE_URLandSILO_API_KEYsecrets
Use --repo for a path other than the current directory; use --force to overwrite an existing silo.yml or workflow file.
silo revert-setup
Removes what silo setup added: .github/workflows/silo-prompt-pipeline.yml and the entire silo/ directory.
If there are any files under silo/prompts/ besides .gitkeep, or silo/silo.yml has non-empty suites, suite_definitions, or prompt_meta, the command prints a warning and exits with code 1 unless you pass --force (to delete that content). Use --dry-run to preview removal; with populated content, --dry-run shows the warning without exiting 1.
CI Example
npx silo-drift-cli login --url "$SILO_API_BASE_URL" --key "$SILO_API_KEY"
npx silo-drift-cli sync --base origin/main --head HEADPublish a new version to npm
Each release that changes the published package needs a new semver in package.json, a build, then npm publish.
- Bump
versioninpackages/cli/package.json(for example0.1.0→0.1.1for a fix/feature release). - From
packages/cli:npm install(updates the lockfile if needed), thennpm run build. - Log in once per machine:
npm login(npm account with publish rights tosilo-drift-cli). - Publish:
npm publish --access public(scoped packages need--access publiconce; this name is unscoped but the flag is harmless).
After publish, consumers run npm install -g silo-drift-cli@latest or npm update -g silo-drift-cli to get the new command.
cd packages/cli
npm run build
npm publishRun npm view silo-drift-cli first; if the name is taken, pick another unscoped name in package.json and try again.
