Install it
Node 20 or newer. The package installs a single oneocto binary.
npm install -g @appbox/oneocto-cli CLI
Everything the dashboard does — agents, workflows, phone numbers, billing — as one scriptable binary. Built for terminals, CI pipelines, and agent runtimes that would rather call a command than click a button.
npm install -g @appbox/oneocto-cli
Requires Node 20+. Check the install with oneocto -v.
$ oneocto auth login --url https://acme.oneocto.dev✔ Signed in as ops@acme.com — tenant acme (dev)$ oneocto list entry-points --tabularID NAME PHONE NUMBER STATUSep_8f21 Support inbound +1 415 555 0142 activeep_4c09 Renewals outbound +1 415 555 0188 active$ oneocto flow simulate wf_2b7d -m "I need to reschedule"{ "verdict": "pass", "matchedNode": "intent.reschedule", "latencyMs": 812} Quick start
Node 20 or newer. The package installs a single oneocto binary.
npm install -g @appbox/oneocto-cli Paste your workspace URL and the CLI reads the tenant and environment from it.
oneocto auth login --url https://acme.oneocto.dev The command surface is generated from a registry, so the CLI is its own reference.
oneocto resources Self-describing
Commands are generated from a resource registry rather than hand-written one by one. Ask the binary what exists and it answers with the current contract — no stale reference page to drift out of sync, which is what makes it safe to hand to an AI agent.
resources lists everything the CLI can touch, with aliasesdescribe returns the operational contract for a resourceexplain adds build guidance for the complicated ones--tabular when a human is reading
Each one supports the same verbs, so learning one resource teaches you the rest. Run
oneocto resources for the live list.
Reference
One verb, one resource, one shape. Anything that hits the API takes --tenant and
--space-id to override the saved context.
Automation
Keep workflow specs in git, validate them on every pull request, and publish on merge.
--dry-run tells you what would change without
writing anything, and every command exits non-zero when it fails, so CI catches it.
--yes instead of answering promptsflow audit as a pre-publish gate--minified JSON pipes straight into jqsteps:
- uses: actions/checkout@v4
- run: npm install -g @appbox/oneocto-cli
- name: Sign in
run: >
oneocto auth login
--tenant acme
--email ${{ secrets.OCTO_EMAIL }}
--password ${{ secrets.OCTO_PASSWORD }}
- name: Validate the spec
run: oneocto flow publish-workflow --spec ./agents/support.json --dry-run
- name: Publish on merge
if: github.ref == 'refs/heads/main'
run: oneocto flow publish-workflow --spec ./agents/support.json Install the CLI and have an agent answering calls before your coffee lands.