June is a personal AI assistant that runs entirely on your local machine — no subscriptions, no cloud, no payments.
"Hello, what are we working on today?"
Four pieces, each its own open-source component, assembled into one voice agent:
- The brain: Ollama running
qwen2.5:7b(orllama3.2) locally. Fast, private, free. - The mouth: backtalk — hold a key, speak, and June answers through your speakers a second later. Hearing and voice run on free local models (Whisper + Kokoro).
- The face: ai-visualizer — full-screen visualizer that idles, listens, thinks, and speaks in sync with the conversation.
- The memory: ai-memory-vault — persistent memory built on plain Markdown files in Obsidian.
- Windows 10/11 (64-bit)
- Ollama installed
- Python 3.11 (installed via
uvautomatically) - A microphone and speakers
Launch Ollama from the Start Menu. Wait for the llama icon to appear in the system tray.
ollama pull qwen2.5:7bThis downloads ~4.4 GB. Do it once. (Or use llama3.2 which is already installed).
$env:Path = "C:\Users\$env:USERNAME\.local\bin;$env:Path"
cd backtalk
uv sync --inexactDouble-click start.bat or run:
.\start.batHold the Home key (or say "go hands free") and speak. June answers through your speakers.
Say "goodbye June" to hang up.
These exact phrases, spoken alone, control the session:
| Phrase | Effect |
|---|---|
"goodbye June" |
Hang up |
"clear the session" |
Reset conversation history |
"switch to the deep model" |
Use qwen2.5:7b / larger model |
"back to the fast model" |
Return to the default model |
"go hands free" |
Always-listening mic mode |
"push to talk mode" |
Hold-key mic mode (default) |
"usage report" |
Spoken token count for this session |
Manage June's persistent memory and LLM brain endpoints in your browser:
- Studio URL: http://127.0.0.1:8790/dashboard (or click 🧠 STUDIO at the bottom right of any visualizer face)
- Persistent Memory: View and edit
memory/MEMORY.mdand topic notes with a live markdown editor and preview. Changes sync directly to disk and inject into June's working context. - Multi-Provider LLMs: Switch between Ollama, LM Studio, OpenAI, OpenRouter, Groq, DeepSeek, or custom OpenAI-compatible endpoints with one click.
Settings are managed via the web Studio or by editing backtalk/backtalk.json:
{
"active_provider": "ollama",
"providers": {
"ollama": { "name": "Ollama (Local)", "base_url": "http://localhost:11434/v1", "model": "llama3.2:latest", "deep_model": "qwen2.5:7b" },
"lmstudio": { "name": "LM Studio (Local)", "base_url": "http://localhost:1234/v1", "model": "local-model", "deep_model": "local-model" },
"openrouter": { "name": "OpenRouter", "base_url": "https://openrouter.ai/api/v1", "api_key": "sk-or-...", "model": "meta-llama/llama-3.3-70b-instruct" },
"openai": { "name": "OpenAI", "base_url": "https://api.openai.com/v1", "api_key": "sk-...", "model": "gpt-4o-mini" },
"groq": { "name": "Groq", "base_url": "https://api.groq.com/openai/v1", "api_key": "gsk_...", "model": "llama-3.3-70b-versatile" },
"deepseek": { "name": "DeepSeek", "base_url": "https://api.deepseek.com/v1", "api_key": "sk-...", "model": "deepseek-chat" }
},
"agent_dir": "d:/Personal/Projects/AI Trials/J.U.N.E",
"name": "June",
"ptt_key": "home",
"voice": "bm_lewis",
"stt_model": "small.en",
"stt_device": "cpu"
}June's personality lives in AGENTS.md and persistent memory lives in memory/MEMORY.md.
See TROUBLESHOOTING.md for common issues. If something breaks, open a chat and describe the problem — June is built to diagnose and fix her own stack.
Code components are licensed under the GNU Affero General Public License v3 or later (AGPL-3.0-or-later). See LICENSE.
Built by Akhil, powered by open-source tools.