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

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.3.0b0
File Size Uploaded
mandri-0.3.0b0.tar.gz 1.2 MB Details

Built distribution (wheel)

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

Total release size: 2.7 MB

Release files / mandri-0.3.0b0.tar.gz

Download URL mandri-0.3.0b0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
4909b694edea9a9552b6eaec5efe728374a669c89ed3c9386ad9dd6dde04a8ae
BLAKE2b-256 checksum
How to use checksums
f4010f9fba0aa0f089fa66f3f9dd0dda09d71cf6161113db18352ebd6abb52e3
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 Oct 6, 2026.

Transparency log

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

Download URL mandri-0.3.0b0-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
607bd8ff3c40d70347aba787cc3b583efa835033cdddd15fd9ade3699ba970ac
BLAKE2b-256 checksum
How to use checksums
0aa6ab4f61dbb78f25e2b2f6a13fba6be8222ac6c593bfe1cb47df8f5cae72b6
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 Oct 6, 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