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

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.7.8

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.7.8
File Size Uploaded
miniouto-0.7.8.tar.gz 5.9 MB Details

Built distribution (wheel)

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

Total release size: 6.1 MB

Release files / miniouto-0.7.8.tar.gz

Download URL miniouto-0.7.8.tar.gz
Size 5.9 MB
Tags Source
SHA-256 checksum
How to use checksums
441470f5877b663128864932a8d1b8ef275b997fafd8e9af33d0125d7149be58
BLAKE2b-256 checksum
How to use checksums
0fbf3c7e3b1f1aefb7d9891a8d98fbfd6e2028d3874115606f1fb8f2e56dda83
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 5, 2026.

Transparency log

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

Download URL miniouto-0.7.8-py3-none-any.whl
Size 143.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
428bf49ef807a4e61d1423b69d25ce075a562084ed2bb59e69304f74a115ea7d
BLAKE2b-256 checksum
How to use checksums
63dfc707207cc829124eaafa0d9be57c366c3ecc69d4b98d77fd118e87cc53e5
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 5, 2026.

Transparency log

Release history Release notifications | RSS feed

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

This release

0.7.8 This release

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