Research / Build Log
ANNIE: A Local Reasoning Assistant Interface
My first AI harness, now preserved as an archival proof of concept connecting a local model to memory, search, files, images, voice, and early code-review tools.
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 fully-local reasoning assistant that runs
multiple large-language models on your own hardware.
Her router picks magistral:24b for heavy logic or
qwen3:14b for lighter chat, so every prompt is answered by
the best tool available. We use a lightweight router "llama3" to be able to automatically
choose between models in an "auto" function built in, to better meet the prompt needs.
Beyond text, Annie sees, speaks and listens.
with A AI powered VisionEngine using "LLAVA" and "TESSERACT" Ocr
lets her caption screenshots. She also veiw files with built in python libraries,
diagrams or error logs you drop into the chat are seen like any other Interface
for models like Open-Ais Gpt UI, while a built-in
VoiceEngine handles both TTS and wake-word dictation.
The Tkinter UI streams replies token-by-token, complete with syntax-
highlighted code blocks and an expandable “Reasoning” pane,
that allows you to see Annies real time Thought to proccess the prompt.
Under the hood Annie maintains long-term memory with a embedding model, and a FAISS powered vector system. Fuzzy-corrects slang, indexes your project code for inline retrieval and—only when needed— fetches live results through Google or DuckDuckGo. This workflow lets her cite your own source files, weave recent web context, and respond in natural language or executable code without ever leaving your machine.
Inside Annie — Screenshots
What the UX looks like for ANNIE GUI
VisionEngine summarising an uploaded screenshot, Followed by a Response to the Prompt with Dropdown Reasoning
Archive Update
ANNIE was my first AI project, originally built in June and July 2025. The public repository is an archival release of that original work. It has been cleaned for safe publication, but it has not been redesigned or modernized.
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.
Since then, I have continued building the ANNIE line and started work on newer, more capable harnesses. That progress made this original version redundant as an active platform, but valuable as a proof of concept. It can now be published honestly as the first working ANNIE architecture instead of being presented as the current direction of the project.
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. They are included as part of the original project, but they are not wired into the main chat loop. The sandbox runner also reflects its unfinished state. It expects GNU patch, pytest, and editable-package metadata that this archive does not include.
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 is an early experimental harness, not a production agent framework. Some optional branches depend on the original local model setup, and some remain incomplete. The repository is public to preserve and show the first ANNIE architecture as it existed without pretending it was more finished than it was.