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.1.0.tar.gz (73.3 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.1.0-py3-none-any.whl (81.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: milna_os-1.1.0.tar.gz
  • Upload date:
  • Size: 73.3 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.1.0.tar.gz
Algorithm Hash digest
SHA256 93b68b7e8c0ac89812dafd493814e0a69293ab462f7a105e4df8614ad9cb78e5
MD5 03d32481e4a5656d93a25958e1d347c1
BLAKE2b-256 b68495c6b5ca3c57d202a67d0211adecca1172197e4f76118e34ff866ae9a03a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: milna_os-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 81.6 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3aefe52c16139643528967181af75755d09663e8b27c2d84efd151c77e846854
MD5 69c9766d699f6d0ee0d3fb3425b3d4b5
BLAKE2b-256 3dfdbe4ded948444062085e30ce9dd5e81a7cb3d01670f772c6667e2dd4c52f6

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