acsetra — the Runner CLI
A thin client for building and running hosted Runner apps from your terminal.
It holds no framework logic: every authoring command serializes to {op, args}
and is POSTed to the hosted API, where validation, reserved-code guards, and
doctor compiles all run server-side. You get the grammar of the framework, not
its implementation.
Install
pipx install acsetra # recommended (isolated)
# or: pip install acsetra
runner signin
Exposes three console scripts — runner (primary), acsetra (brand alias), and
r (continuity with ./r).
Quick start
runner signin # device-flow sign-in; caches a token
runner whoami # you + every org you can reach, with access (owner/edit/view)
runner app create <org>.crm --label "CRM" # create an app scope in THAT org (any org you can edit)
runner set put <org>.crm contacts ada --json '{"role":"eng"}'
runner read contacts -S <org>.crm
runner doctor <org>.crm && runner compile <org>.crm
runner auth <org>.crm # gate the app behind home.acsetra.com sign-in
runner dev <org>.crm # open the app's hosted surface in your browser
runner open <org>.crm # reuse/create its paired Chrome tab
runner notify <org>.crm --title Ready
runner tabs
Every command names its target by full scope path <org>.<app> — the first
segment is the org, and that is what routes the command. Nothing is pinned per
project: you may read every org you belong to and author in any org where your
share access is edit (granted in Runner Command → Share). A bare leaf (crm)
only resolves against the token's home org — runner use <slug> changes that
default, but full paths never need it.
How it fits together
runner signinruns the OAuth device flow: it prints a URL + code, you approve in the browser, and the CLI caches a token at~/.config/acsetra/credentials(0600).runner docs pullwritesCLAUDE.md+.runner/docs/*— concise doctrine and a framework model for Claude Code. Exact grammar always comes fromrunner <group> <subverb> --help, so it cannot drift from the installed client.runner open,focus,notify, andtabsuse the paired Runner Chrome extension. CLI and ChatGPT MCP write the same short-lived browser intents.- The hosted DB is the source of truth. Local files are instructions and mirrors,
never runtime source.
runner checkoutproduces disposable working copies under.tmp/for grep and inspection;runner dev <app>just opens the live hosted surface in your browser.
Environment overrides
| Var | Meaning |
|---|---|
ACSETRA_API_BASE |
hosted API origin (default https://home.acsetra.com) |
ACSETRA_TOKEN |
bearer token (skips the cached credential) |
ACSETRA_WORKSPACE |
home org slug for bare-leaf scopes (full <org>.<app> paths route themselves) |
ACSETRA_SCOPE |
default app scope for -S-less commands |
Run runner help for the full verb list.
Release files for acsetra 0.2.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| acsetra-0.2.7.tar.gz | 32.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| acsetra-0.2.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.1 kB
Release files / acsetra-0.2.7.tar.gz
| Download URL | acsetra-0.2.7.tar.gz |
|---|---|
| Size | 32.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6b25e507980468c764bd091c0ff2117eb4af6583c7e423812c22faab29bb7e04
|
|
BLAKE2b-256 checksum How to use checksums |
4039542540d1c9f24657f4137e9fddb9a721155ec6828ed0f5175f2a3fee6cf7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.7
|
Release files / acsetra-0.2.7-py3-none-any.whl
| Download URL | acsetra-0.2.7-py3-none-any.whl |
|---|---|
| Size | 37.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c37e2701a0e05e4a4352e5e6f2ffa3bfa07981c244a57d17a60fd9f4ccad6fd4
|
|
BLAKE2b-256 checksum How to use checksums |
ab803d291cefa37f71d7164812781df12f5a4ee911d8ec0423ed6938b1fb73fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.7
|