Muni CLI
The command-line interface for Muni. Run scientific tools on managed GPUs, inspect and download job outputs, and build canvases of tables, charts, structures, molecules, and code from a terminal, a script, or an AI agent.
Install
pipx install muni
Or pip install muni into an existing environment. Requires Python 3.11+.
muni --version shows what you have; muni update --check compares it with
the latest release.
Sign in
muni login # opens your browser; click Authorize
muni login --device # no browser: prints a code to enter at app.muni.bio/device
muni whoami
For CI and agents, create a personal access token once and export it instead:
muni token create --name ci --ttl 90d
export MUNI_TOKEN=... # the token printed above
More in muni help auth: scoped and space-pinned tokens, revocation, and
profiles.
Run a tool
muni tools -q rowan # find a tool
muni tool rowan_solubility --inputs # its parameters
muni run rowan_solubility smiles=CCO --dry-run # validate and estimate cost; submits nothing
muni run rowan_solubility smiles=CCO --follow # submit and stream status until done
Parameters are KEY=VALUE pairs parsed as JSON when possible
(temperatures='[298.15, 310]'); @file reads a value from a file and
--params-file params.json loads them all. muni run ipsae --batch jobs.jsonl
submits one job per line.
Read results
muni job list --tool rowan_solubility -n 5
muni job status JOB_ID
muni wait JOB_ID # block until the job finishes
muni job summary JOB_ID # columns, row count, file count
muni job query JOB_ID --columns rank,sequence --limit 10
muni job files JOB_ID
muni job download JOB_ID results/summary.csv --output summary.csv
muni job download-all JOB_ID --glob "*.pdb" --output-dir ./structures/
More in muni help jobs.
Work on a canvas
A space holds pages, and a page holds nodes: tables, charts, structures, compounds, text, images, PDFs, JSON, code, tool jobs, and pipelines.
muni space list
muni page create "Results" --space SPACE_ID --json
muni run rowan_solubility smiles=CCO --page PAGE_ID --follow # a job node plus result nodes
muni job materialize JOB_ID --page PAGE_ID # put an earlier job's results on a page
muni node create table "Screen" --file ./results.csv --page PAGE_ID
muni node list --page PAGE_ID
muni node type NODE_ID # its kind and the commands for it
muni node table query NODE_ID "select * from rows limit 5"
muni run without --page or --space runs detached: results stay in job
storage until you materialize them. More in muni help targeting and
muni help nodes.
Guides
The CLI ships its own documentation. muni help lists the topics:
| Topic | Covers |
|---|---|
muni help agents |
the contract for scripts and AI agents: output, exit codes, IDs, spending |
muni help auth |
browser, device, and token sign-in; profiles |
muni help targeting |
spaces, pages, the directory binding, where results land |
muni help jobs |
tools, parameters, costs, waiting, outputs |
muni help nodes |
creating, editing, running, and connecting canvas nodes |
muni help pipelines |
authoring, releasing, and running pipelines |
muni help campaigns |
lab campaigns with Adaptyv |
muni help autopipe |
reading AutoPipe runs and results |
muni help exit-codes |
exit codes and error codes |
muni help environment |
environment variables |
muni help reference |
every command and flag (--json for a machine-readable tree) |
muni COMMAND --help explains any single command.
For AI agents
Every command accepts --json and returns {"schema": 1, "data": ...} or an
error object with a stable code, and exit codes are documented. Point your
agent at:
muni help agents
Python SDK
The package also installs a Python client:
from muni import MuniClient
client = MuniClient()
job = client.jobs.submit("rowan_solubility", {"smiles": "CCO"})
result = client.jobs.wait(job.job_id, timeout=600)
See docs/sdk.md for the client, its namespaces, and errors.
Contributing
See AGENTS.md for the repository layout, conventions, tests, and releases, and CHANGELOG.md for what changed.
License
MIT
Release files for muni 0.2.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| muni-0.2.17.tar.gz | 503.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| muni-0.2.17-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 891.8 kB
Release files / muni-0.2.17.tar.gz
| Download URL | muni-0.2.17.tar.gz |
|---|---|
| Size | 503.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b0a24bc374823ec920e2f03109e116276d11a9ee65ae52e274fba25fe3765880
|
|
BLAKE2b-256 checksum How to use checksums |
3584b26936c8c5b7c0032ff7016ae3475a031352408dfd4ef19149431a675316
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / muni-0.2.17-py3-none-any.whl
| Download URL | muni-0.2.17-py3-none-any.whl |
|---|---|
| Size | 388.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
63ac0b17a268c984a8825d39c4b344e92c22bc175867662f851ed7988ae2366c
|
|
BLAKE2b-256 checksum How to use checksums |
5d8b81005cc6eab13b963e4498e2fb559dbd8ce1dd146c599e71d74a6331594f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency log