Skip to content

ox CLI

ox is the Oxidean command-line client: the same workflows the web UI offers, scriptable from your shell. It talks to any Oxidean instance, cloud or self-hosted. When the instance supplies a valid capability manifest, ox gates itself on it, so commands the server does not support return a clean “not supported” instead of a wrong request. Instances too old to serve a manifest are treated as supporting everything — an unsupported command may then fail at the RPC endpoint instead.

Every forge serves its own matching build at /cli, install scripts and binaries included:

Terminal window
curl -fsSL https://<your-instance>/cli/install.sh | sh

Prebuilt binaries also ship on the repository’s releases page. ox self-update swaps the binary for the build your instance serves, so the client and server never drift apart.

Terminal window
ox auth login --instance https://forge.example.com --token oxidean_pat_…
ox auth login --web # browser/device grant
ox auth status|refresh|revoke|switch # token lifecycle + multi-instance
ox auth setup-git # register ox as the git credential helper
ox auth token # print the resolved token (for scripts)
ox config list|get|set # local config (tokens redacted)

Scripts and CI authenticate with an access token created under Settings → Personal access tokens in the web UI.

Terminal window
ox repo view|fork octo/demo # fork: [--into-owner o] [--into-name n]
ox repo create demo [--org octo] [--visibility public|private]
ox repo edit|rename|archive|transfer|delete o/n
ox repo clone|sync o/n # clone runs git clone locally
ox repo star|watch o/n
ox repo deploy-key|collaborator|invites ...
ox repo branch-protection|tag-protection o/n --pattern glob
ox repo mirror get|set|sync o/n # push, pull, and two-way mirroring
ox repo lfs|quota|merge-settings o/n
ox issue list|view|create|edit|close|reopen|comment o/n
ox pr list|view|create|merge|diff|files|checks o/n
ox pr review o/n <n> --approve|--request-changes|--comment
ox pr ready|update-branch|checkout o/n <n>
ox run list|view|watch o/n # watch: --exit-status for CI gates
ox run rerun|cancel o/n <run-id> [--failed-only]
ox workflow list|view|run o/n
ox workflow template list|view o/n
ox workflow create o/n --template <id>
ox release list|create|edit o/n [<tag>]
ox release upload|download o/n <tag> <files...>
ox pkg list [--owner octo]
ox secret list|set|delete o/n # --body | --file | stdin
ox status create o/n --sha s --context c --state success
ox label|webhook list|create|edit|delete ...
ox org list|view|create|members|invites
ox notification list|read|unread
ox search <query> --type repos|issues|pulls|code|...
ox user view|starred|watched <u>
ox ssh-key|gpg-key|email list|add|delete
ox browse [o/n] # open the repo in a browser
Terminal window
ox skill print|install # embedded agent SKILL.md → harness dirs
ox mcp print|install|status|remove # wire the instance's /api/mcp endpoint
# into harness MCP configs
ox pilot pair <code> # redeem a /oxpilot pairing code
ox pilot run|connect|status # claim → execute → report loop for
# remote targets (dials out; no inbound)

Alongside git, repositories can opt into Oxidean’s own changeset-model VCS (ox vcs enable): server-side commits, diffs, blame, merges, rebases, and sparse checkouts, with resumable git import and export back to git refs through the protected ref-update path.

Terminal window
ox vcs commit o/n -m "msg" --add vpath=local
ox vcs log|diff|blame|show o/n
ox vcs merge|rebase|checkout o/n
ox vcs import o/n # git → changesets
ox vcs export o/n <cs> --branch b # changesets → git commits

Most commands take --json, and --jq applies a jq expression server-side shape:

Terminal window
ox repo list --json | jq '.data.repos[].name'
ox issue list octo/demo --jq '.issues[] | "\(.number)\t\(.title)"'

ox api is the raw-RPC escape hatch when a subcommand does not cover what you need:

Terminal window
ox api issue.get -f owner=octo -f name=demo -F number=12

The full surface, flag by flag, is docs/CLI.md in the repository.