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.3
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.3.tar.gz | 32.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| acsetra-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.1 kB
Release files / acsetra-0.2.3.tar.gz
| Download URL | acsetra-0.2.3.tar.gz |
|---|---|
| Size | 32.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fe9a9350050ea59127885c765b1e5867fa119e61e186b5b0ec98f204a1bf8e3d
|
|
BLAKE2b-256 checksum How to use checksums |
6afbd9a47bf427d8dca2a9fc0015950dad24bf9048cb86680a87dafc93cac398
|
| 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.3-py3-none-any.whl
| Download URL | acsetra-0.2.3-py3-none-any.whl |
|---|---|
| Size | 37.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3957c20d59b1d8f8a4dffda97b3c13643cebc0ee3c886d67af83cc8c3d33e752
|
|
BLAKE2b-256 checksum How to use checksums |
63adade60803ee8bc9b270fc595caef4d63d486a5f1863174978455a73cd7098
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.7
|