Skip to main content

BYOK multi-provider AI runtime. Your keys, your compute, your output.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

milna_os-1.0.0.tar.gz (67.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

milna_os-1.0.0-py3-none-any.whl (76.1 kB view details)

Uploaded Python 3

File details

Details for the file milna_os-1.0.0.tar.gz.

File metadata

  • Download URL: milna_os-1.0.0.tar.gz
  • Upload date:
  • Size: 67.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for milna_os-1.0.0.tar.gz
Algorithm Hash digest
SHA256 545ad7029409ae169f79bb05e56d0ce15768d359c402b82472121f59ba6b14cd
MD5 43e1531ca25f19efe40153a1e143a810
BLAKE2b-256 cd7dda77e526788c9c32f671df6cc67d026f94cb8a45f0dfba45b8dabb5a71cc

See more details on using hashes here.

File details

Details for the file milna_os-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: milna_os-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 76.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for milna_os-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9052572aeca2db095d85ea92ec60b3598309813d03117e3803aa0f6735da3ec4
MD5 cfbd6dbe62edc1b098e2e673bc4bd058
BLAKE2b-256 624a54882dad9aec7a9aec221e38b06cf1912709512bb261d9065adfafee3f24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page