OpenMinion
Local-first runtime for tool-using AI agents.
GitHub · Website · Docs · Quick Start · Interactive CLI · X
openminion is a public alpha release of a Python-first, local-first
runtime for tool-using agents.
One shared runtime spans CLI work, Python embedding, HTTP API turns, daemon-backed workflows, tools, sessions, and local integrations, so the system stays inspectable instead of disappearing behind wrappers.
Trust and Brand Safety
- Official GitHub:
https://github.com/openminion - Official website:
https://www.openminion.com - Official X account:
https://x.com/OpenMinion
OpenMinion has no official token, coin, NFT, airdrop, staking program, treasury product, or investment offering. Any claim otherwise is unauthorized and should be treated as a scam.
At a glance
- Current public package line: run
openminion versionor readopenminion.base.version.OPENMINION_VERSION - Best fit today: bounded local workflows, operator-driven runs, tool use on your own machine, and contributors who want a runtime they can inspect
- Main surfaces: CLI, Python API, HTTP API, daemon-backed workflows, tools, providers, sessions, and diagnostics
- Not the claim: OpenMinion is still under active development and should not yet be treated as a finished "give it a complex task and walk away" autonomy system
What OpenMinion provides
openminion currently provides:
- Runtime core: one local runtime with explicit brain, memory, tool, channel, and service ownership boundaries
- User surfaces: interactive CLI, runtime admin, diagnostics, export, and session-aware operator workflows
- Extension surfaces: package-owned tool hosting, plugin loading, MCP integration, and skill loading
- Integration surfaces: Python/library imports, structured API/runtime entrypoints, configuration profiles, and external service adapters
- Contributor surfaces: examples, scripts, tests, compatibility policy, and repo-local docs for people who want to extend the stack
What OpenMinion does not provide yet
OpenMinion is already useful for bounded local work, but it does not yet claim to be:
- a finished "give it any complex task and walk away" autonomy system
- a hosted control plane or managed cloud service
- a black-box agent wrapper that hides runtime state from the operator
- a token, coin, NFT, airdrop, or investment product of any kind
Quick start
If you only want one successful local run, start here:
export OPENMINION_HOME=.
export OPENMINION_DATA_ROOT="$OPENMINION_HOME/.openminion"
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .
python -m openminion config init
python -m openminion run "hello"
python -m openminion tools list
python -m openminion doctor --check-turn --json
If you want the interactive surface next, launch the default interactive CLI:
python -m openminion
The root command is the only interactive entry point. See
docs/terminal-surfaces.md for the renderer and
resource-command map.
Contributor setup
- Before making code changes, read CONTRIBUTING.md and CODE_QUALITY.md.
- Keep changes focused, include validation results, and avoid unrelated refactors in the same PR.
- Use Python 3.11+ and a recent
pipwith PEP 660 editable-install support.
Local tooling baseline:
make dev-install
make hooks-install
make lint
Core commands:
make fixmake formatmake lintmake testmake checkmake hooks-run
Validation guidance:
- use task-scoped pytest or integration commands plus repo-wide
ruff check .for normal slice work, - use
make lintbefore feature sign-off, - treat
make checkas an optional broad integration sweep, not the default per-task closeout command during multi-agent work, - see the package-local testing and validation docs for the public validator inventory and which guards are blocking vs advisory.
Temporary artifact rule:
- broad cleanup file lists, ledgers, scan outputs, and scratch JSON/TSV/TXT artifacts belong in the repository scratch area rather than in package source or docs roots,
- durable evidence belongs in maintained project documentation or tracked validation artifacts rather than in package source or package docs roots.
Package layout
src/openminion/
api/ # public API/runtime entrypoints
base/ # foundational contracts and shared primitives
cli/ # CLI entrypoints and interactive UX
modules/ # feature and subsystem owners
services/ # cross-owner runtime orchestration
tools/ # tool runtime host + tool families
docs/
README.md
standalone-claim-alignment.md
certification-readiness-matrix.md
runtime-surfaces.md
examples/
scripts/
tests/
API_COMPATIBILITY.md
RELEASING.md
Tool package note:
src/openminion/tools/now contains both runtime host files and module-like per-tool folders.- Each per-tool folder maps to a previously standalone
openminion-tool-*package. - Canonical tool imports are
openminion.tools.<tool_folder>.
Docs and release
docs/README.mdis the package-local docs entrypoint.docs/certification-readiness-matrix.mdis the current package-local proof snapshot for the active alpha line.docs/runtime-surfaces.mdmaps the supported CLI, runtime, and Python-library surfaces.docs/terminal-surfaces.mdrecords the canonical terminal product and the resource-command map for retired dashboard areas.docs/long-horizon-project-worker.mdrecords the alpha project-worker substrate, proof shape, and current claim boundary for longer objectives.API_COMPATIBILITY.mdrecords the supported public import roots and compatibility posture.RELEASING.mdrecords the package-local release checks and publish flow.docs/source-tree-owner-map.mdexplains the source-tree layout for contributors who need to go deeper than the public facade.
Interactive CLI
The default openminion invocation is the recommended interactive surface:
-
openminionlaunches the interactive CLI with the default terminal renderer on a TTY.openminion --richexplicitly opts into the Textual shell. -
cat prompt.md | openminionruns one stdin-backed turn and exits without mounting either interactive renderer. -
openminion runis the explicit one-shot command for scripts and JSON. -
Each agent turn shows a
⏺marker, verb-rotating thinking spinner, colored●tool-call markers, and syntax-highlighted code blocks. -
--progress minimaldrops moving frames while preserving bounded status text, and--progress offsuppresses in-flight chrome.--plain-spinnerandNO_COLOR=1also select reduced motion. -
Activity animation defaults to
openminion:braille. Install the optional Unicode catalog withpython -m pip install "openminion[animations]", then runopenminion --animation-provider unicode --animation helixor use/animation list,/animation use unicode:helix, and/animation save unicode:helixinside the interactive CLI. -
Tool blocks longer than 6 lines are truncated to keep scrollback readable:
/expandreprints the latest block,/expand 2selects the second latest, and/expand 0lists all truncated blocks. -
Tool-block verbosity has three levels:
--verbosity quiethides tool blocks but keeps an end-of-turn hidden-call summary.--verbosity normalis the default: 6-line cap plus/expand.--verbosity verboseshows full tool bodies up to a 200-line hard cap.
You can set the same default with
OPENMINION_VERBOSITY=quiet|normal|verbose, then override it live with/quiet,/normal, or/verbose. Failed tool calls show✗ (exit N)in red after the title.For persistent preferences, create
<DATA_ROOT>/focus_prefs.toml(usually~/.openminion/focus_prefs.toml) with flat keys such asverbosity = "quiet",progress = "off",animation_provider = "unicode", oranimation = "helix". Precedence is CLI flag → env → preferences file → default. -
Edit and Write tool calls render inline unified diffs. The same verbosity ladder applies: quiet hides, normal truncates, verbose shows up to 200 lines, and
/expandalways shows the full diff. -
Live tool-execution narration prints a yellow
● Running Bash(ls -la)line while a tool is active, then renders the final tool block below it. Quiet mode suppresses narration but still counts the call in the end-of-turn summary. -
Interactive slash commands include
/animation,/clear,/compact,/cost,/exit,/expand,/help,/init,/mcp,/model,/new,/normal,/quiet,/quit,/readonly,/resume,/sessions,/status,/tools, and/verbose.Other composer affordances:
- prefix
!to run a shell escape; - paste an image-file path to convert it to
[image: <path>]; - add custom slash commands as Markdown files in
.openminion/commands/*.mdor<DATA_ROOT>/commands/*.md; command templates can use$ARGUMENTS,$1..$N,@file, and shell interpolation with!commands.
- prefix
Cross-surface UX flags
These apply uniformly to the interactive CLI, gateway, run, and agent surfaces:
--verbosity {quiet,normal,verbose}controls tool-block fidelity:quiethides tool blocks;normalis the default 6-line cap plus/expand;verboseshows full tool bodies up to a 200-line cap.
--progress {full,minimal,off}controls in-flight chrome:fullis the TTY default with spinner, elapsed time, and interrupt hint;minimalkeeps elapsed time and drops verb rotation;offsuppresses progress chrome.
- Auto-detect: when stdin or stdout is piped,
--progressdefaults tooffso captured output stays clean. Pass--progress fullto override. - Env defaults:
OPENMINION_VERBOSITY=quiet|normal|verboseandOPENMINION_PROGRESS=full|minimal|off. - Shortcut flags remain available:
--no-progressand--no-activity-indicatormap to--progress off;--plain-spinnermaps to--progress minimal. NO_COLOR=1follows the universal convention by mapping to--progress minimal.
Shared logging conventions
gateway run --quietsuppresses INFO logs for cleaner output.- Override log level without editing config:
OPENMINION_LOG_LEVEL=WARNING. - Keep logs visually secondary in TTY (dim logs); force with
OPENMINION_LOG_COLOR=1, disable withOPENMINION_LOG_COLOR=0orNO_COLOR=1. - Disable CLI colors with
NO_COLOR=1orOPENMINION_COLOR=0; force withOPENMINION_COLOR=1.
Interactive CLI vs gateway loop
gateway runis a runtime/operator path with explicit channel/target/once/idempotency controls.- Use bare
openminionfor conversational UX; usegateway runfor operational testing and deterministic runtime controls. - For any UI integration or plugin, use gateway ingress (
/v1/turn*orGatewayService.run_once) rather than direct agent-service calls. The repository UI gateway contract documents that boundary. - Retired interactive command names are rejected and do not own a separate conversational loop.
Costs and warranty
OpenMinion is provided on an "as is" basis, without warranties or guarantees of
performance, reliability, availability, fitness for a particular purpose, or
cost outcomes. To the extent allowed by law, the project and contributors are
not liable for damages, losses, outages, billing costs, or other consequences
arising from use or malfunction of the software. See LICENSE for the full
legal terms and limitations.
OpenMinion can be configured to call third-party providers that may charge usage fees. You are solely responsible for provider, API, cloud, infrastructure, or similar charges incurred through your configuration or use of the software.
Configuration and deeper docs
The package supports multiple runtime backends, profile-based configuration, built-in tools, plugins, skills, storage, and HTTP/runtime integration. Those details are intentionally kept out of the front page so this README stays a generic public entrypoint.
Use these docs when you want to go deeper:
docs/getting-started.md— package bootstrap and contributor flowdocs/testing-and-validation.md— smoke checks and release-facing validation commandsdocs/runtime-surfaces.md— CLI, runtime, and library surface mapdocs/long-horizon-project-worker.md— alpha project-worker proof shape and current claim boundarydocs/source-tree-owner-map.md— source layout guide for contributorsexamples/README.md— runnable examples and starter templatesAPI_COMPATIBILITY.md— public import and compatibility postureRELEASING.md— package release checklist
License and brand-use boundary
- Source code license:
Apache-2.0 - Brand/trademark grant:
none
The software license grants rights to use, modify, and redistribute the code. It does not grant rights to use the OpenMinion name, logos, branding, website identity, or social identity except for truthful attribution. Forks, clones, and derivative distributions must not present themselves as the official OpenMinion project or imply affiliation, endorsement, or maintenance by OpenMinion contributors unless that is actually true.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openminion-0.0.4.tar.gz.
File metadata
- Download URL: openminion-0.0.4.tar.gz
- Upload date:
- Size: 3.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5894846b11665033abb0b4e6e98bd8c6b24ed39238fafba5a4229686e39b6248
|
|
| MD5 |
569b29c86e6fc54aea9ccbe0dc8682c1
|
|
| BLAKE2b-256 |
ecfca54ed892ea7ecea61e5d48c847fc782d0eb5c38b061c94eaca2562016a4f
|
Provenance
The following attestation bundles were made for openminion-0.0.4.tar.gz:
Publisher:
release.yml on openminion/openminion
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openminion-0.0.4.tar.gz -
Subject digest:
5894846b11665033abb0b4e6e98bd8c6b24ed39238fafba5a4229686e39b6248 - Sigstore transparency entry: 2205721645
- Sigstore integration time:
-
Permalink:
openminion/openminion@0b56d28730b2a9a68d29d852a60950fd3c53645b -
Branch / Tag:
refs/tags/v0.0.4 - Owner: https://github.com/openminion
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0b56d28730b2a9a68d29d852a60950fd3c53645b -
Trigger Event:
push
-
Statement type:
File details
Details for the file openminion-0.0.4-py3-none-any.whl.
File metadata
- Download URL: openminion-0.0.4-py3-none-any.whl
- Upload date:
- Size: 3.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24b0ee5802ed407a9ba36a30b0cbb1358ee9e94bead1e7c86785c833dc39bcb0
|
|
| MD5 |
7f07866ca1ccb69001364e7d567fbced
|
|
| BLAKE2b-256 |
173fdd84a965702a52aebb70380996e3c8f1cba650b61d3ce8637479a70a18ff
|
Provenance
The following attestation bundles were made for openminion-0.0.4-py3-none-any.whl:
Publisher:
release.yml on openminion/openminion
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
openminion-0.0.4-py3-none-any.whl -
Subject digest:
24b0ee5802ed407a9ba36a30b0cbb1358ee9e94bead1e7c86785c833dc39bcb0 - Sigstore transparency entry: 2205721818
- Sigstore integration time:
-
Permalink:
openminion/openminion@0b56d28730b2a9a68d29d852a60950fd3c53645b -
Branch / Tag:
refs/tags/v0.0.4 - Owner: https://github.com/openminion
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0b56d28730b2a9a68d29d852a60950fd3c53645b -
Trigger Event:
push
-
Statement type: