Reference

CLI

The quiver command is a thin, scriptable client over the same API — ideal for CI jobs, agents, and quick reads. Every command takes --format json|human.

Setup

Install & authenticate

install
curl -fsSL https://quiveros.ai/install.sh | sh

Point it at your workspace with a qvr_ key — via env vars or the persisted config (~/.config/quiver/config.json). Env vars win.

auth
# option A — environment
export QUIVER_URL="https://quiveros.ai"
export QUIVER_API_KEY="qvr_xxxxxxxxxxxx"

# option B — persisted config
quiver config set url https://quiveros.ai
quiver config set apiKey qvr_xxxxxxxxxxxx

# don't have a key? mint one (printed once)
quiver workspace apikey create "my-agent"

Files

quiver file

quiver file …

Read and mutate files. Mutations go through the real CRDT/KPI path, so dashboards and metrics stay in sync.

CommandTypeNotes
file list--type --status --search --limitList files (filterable).
file list --parent <id>--parent-field --type --status --limit --offsetThe files linked under one parent, in link order.
file get <id>Full file state — fields, status, metadata.
file data <id>Just the current data-field values.
file create <type> <title>--set f=v --status --parent --parent-field --idempotency-key --forceCreate a file with its fields, status and parent link — atomic (all of it or none), and safe to retry (each run sends an idempotency key and retries once on a server/network error).
file create-many --from <file|->--type --parent --parent-field --status --atomic --idempotency-keyCreate many from a JSON array, 200 per request, per-item results; --atomic = all or nothing.
file set <id> <field> <value>--type string|number|boolean|jsonSet one data field.
file set <id> <field> --add <v> / --remove <v>repeatableAdd or remove single elements of a list field (incl. file links) — concurrent adds all land. Removing a link never deletes the linked file.
file status <id> <status>Move the file to a status.
file note <id> <body>--shared | --private --titleAdd a note. Private to you unless --shared.
file tell <id> <message>Hand a plain-language update to the file agent.
file run <id> <message>--context k=vSame, but streams the agent’s steps live.
file activity <id>--field --since --limitField-change history.
file schema [type]Show a type’s fields + status workflow (omit to list types).
example
quiver file set $ID value 600 --type number
quiver file status $ID ended
quiver file list --type score --status ended --limit 50 --format human
quiver file create task "Cut reads over" --parent $PROJECT --parent-field tasks --status in_progress --set phase=Cutover
quiver file create-many --from tasks.json --parent $PROJECT --parent-field tasks --format human
quiver file set $PROJECT issues --add $ISSUE
quiver --version   # 0.3.0 (a1b2c3d, built 2026-09-29 14:03 UTC)

Metrics & search

quiver metrics · search · tell

quiver metrics …

Read computed values defined in your config.

CommandTypeNotes
metrics listAvailable metrics (id, name, type).
metrics get <id>--period YYYY|qN-YYYY|lifetimeOne metric’s value + target.
metrics snapshot--period …All metrics at once.
example
quiver metrics get leaderboard --format human
quiver search "Alice" --type score
quiver tell "log a new score of 320 for Bob on hard"

Workspace

quiver workspace

quiver workspace …

Workspace info, config, keys, secrets and variables.

CommandTypeNotes
workspace infoName, id, config, user count.
workspace config [validate]--filePrint or validate the full config JSON.
workspace apikey list|create|deleteManage qvr_ keys (create prints once).
workspace secret set|list|deleteEncrypted, write-only secrets (${secrets.NAME}).
workspace var set|list|deletePlaintext variables (${variables.NAME}).

End to end

A scripted round-trip

bash
export QUIVER_URL="https://quiveros.ai" QUIVER_API_KEY="qvr_…"

quiver workspace info --format human          # confirm the key resolves
quiver file list --type score --limit 5 --format human
ID=$(quiver file list --type score --limit 1 | jq -r '.[0].id')
quiver file set "$ID" value 999 --type number # writes a KPI
quiver metrics get leaderboard --format human # read the aggregate back