@vecteur/cli
v0.7.1
Published
The Vecteur command line — one login, the same product as the web app, from any directory.
Readme
Vecteur CLI
One command line for Vecteur's public API. Sign in through your browser, then use the same Projects and run records as the web app. The client stores your credential locally; it never calls the OPE, engine or database directly.
npm install -g @vecteur/cli
vecteur login
vecteur whoami
vecteur project list
vecteur project create 'Transfer study'
vecteur project use 'Transfer study'
vecteur project get PROJECT_ID --json
vecteur run submit --ask 'GTO to GEO transfer'
vecteur run get RUN_ID --json
vecteur run events RUN_ID --json
vecteur artifact get sha256:ARTIFACT_DIGEST --output report.docx
vecteur logoutUse vecteur login --origin URL for another deployment. For automation, supply a Project PAT
through VECTEUR_TOKEN and its origin through VECTEUR_BASE_URL; never pass a token on argv.
--help and --version work without signing in.
project list shows authorized Projects and the server's Organization-wide active Project
allowance. project create NAME --workspace NAME_OR_ID chooses among multiple Workspaces; one
Workspace is implicit. Names must match exactly and uniquely, or use an id. Quota refusals show
the server's reason and recovery links.
project use NAME_OR_ID saves the selected id beside the login for that origin. run submit
checks this selection against the live authorized list each time; --project ID overrides it.
With VECTEUR_TOKEN, runs require --project ID and project use requires a persistent login.
Project PATs retain their server-defined scope; listing and creating Projects require an account
login. project list --json preserves {projects, active_projects, selected_project_id}.
run submit continues the Project's conversation: it reads the Project's current head (the newest
Run's state_hash) and submits the next turn on it, so two submits in a row are two turns of one
study, exactly as in the web app. A new Project's first turn has no head. --parent STATE_HASH
skips the read and admits the turn only if that hash is still the head. The CLI never forks a
Project and never retries: a moved head exits state_fork naming the current head, and a Project
whose Run is still open exits state_busy naming that Run (and, when it waits on a question, the
web address where it can be answered). Nothing is admitted in either case. Once a turn is admitted,
any later failure names the Run: check it with vecteur run get RUN_ID instead of submitting
again, which would start another turn. Start a fresh study with vecteur project create.
run events validates dense SSE sequence and returns the canonical direct record only when its
embedded events match the stream. Redirects, secret-shaped responses, malformed responses and
timeouts fail nonzero. --json sorts object keys for deterministic machine output.
Human run output shows the sealed synthesis, input origins, artifact download commands, the typed
terminal cause/recovery, and—after run submit—the selected Project's UTC-month customer cost using
the server's display strings. Machine run output remains the unchanged canonical record. Artifact
downloads use the Project-scoped admitted CAS route, verify the declared length, media type and
SHA-256, and refuse to overwrite a local path. Use --project ID when no Project is selected.
vecteur mcp serves MCP over stdio using the same credentials and public client. It exposes
vecteur_project_get, vecteur_run_submit, vecteur_run_get and vecteur_run_events.
An MCP host supplies tool arguments; stdout carries only MCP protocol.
