This release is a pre-release and may not be stable for production use.
Mandri
Mandri is a local control plane for AI agents. It connects a desktop client and a command-line interface to a local daemon that manages sessions, providers and agent runtimes.
This is beta software. Interfaces may change between beta releases.
Installation
Install the Python package into an isolated tool environment with Python 3.13:
uv tool install --python 3.13 "mandri==0.1.0b0"
The package provides two commands:
mandri --help
mandri-daemon --help
mandri-daemon serve
The daemon stores configuration and its database in ~/.mandri. Use
--base-dir to select a different data directory. Its default address is
http://127.0.0.1:8787.
Provider setup
Register a provider and enter its API key at the interactive prompt:
mandri provider add openrouter
mandri provider list
mandri provider models openrouter
Credentials are verified when added. Use --key "$OPENROUTER_API_KEY" to
supply a key from an environment variable, or --no-verify to skip the initial
verification. To verify again later, run mandri provider verify openrouter.
The provider kind is inferred when its name matches a supported kind:
openrouter, opencode, opencode_go, openai, anthropic, gemini,
ollama, lm_studio or custom. For a different name, pass --kind:
mandri provider add my-provider --kind openrouter
For ollama, lm_studio and custom, also supply the API base URL with
--base. All provider commands accept --base-dir to select a data directory
other than ~/.mandri; use the same directory when launching a harness.
Remove unused credentials with mandri provider remove <name>.
Run a harness
Choose a model ID from mandri provider models <name>, then launch a harness:
mandri run --model "openrouter/<model-id>" codex
Replace <model-id> with the exact model ID returned by the provider, including
any slashes. The full reference is <provider-name>/<model-id>; for a provider
registered as my-provider, use my-provider/<model-id>.
Supported harnesses are codex, claude, opencode, agy and pi. Codex uses the
runtime bundled with Mandri. Claude Code and OpenCode must be installed and
available on PATH; agy requires the Antigravity CLI and pi requires the Pi CLI.
mandri run starts the local daemon if needed and runs the harness in the
foreground through the Mandri gateway. It uses the current working directory
unless --cwd is set. Put Mandri options before the harness name, and pass
harness-specific arguments after --:
mandri run --model "openrouter/<model-id>" --cwd /path/to/project codex
mandri run --model "openrouter/<model-id>" --effort high claude
mandri run --model "openrouter/<model-id>" codex -- --help
Reasoning effort support depends on the selected model. mandri run requires
host execution with privacy mode set to none; if the configured protection
requires managed execution, use mandri sessions start instead.
License
Mandri is licensed under Apache-2.0. See LICENSE for details.
Metadata
Release files for mandri 0.1.0b0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mandri-0.1.0b0.tar.gz | 1.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mandri-0.1.0b0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.5 MB
Release files / mandri-0.1.0b0.tar.gz
| Download URL | mandri-0.1.0b0.tar.gz |
|---|---|
| Size | 1.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2b918cabdf839c50510cb144f7c84ec36bea70c857f687dd9dc2d3c04d921c5a
|
|
BLAKE2b-256 checksum How to use checksums |
5ac2a7e56d0e5b8b42be672f4c770343f6c03d0a4a026851d881127a6c710e9e
|
| 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 26, 2026.
Transparency logRelease files / mandri-0.1.0b0-py3-none-any.whl
| Download URL | mandri-0.1.0b0-py3-none-any.whl |
|---|---|
| Size | 1.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
24aeb20ce91133e9bb918a4ea1338fec9a4130364cf3afaa8ce8174c24b49c82
|
|
BLAKE2b-256 checksum How to use checksums |
4d4e00c4c0e99606ee3e1263c8159f0d9c595ec4d0dcde1296a35f2e3fc0404d
|
| 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 26, 2026.
Transparency log