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.2.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.2.0b0
File Size Uploaded
mandri-0.2.0b0.tar.gz 1.2 MB Details

Built distribution (wheel)

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

Total release size: 2.7 MB

Release files / mandri-0.2.0b0.tar.gz

Download URL mandri-0.2.0b0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
b8e8e1ac5b78165a24954b90b420c36e93b147cf24a19a6d9e33219fa7032273
BLAKE2b-256 checksum
How to use checksums
c5bd806a339e2fe20e40a05fb1e3790daa5dfd9b4effb8715c38c08a3f192ee8
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 3, 2026.

Transparency log

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

Download URL mandri-0.2.0b0-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
b1cfcab7c62d556be0d4f3c9a4d4f2240edc4c81c07979a5d67e620b0cee7ded
BLAKE2b-256 checksum
How to use checksums
9b888f27b328d6bf7222b132570b698a9b287fa3856e7143abfe301b2693b142
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 3, 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