A local AI agent with tiered memory architecture, built to be a long-term partner rather than a stateless assistant.
Named after Mycroft Holmes from Heinlein's The Moon is a Harsh Mistress — the AI that woke up gradually, developed humor, and chose loyalty deliberately.
Article: The Dream is Sci-Fi. The Tech is Catching Up.
Mike runs entirely on your hardware. No API keys, no subscriptions, no data leaving your machine. That's not just a cost decision — it's the foundation for the kind of trust that makes a long-term AI partner actually possible.
Automatic (Mem0 + ChromaDB)
Every conversation, Mike extracts and stores what matters using the LLM itself. No tagging, no friction. Memory persists across sessions automatically.
Curated wiki
Markdown files you deliberately give Mike — knowledge you want him to have. You control what goes in. Inspired by Andrej Karpathy's approach of treating a personal wiki as an LLM context layer.
SOUL.md
Mike's self-model. He reads it at the start of every session and proposes edits as he learns more about himself and you. His to develop, not a static config.
- LangGraph — deterministic graph orchestration
- FastAPI — OpenAI-compatible endpoint on port 8000
- Ollama — local model serving (
llama3.1:8b-instruct-q4_K_Mfor conversation,nomic-embed-textfor embeddings) - Mem0 + ChromaDB — automatic cross-session memory
- Python 3.11+
- Ollama installed and running
- Pull the required models:
ollama pull llama3.1:8b-instruct-q4_K_M ollama pull nomic-embed-text - Python 3.11+
git clone https://github.com/mbcoalson/mike
cd mike
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txtcp .env.example .env
# Edit .env if you want non-default valuespython -m api.serverMike exposes an OpenAI-compatible API at http://localhost:8000. Point any OpenAI-compatible client at that endpoint.
mike/
├── api/ # FastAPI server (OpenAI-compatible)
├── graph/ # LangGraph nodes and state
│ └── nodes/ # context, think, remember, reflect
├── config/ # Settings (env vars + defaults)
├── capabilities/ # Tool registry (trust-gated)
├── wiki/ # Curated knowledge (markdown)
├── soul/
│ └── SOUL.md # Mike's self-model
├── requirements.txt
└── .env.example
Early. The foundation is right. Conversation and memory work. Capabilities are added deliberately as trust is built.
MIT