albus CLI
Command-line client for the Albus REST API, built on the public
albus-sdk Python SDK. It is a thin
shell over the SDK: every command that calls Albus maps to one API operation
and prints the JSON response, so output pipes into jq.
Install
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/albusgroup/albus-cli/master/install.sh | sh
Windows (PowerShell):
irm https://raw.githubusercontent.com/albusgroup/albus-cli/master/install.ps1 | iex
Pin a version:
curl -fsSL https://raw.githubusercontent.com/albusgroup/albus-cli/master/install.sh | ALBUS_CLI_VERSION=0.2.0 sh
The installer uses, in order: uv tool install, pip install --user, or
pip inside a conda environment. It does not download OS-specific binaries.
To install directly instead:
uv tool install albus-cli
# or
pip install --user albus-cli
Authentication
Sign in with a browser, which stores a session per base URL and renews it as it expires:
albus login
albus whoami
albus logout
albus health is the one command that needs no credential, matching its empty
security in api/openapi.yaml: run it first to tell an unreachable API from
an unauthenticated one. albus status reports which credential is in effect
and whether Albus accepts it, as JSON, exiting 0 either way — it is the one
command to run to find out where you stand. albus login --no-browser prints
the authorization URL instead of opening it, for a coding agent signing in the
user in front of it.
Or export an organization API key, which wins over a stored session so CI and agent harnesses need not touch disk:
export ALBUS_API_KEY=... # organization API key
export ALBUS_BASE_URL=http://localhost:8080/api # optional; defaults to prod
--base-url overrides ALBUS_BASE_URL, and --timeout bounds each request
(a waiting sessions run long-polls and is exempt).
albus login opens a browser on this machine and listens on
127.0.0.1:8484-8487; on a headless host, forward those ports or export
ALBUS_API_KEY instead. The
session is written to $ALBUS_CONFIG_DIR/credentials.json, else
$XDG_CONFIG_HOME/albus/credentials.json, else ~/.config/albus/.
Operations whose security in api/openapi.yaml lists bearerAuth only,
such as /whoami, /tokens, and /invites, need the browser session.
albus whoami, albus tokens, and albus invites use it even when
ALBUS_API_KEY is exported, and say to run albus login when there is none.
Sign in first, then albus tokens create to mint the key that
ALBUS_API_KEY carries.
Commands
albus health
albus --version
albus login
albus login --no-browser
albus whoami
albus logout
albus status
albus sessions run my-session -p "summarize the incident" \
--agent-name support-triage --model gemini-3.6-flash \
--provider gemini --credential albus.sh/secrets/gemini-key
albus sessions run my-session -p "and the follow-up?" \
--agent-name support-triage --agent-file agent.json --no-wait
albus sessions list
albus sessions get my-session --limit 20
albus sessions audit my-session --after "$cursor"
albus sessions delete my-session
albus secrets list
albus secrets create gemini-key --value ... # or pipe the value on stdin
albus secrets get gemini-key
albus secrets update gemini-key < value.txt
albus secrets delete gemini-key
albus agents list
albus agents get support-triage
albus agents revision support-triage "$revision"
albus tokens list
albus tokens create ci
albus tokens get "$id"
albus tokens delete "$id"
albus invites create teammate@example.com
tokens create prints the only copy of the key value the API ever returns;
list and get return metadata alone.
invites create invites a person by email, and they get their own
organization on first sign-in. CreateInviteRequest's role and
organization_id have no flags: one user is one organization for the beta.
sessions run waits for the assistant response by default; pass --no-wait
to return as soon as the invocation is accepted, or --wait-timeout to bound
the wait server-side. Pass --idempotency-key to make a run retry-safe. The
JSON output carries the effective idempotency_key, whether supplied by the
caller or generated by the server — absent only if something between the CLI
and Albus strips the response header on a run that supplied no key.
--agent-file takes a JSON object shaped like the API's AgentConfig and
covers what the flags do not (MCP servers, provider URL overrides):
{
"model": { "name": "gemini-3.6-flash" },
"mcp_servers": [
{ "name": "github", "url": "https://mcp.example.com/mcp" }
]
}
Documentation
| Reader | URL |
|---|---|
| A person | https://docs.albus.sh |
| A coding agent | https://docs.albus.sh/agents/docs.md |
The CLI prints both, so whoever is reading its output has the URL that is theirs.
Development
The CLI is developed in the private Albus repository, next to the
api/openapi.yaml contract and the SDK it is built on, and each release is
copied to the public albusgroup/albus-cli repository. That repository accepts
issues, not pull requests — see CONTRIBUTING.md.
make check # ruff, mypy --strict, pytest
Release files for albus-cli 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| albus_cli-0.2.0.tar.gz | 81.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| albus_cli-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 110.4 kB
Release files / albus_cli-0.2.0.tar.gz
| Download URL | albus_cli-0.2.0.tar.gz |
|---|---|
| Size | 81.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aff80f7a5bbb1ec705fca23fb325e6175099d9cd94c67fdde9754ba137f53f55
|
|
BLAKE2b-256 checksum How to use checksums |
ce7e91e78b4d170660187caff6fb6bbca8f6d66891077ba1dff771d081bb8c08
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / albus_cli-0.2.0-py3-none-any.whl
| Download URL | albus_cli-0.2.0-py3-none-any.whl |
|---|---|
| Size | 28.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b1cb642b9c4cf781b1a694c7bfbc309d154c7768e6fa58cd03e3b7091c426547
|
|
BLAKE2b-256 checksum How to use checksums |
7a36cc24c508d92f3d261f540493b3a6ab4c261349e3591ea6870ad7435d6a7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|