Research / Build Log
ANNIE: A Local Reasoning Assistant Interface
The first generation of ANNIE connected local models with conversation memory, search, files, images, and voice. Its public archive documents the foundation for later ANNIE systems.
Published on . Updated on .
Focus
A practical interface for local reasoning models, routing, vision tools, and long-running assistant workflows.
System Type
Personal AI infrastructure with local models, voice, file handling, and source-aware responses.
ANNIE is a local reasoning assistant built to run language models on personal hardware. The original interface included model routing between magistral:24b for heavier reasoning and qwen3:14b for lighter conversation, with a llama3 router supporting automatic selection.
The desktop interface brings text, images, files, and voice into the same workspace. Its vision tools use LLaVA and Tesseract OCR to process images and extract text. Python file readers handle supported documents and logs, while the voice tools provide speech recognition and speech output. The Tkinter interface streams replies and displays formatted code alongside model-generated reasoning output where supported.
ANNIE combines conversation storage with embedding-based retrieval and a FAISS vector index. Local files and prior conversations provide context, while optional Google or DuckDuckGo search supplies fresh web results. Model inference runs locally, with network access used for the configured search integrations.
Inside ANNIE

The original ANNIE desktop chat interface.

Image analysis and a streamed response in the ANNIE interface.
Original Release
Built in June and July 2025, the first ANNIE harness established the foundation for my later local AI systems. The public archive preserves that original architecture and its authored source.
Why I Am Sharing the Repository Now
I did not include a repository link when this post first went live. ANNIE was still an active local working project, and the original folder contained private runtime material that did not belong on GitHub. That included credentials, conversation databases, learned data, personal voice recordings, downloaded models, generated files, and a bundled Windows Tesseract installation.
Development continued through later ANNIE systems. This public release documents the first working architecture, while ongoing development takes place in its successors. Keeping the original source available makes that progression visible.
What the Archive Contains
The repository preserves the original local harness and the main experiments that surrounded it.
- A simple command-line chat loop backed by Ollama.
- A Tkinter desktop chat interface.
- SQLite, full-text search, sentence-transformer embeddings, and FAISS conversation memory.
- DuckDuckGo search with optional Google Custom Search.
- File extraction, OCR, and Ollama-based image analysis.
- Local speech recognition and Coqui YourTTS speech output.
- Experimental patch-building and sandbox-runner utilities.
The patch and sandbox utilities are standalone experiments, separate from the main chat loop. Running the sandbox requires additional setup, including GNU patch, pytest, and editable-package metadata outside this archive.
What Stayed Local
The public repository does not include API credentials, environment files, conversation databases, correction caches, learned vocabulary, personal voice-reference recordings, downloaded Hugging Face or Ollama model weights, Python bytecode, generated files, or the bundled Tesseract installation. Those files remain local. The archive contains the authored source needed to understand and run the harness without publishing personal data or machine-specific runtime material.
Original Environment and Setup
ANNIE was built on Windows with Python 3.10 and 3.11, a local Ollama server, and an NVIDIA GPU. The command-line path is lighter. The desktop path loads the memory, vision, search, and voice modules and may require substantial model downloads with compatible CUDA and audio drivers.
The historical model names remain in the source. At minimum, the command-line chat expects the Ollama tag llama3 unless another model is passed directly. The basic setup runs python -m pip install -r requirements.txt, copies .env.example to .env, pulls llama3 through Ollama, and starts the harness with python main.py. The desktop interface runs with python -m ui.app from the repository root.
Google Custom Search, the standalone ChatGPT adapter, personal voice references, OCR, and custom model directories remain optional integrations. The README documents the environment variables and local dependencies for each path.
Scope of the Archive
This repository is the historical release of the first ANNIE harness. It preserves the working chat architecture alongside the original research utilities and their setup requirements. Later ANNIE versions carry the active development work forward.