miniouto
A minimal, file-driven CLI agent harness built on coreouto.
Three principles:
- Minimalism — No bloat. Extend with styles.
- Automation-friendly — Full CLI; TUI is optional.
- Fluidity — Adapts to any environment.
Preview
Install
uv tool install miniouto
# or
pip install miniouto
License
Quick start
# Either add a custom provider by hand:
miniouto provider custom add \
--name openai \
--api-key sk-... \
--base-url https://api.openai.com/v1 \
--default-model gpt-5.5 # optional; used when chat --model is not given
# Or browse the lma (llm-model-api) catalog and add from there:
miniouto provider providers # see all 144 catalog providers
miniouto provider add Anthropic --api-key sk-ant-... # adds it with the first catalog model
miniouto provider default openai
miniouto style set default
miniouto chat "hello"
miniouto # TUI mode
Computer use (GUI control)
The outo agent can operate GUI applications inside a virtual headless display (via py-Vwayland): launch apps, take screenshots, click, type, scroll, drag. Enabled automatically on Linux x86_64 (glibc ≥ 2.28) — no setup needed; the tool simply doesn't appear on unsupported platforms. Set MINIOUTO_COMPUTER=0 to disable it explicitly. Requires a vision-capable model so the agent can see its screenshots.
Model resolution
The active model is chosen by the first match in:
miniouto chat --model <name>(per-call override)settings.model(legacy per-session override; cleared whenever the TUI model picker saves)provider.default_model(set byprovider add --default-model,provider custom add --default-model, or the TUI model chip)- error — no model can be inferred
The subagent can run on a different provider/model. Its provider is chosen by:
miniouto chat --subagent-provider <name>(per-call override)settings.subagent_provider(set viaminiouto subagent set --provider)- inherit outo's provider
Its model is chosen by:
miniouto chat --subagent-model <name>(per-call override)settings.subagent_model(set viaminiouto subagent set --model)- the subagent provider's
default_model - inherit outo's model (only when no subagent provider is set; otherwise error)
A model-only override (no subagent provider) is also valid — the subagent then runs outo's provider with the overridden model.
The subagent's reasoning effort resolves as: --reasoning flag (per-call, applies to both outo and subagent) > settings.subagent_reasoning (via miniouto subagent set --reasoning) > the subagent provider's reasoning_effort.
Commands
| Command | Purpose |
|---|---|
miniouto chat "prompt" |
One-shot chat turn |
miniouto |
TUI mode |
miniouto status |
Show current configuration |
miniouto provider providers/models/add |
Browse the lma catalog and add providers from it |
miniouto provider custom add |
Add a custom provider by hand (api_format, base_url, api_key, default_model) |
miniouto provider list/remove/default |
Manage saved providers |
miniouto style list/set/add/update/show |
Manage style documents (update re-seeds bundled + re-fetches all repo styles) |
miniouto skill list/show |
List/show skills from ~/.agents/skills/ |
miniouto subagent show/set/clear |
Manage the subagent's provider/model override (empty = inherit outo's) |
chat flags
| Flag | Effect |
|---|---|
--name |
Session name (persists to ~/.miniouto/settings.toml) |
--provider |
Override the active provider for this call |
--model |
Override the resolved model for this call |
--style |
Override the active style for this call |
--subagent-provider |
Override the subagent's provider for this call |
--subagent-model |
Override the subagent's model for this call |
--max-tokens |
Cap output tokens |
--temperature |
Sampling temperature |
--reasoning |
Override reasoning for this call (effort level / on / none). Default: provider setting, else lma model default |
--continue / -c |
Prepend the session's previous history |
--answer-only / -a |
Print only the final answer (no session marker, no loop events, no finish marker) |
--with-session |
Print only the session marker + final answer (no loop events, no finish marker) |
Storage
Everything lives under ~/.miniouto/:
providers.toml— provider configs (one top-level TOML table per provider:api_format,base_url,api_key,default_model,source)settings.toml— activeprovider,model(legacy),style,session,theme,subagent_provider,subagent_model,subagent_reasoningstyle/<name>.md— style documentssessions/<name>.json— conversation historylogs/— reserved (currently unused)
Skills live outside this tree, at ~/.agents/skills/<name>/SKILL.md (the Anthropic convention).
Override the root with the MINIOUTO_HOME environment variable.
Release files for miniouto 0.8.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| miniouto-0.8.2.tar.gz | 6.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| miniouto-0.8.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.1 MB
Release files / miniouto-0.8.2.tar.gz
| Download URL | miniouto-0.8.2.tar.gz |
|---|---|
| Size | 6.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e334be9dc9d599cbf9f1cb9e7622efb111b9d5917dac79d0795f658ffe9e3e15
|
|
BLAKE2b-256 checksum How to use checksums |
048a126a8d5b4821431acc40d984b36fef6bc350a281d7bca2fa45fd3112734a
|
| 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 19, 2026.
Transparency logRelease files / miniouto-0.8.2-py3-none-any.whl
| Download URL | miniouto-0.8.2-py3-none-any.whl |
|---|---|
| Size | 170.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5e4767cbd94d9e29442e465a618582155f3b341193efd3e5ad848fa1f09aa7a9
|
|
BLAKE2b-256 checksum How to use checksums |
97ede029a5dec31691c9397c3de3108b813566619f87b1de772ae327e02b960d
|
| 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 19, 2026.
Transparency log