Skip to main content

miniouto

miniouto logo

A minimal, file-driven CLI agent harness built on coreouto.

Three principles:

  1. Minimalism — No bloat. Extend with styles.
  2. Automation-friendly — Full CLI; TUI is optional.
  3. Fluidity — Adapts to any environment.

Preview

miniouto preview

Install

uv tool install miniouto
# or
pip install miniouto

License

Apache License 2.0

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:

  1. miniouto chat --model <name> (per-call override)
  2. settings.model (legacy per-session override; cleared whenever the TUI model picker saves)
  3. provider.default_model (set by provider add --default-model, provider custom add --default-model, or the TUI model chip)
  4. error — no model can be inferred

The subagent can run on a different provider/model. Its provider is chosen by:

  1. miniouto chat --subagent-provider <name> (per-call override)
  2. settings.subagent_provider (set via miniouto subagent set --provider)
  3. inherit outo's provider

Its model is chosen by:

  1. miniouto chat --subagent-model <name> (per-call override)
  2. settings.subagent_model (set via miniouto subagent set --model)
  3. the subagent provider's default_model
  4. 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 — active provider, model (legacy), style, session, theme, subagent_provider, subagent_model, subagent_reasoning
  • style/<name>.md — style documents
  • sessions/<name>.json — conversation history
  • logs/ — 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.0

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

Source distribution (sdist)

Source distribution for miniouto 0.8.0
File Size Uploaded
miniouto-0.8.0.tar.gz 5.9 MB Details

Built distribution (wheel)

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

Total release size: 6.1 MB

Release files / miniouto-0.8.0.tar.gz

Download URL miniouto-0.8.0.tar.gz
Size 5.9 MB
Tags Source
SHA-256 checksum
How to use checksums
be028391c2b4e4df5693bc8a756d01a3adcdb5e4f9432e6e137744ba2d551de9
BLAKE2b-256 checksum
How to use checksums
6f1e9309f9a6c2f1db86bdd66362f53f2c27fa87f26bc7e22609e4d63d779c5c
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 13, 2026.

Transparency log

Release files / miniouto-0.8.0-py3-none-any.whl

Download URL miniouto-0.8.0-py3-none-any.whl
Size 152.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ecc965af5cca100a111e4b7d5d4e566b9eb348f1f83755d882ce59321f58bf85
BLAKE2b-256 checksum
How to use checksums
424c9d949dac082e0010fc83b595b5eac3b5a756199d6947caa897190aa0e1f7
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 13, 2026.

Transparency log

Release history Release notifications | RSS feed

0.8.2

2 release files

0.8.1

2 release files

This release

0.8.0 This release

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

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