Skip to main content
Pre-release

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.1b0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mandri 0.1.1b0
File Size Uploaded
mandri-0.1.1b0.tar.gz 1.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for mandri 0.1.1b0
File Interpreter ABI Platform
mandri-0.1.1b0-py3-none-any.whl Python 3 none any Details

Total release size: 2.5 MB

Release files / mandri-0.1.1b0.tar.gz

Download URL mandri-0.1.1b0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
82d8cfb7c0ad85f7712f16f6cfb285dc39cad00c8d51a653e0f78c4fa3dc13d3
BLAKE2b-256 checksum
How to use checksums
30969c4d14305cd4412e647a4fa243b345ceb325cdbcf6afefd81bdfd687f076
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 27, 2026.

Transparency log

Release files / mandri-0.1.1b0-py3-none-any.whl

Download URL mandri-0.1.1b0-py3-none-any.whl
Size 1.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
03b0c53d4e2724f3f808742389795f0410fb770ee4d623bbb493b7ce6d32ab0c
BLAKE2b-256 checksum
How to use checksums
cf61676cb0e8eee85a38f420792fd68287d101f9da2a53a4ceba90b15536378d
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 27, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page