CLI for the Assertion API
Project description
Assertion CLI
CLI for the Assertion API.
Usage
The CLI targets https://app.tryassertion.com by default; set
ASSERTION_BASE_URL (e.g. http://localhost:8000) to point at another backend.
Run locally from the workspace:
uv run --package assertion-cli asrt --help
Install as a uv tool from PyPI:
uv tool install assertion-cli # latest
uv tool install --reinstall assertion-cli # upgrade in place
The CLI package declares all of its direct runtime dependencies. At the moment
that set is httpx, pydantic, and typer.
After installation:
asrt install # one-time onboarding: write skill files, AGENTS.md/CLAUDE.md pointer, .gitignore
asrt login # authenticate this repo (generate a token at Settings → Authentication)
asrt session start # per work session: record the diff base (current HEAD)
asrt stacks
asrt checkpoint --stack <stack-id> "Implemented X\nUpdated Y"
asrt checkpoint --continue "Implemented Y"
asrt decision --yes <checkpoint-id> # optional, only after a failed checkpoint
asrt verify # submit final verification (non-blocking)
asrt verify --force # submit even when review diff is unchanged
asrt verify-status # one-shot poll; loop with your own sleep until terminal
Authentication
asrt login stores your API token in a global, user-level file —
~/.assertion/credentials.json (mode 0600) — keyed by the repo's path:
{ "version": 1, "repos": { "/abs/path/to/repo": "alk_..." } }
Run it from inside the repo it should authenticate. It validates the token and
confirms the repo's origin remote is connected to a stack in the token's
workspace before saving, so each repo can target a different workspace. Because
entries are keyed by path, moving or renaming the repo folder means logging in
again (which adds a new entry). asrt logout removes the current repo's entry;
asrt whoami shows which token is in effect.
Token resolution at call time, in order:
- the entry for the current repo path in
~/.assertion/credentials.json; - the
ASSERTION_API_TOKENenvironment variable (a backup for CI, or repos with no remote thatasrt loginwon't store);
with a clear "run asrt login" error when neither is present. The API base URL
defaults to https://app.tryassertion.com; override it with ASSERTION_BASE_URL
for a local backend.
Publishing a new version
- Bump the version in
cli/pyproject.toml. - Commit and push to
main.
That's it. The Publish CLI to PyPI workflow auto-triggers on pushes that
change cli/pyproject.toml. It reads the version from the file, runs tests,
builds, publishes to PyPI, and pushes a cli-v<version> tag.
If the version hasn't changed (e.g. you updated a dependency), the workflow skips publishing — only version bumps trigger a publish.
You can also trigger the workflow manually from the GitHub Actions UI — it
reads the version from the current pyproject.toml on main.
Prerequisite: PYPI_TOKEN must be set as a GitHub Actions secret — a
PyPI API token with upload scope for assertion-cli.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file assertion_cli-0.5.16.tar.gz.
File metadata
- Download URL: assertion_cli-0.5.16.tar.gz
- Upload date:
- Size: 45.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6b8e3883c5fa4191968112125b56f1d2417b55bb1cdf11e79d182f5f074c066
|
|
| MD5 |
72dd52ae124795e07ae2fe94037b9824
|
|
| BLAKE2b-256 |
40424dd9bef0b31a54eecb28c4ced8eb6356ddc2b038ffc5c71c2d3d88f24116
|
File details
Details for the file assertion_cli-0.5.16-py3-none-any.whl.
File metadata
- Download URL: assertion_cli-0.5.16-py3-none-any.whl
- Upload date:
- Size: 34.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95e94f25fe06b9b9c0f0885f9cac9aa4f8e49cfd2bfdfe12f375ca01f87f7373
|
|
| MD5 |
cb9089e3dbb823608e44bd152d256c4d
|
|
| BLAKE2b-256 |
99a81062b2ef613e1db136cc574ff37ed9ba2f7eb7b5a7bfac4fa4cabe77da79
|