planned · not published
build and operate · cli
the cli isn't published yet.
a slct command is planned: the same plan, execute and verify calls as the api, from a terminal. it isn't on npm or any other registry today, so there is nothing to install. use the api with curl until it ships.
today
use the api instead
every planned command is one call to an endpoint that already runs. plan needs no key:
curl -s https://slct.sh/v1/select/plan \
-H 'content-type: application/json' \
-d '{"task":"extract the invoice total",
"success":{"validators":["json_schema"],"required_fields":["total"]},
"limits":{"max_total_cost_usd":0.02,"deadline_ms":4000,"max_attempts":2}}'keys and credit live in the console: sign in, mint a key, top up your account's credit. the api reference covers every endpoint and error.
npm
don't run npm i -g slct
the name slct on npm belongs to an unrelated package. installing it won't give you this cli. when the cli ships, this page will name the exact package and command.
planned
planned commands
the interface as it stands in the source today. names and flags can change before it ships.
| command | calls | key |
|---|---|---|
slct plan "<task>" --max 0.02 --deadline 4000 | POST /v1/select/plan | no |
slct execute "<task>" --input in.json --max 0.02 | POST /v1/select/execute | yes |
slct verify (result json on stdin, read until the pipe closes; </dev/null for none) | POST /v1/select/verify | no |
slct lookup <id>, slct events <id> | GET /v1/select/{id}, /events | no |
slct capabilities [slice] | GET /v1/models/capabilities | no |
slct health | GET /v1/health | no |
slct keys | GET /v1/keys | sign-in |
slct checkout starter --key-id ID | POST /v1/billing/checkout | sign-in |
"sign-in" means the session from /login, not an slct_ key. today the console does both of those for you.
source
the interface as it stands in the source, today
Planned; not published -- see "the npm name" above. The output below is slct --help, captured live from cli/slct.mjs at build time: it is exactly what the CLI prints if you run it from a checkout, not a paraphrase, and not an install instruction.
slct 0.4.1 — the verification and receipts service on WAVE's own provider accounts
slct demo [--keep]
slct plan "<task>" [--max 0.02] [--deadline 4000] [--keep | --retention zero|keep]
(--keep stores the plan so lookup/events can read its id; the default zero stores nothing)
slct verify [< result.json] (stdin is read to EOF; nothing piped runs the demo; pass </dev/null for none)
slct capabilities [slice]
slct health [--deep]
slct execute "<task>" --key slct_... [--input in.json] [--tool NAME] [--allow a,b] [--max 0.02]
slct keys [--jwt JWT]
slct checkout starter --key-id ID [--jwt JWT]
slct lookup <id> | slct events <id> (ids from execute, or plan --keep)
slct byok "<task>" --base URL --model M --key KEY
slct compose <mode> "<task>" --legs legs.json [--judge j.json] --key PROVIDER_KEY
slct oneshot "<task>" --legs legs.json --key PROVIDER_KEY [--expect TEXT]
(compose and oneshot need SLCT_KEY=slct_... as well; a login JWT is refused)
slct evaluate --file items.json | < items.json (stdin is read to EOF: a pipe that never closes waits; pass </dev/null for none)
slct scoreboard [slice]
slct mcp (stdio MCP server; the same server as @slct/mcp)
Config ~/.config/slct/config.json {api, key}; env SLCT_API/SLCT_KEY override. Login JWT via --jwt/SLCT_JWT for keys+checkout.planned
planned config
- a key in
~/.config/slct/config.jsonas{"key": "slct_…"}, or in theSLCT_KEYenvironment variable. - the cli never prints the key.