Milna OS
Powered by Kilonova
A multi-model AI terminal assistant that runs your keys, your compute, your output — no subscriptions, no data leaving your machine without your knowledge.
Milna fires your prompt across all active AI legs in parallel, reconciles their outputs into a single synthesized response, and lets you build persistent knowledge bases (DOTs) from your own documents.
What it does
- Multi-leg parallel inference — Anthropic, OpenAI, Gemini, and local Ollama run simultaneously. Responses are reconciled, not averaged.
- DOT (Document of Truth) — Ingest a folder of PDFs into a persistent, structured knowledge base. Load it as a context anchor for any conversation.
- BYOK — Bring your own API keys. They live in your OS credential store, never on disk in plaintext.
- Free local fallback — Ollama on localhost runs for free when cloud legs are unavailable or too expensive.
- Session logging — Every turn is written to disk as markdown. Full audit trail.
- No subscriptions. No compute surcharge. Remember the days when you bought something and you just... owned it? This is a tool. I have a hammer and I don't pay by the nail. Your output is yours — never gated, never watermarked.
Requirements
- Python 3.11+
- Ollama (optional but recommended — free local inference)
- At least one API key: Anthropic, OpenAI, or Gemini
Install
pip install milna-os
Python 3.11+ required. On Windows, keys are stored in Windows Credential Manager. On Mac/Linux, the OS keychain is used — never on disk in plaintext.
Run
milna
First run: Milna will prompt you to add an API key.
To add or update a key at any time:
milna --add-key
Source
git clone https://github.com/MilnaOS/milna-os.git
cd milna-os
pip install -e .
Commands
| Command | Description |
|---|---|
/load <path> |
Load a PDF, .md, or .txt file into conversation context |
/load <folder> |
Pick from files in a folder |
/fetch <url> |
Fetch a web page into conversation context |
/webseed <topic> <url> |
Extract entities from a web page into a DOT |
/webseed <topic> <url> --follow |
Crawl linked pages (depth 1, up to 20 by default) |
/webseed <topic> <url> --depth <n> |
BFS crawl N levels deep |
/webseed <topic> <url> --force |
Re-fetch all URLs, ignoring saved crawl state |
/ingest <folder> |
Build a persistent knowledge base (DOT) from PDFs |
/ingest <folder> --deep |
Deep distillation — richer extraction, higher cost |
/ingest <folder> --topic <name> |
Custom topic name for the DOT |
/ingest --rebuild <topic> |
Re-extract entity records from existing distilled docs |
/ingest --rebuild <topic> --force |
Wipe and re-extract all records |
/ingest --rebuild <topic> --force --deep |
Wipe, re-extract with deep distillation |
/kb |
List available knowledge bases |
/kb <topic> |
Load a DOT as conversation context anchor |
/deep |
Enable deep distillation for the next message |
/mode |
Show current processing mode |
/mode <name> |
Switch mode: potato / economy / standard / blade |
/legs |
Show active legs and their status |
/keys |
Add or update API keys |
/ollama |
List available Ollama models |
/ollama <model> |
Switch active Ollama model |
/reset |
Clear conversation history |
/help |
Show command list |
exit / quit |
Shutdown |
Modes
| Mode | Isolates per leg | Use when |
|---|---|---|
potato |
1 | Free local-only, Ollama routes everything |
economy |
1 | Light cloud usage, cost-conscious |
standard |
2 | Default — balanced quality and cost |
blade |
3 | Maximum quality, highest cost |
Building a DOT
A DOT (Document of Truth) is a structured knowledge base built from source documents. Once built, it loads instantly as a permanent context anchor — models treat it as verified reference material, not something to hallucinate around.
# Ingest a folder of PDFs
/ingest D:/my-documents/research --topic my_research
# Load the DOT into conversation
/kb my_research
# Ask questions grounded in your documents
> summarize the key findings from the research
DOTs are stored in kb/<topic>/ and persist between sessions. Incremental ingest adds new documents without re-processing existing ones.
Project structure
milna.py — CLI entry point
kilonova/
core/
engine.py — ConversationEngine: parallel firing + reconciler
legs.py — Leg registry, key inventory, provider wiring
reconciler.py — Multi-role synthesis
mode.py — Mode controller (potato/economy/standard/blade)
session_log.py — Turn logging to disk
providers/
anthropic_provider.py
openai_provider.py
gemini_provider.py
ollama_provider.py
tools/
loader.py — PDF / .md / .txt extraction
ingest.py — DOT build pipeline
kb/ — Built knowledge bases (gitignored)
session_logs/ — Turn transcripts (gitignored)
prompts/ — Loadable system prompt files
Local-only operation
Run fully offline with Ollama:
ollama serve
ollama pull qwen2.5:3b
python milna.py --mode potato
No API keys required. No data leaves your machine.
License
Proprietary — source available for inspection. See LICENSE file for full terms. Licensing inquiries: remy.black.7.77@gmail.com
BYOK — your keys, your compute, your output.
Metadata
Release files for milna-os 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| milna_os-1.1.0.tar.gz | 73.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| milna_os-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 154.9 kB
Release files / milna_os-1.1.0.tar.gz
| Download URL | milna_os-1.1.0.tar.gz |
|---|---|
| Size | 73.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
93b68b7e8c0ac89812dafd493814e0a69293ab462f7a105e4df8614ad9cb78e5
|
|
BLAKE2b-256 checksum How to use checksums |
b68495c6b5ca3c57d202a67d0211adecca1172197e4f76118e34ff866ae9a03a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Release files / milna_os-1.1.0-py3-none-any.whl
| Download URL | milna_os-1.1.0-py3-none-any.whl |
|---|---|
| Size | 81.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3aefe52c16139643528967181af75755d09663e8b27c2d84efd151c77e846854
|
|
BLAKE2b-256 checksum How to use checksums |
3dfdbe4ded948444062085e30ce9dd5e81a7cb3d01670f772c6667e2dd4c52f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Security for milna-os 1.1.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.