19 groups · 18 subcommands. Invoke via bun run axis -- <args> so Bun forwards flags, or make axis ARGS="…". After bun link from packages/cli, axis works as a local bin. Install, doctor, setup, secrets, deploy, and health for Cloudflare® Worker pynescript-axis.
@hoox-sh/axis-cli@0.3.6 • product v2.28.0 · bin axis
Installation guideLocal UI instead of deploy: bun run dev
bun install at the monorepo root plus worker/ and the CLI. App + Worker + CLI deps in one shot.
Wrapper: bun run axis:install. Env: AXIS_ROOT, AXIS_WORKER_URL, CLOUDFLARE_API_TOKEN, AXIS_CLI_SRC=1.
Toolchain, wrangler.toml, Cloudflare® auth, and optional live /health.
Wrapper: bun run axis:doctor. For flags via bun: bun run axis -- doctor --remote. Also checks sister PYNE checkout when present.
Bootstrap: install → ensure wrangler.toml → Cloudflare® D1 → optional API_KEYS KV / OAuth. --prod fails closed on remote D1 + KV.
When using bun run axis setup -- --flag, keep the -- so Bun forwards flags. Typical prod: axis setup --prod then axis keys create.
Vite product UI on :3000. Pair with Flask Pro API (make -C ../pyne run) on :5002 for the server engine. Local clone dir may still be pynescript — set PYNESCRIPT_SRC if needed.
Also: bun run dev (Vite) · bun run desktop:dev (Tauri).
Deploy Cloudflare® Worker pynescript-axis, optional Cloudflare® Pages, or both. Project id is frozen — do not rename.
Wrapper: bun run axis:deploy → axis deploy worker.
Copy wrangler.toml.example → wrangler.toml if missing.
Apply worker/schemas/scripts.sql to Cloudflare® D1 (database name pynescript).
Create and bind API_KEYS Cloudflare® KV (required when D1 is on for prod /api/scripts). Optional USAGE binding.
Prod fail-closes when D1 is bound without API_KEYS KV.
Bind Cloudflare® Artifacts for git-native script storage (no GitHub credentials).
Set GitHub / GitLab OAuth App client ids in [vars] (or --secret). Device Flow must be enabled on GitHub.
Cloudflare® Wrangler secrets for the Worker: ADMIN_TOKEN, EXTERNAL_BACKEND, and related values. Prefer secrets over committed vars.
When using bun run axis -- secret put NAME, keep the -- so Bun forwards the subcommand.
Mint and validate Worker API keys (pn_…) for cloud scripts + MCP. --pyne switches to the PYNE Pro API host.
keys create --pyne / keys validate --pyne hit POST /auth/* on AXIS_PYNE_URL (default https://pynescript.online).
Probe /health; optionally GitHub device OAuth and /api/scripts.
Wrapper: bun run axis:health -- --oauth.
Stdio proxy to Worker POST /mcp, or print client JSON for Cursor / Inspector.
Generated stdio configs put the key in AXIS_API_KEY env — never as --key argv.
Print the authenticated Cloudflare® account.
Warm Numba builtins / IR cache on a PYNE Pro API host (POST /compile/prewarm).
Default endpoint is https://pynescript.online; override with --endpoint or AXIS_PYNE_URL. Local desk: AXIS_PYNE_URL=http://127.0.0.1:5002.
Show PYNE API usage for a key (GET /auth/usage).
Defaults to https://pynescript.online. Requires HTTPS when a key is sent.
Print the AXIS CLI command surface.
After bun link from packages/cli, axis --help works as a local bin. Package @hoox-sh/axis-cli is independent of AXIS_VERSION.
Makefile pass-through to packages/cli/bin/axis.js. Fixed wrappers: axis-install, axis-doctor, axis-setup, axis-deploy, axis-health.
Env: AXIS_ROOT, AXIS_WORKER_URL, AXIS_PYNE_URL, CLOUDFLARE_API_TOKEN, AXIS_CLI_SRC=1.