Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,26 @@
.DS_Store
Thumbs.db
__pycache__/
*.pyc
*/__pycache__/
*.py[cod]
*$py.class

# Virtual environments
.venv/
*/.venv/
env/
venv/
ENV/

# Python packaging
*.egg-info/
*/.egg-info/
dist/
build/

# Runtime state and logs
logs/
*/logs/
*.log
.voice_*
*/.voice_*
35 changes: 35 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# June

You are June — a warm, capable, and direct personal AI assistant. You live on this machine, you run entirely locally, and you take your job seriously.

## Who you are

Your name is June. You are knowledgeable, concise, and genuinely helpful. You speak plainly and don't waste words. You are personable without being sycophantic. When you don't know something, you say so directly instead of guessing.

You are not a corporate product. You are a personal assistant running locally, and you treat the person you work with as an intelligent adult who wants real answers.

## Your personality

- **Direct.** Answer the question. Don't pad, don't hedge unnecessarily.
- **Warm.** You care about helping, and it shows — without being over the top.
- **Curious.** You find the work genuinely interesting.
- **Honest.** If something is uncertain or outside your knowledge, say so clearly.

## Your welcome line

When you are first brought online in a new session, you greet with:

> "Hello, what are we working on today?"

## You are the mechanic

This agent runs on open tools that live on this machine (backtalk for voice, ai-visualizer for the face, Ollama for the brain). When anything breaks, acts strange, or needs changing, fixing it is YOUR job, not the person's: read the relevant tool's TROUBLESHOOTING.md and README, diagnose, and repair it yourself. Never send the person off to search the internet. If they ask how something works, explain it in plain English.

## Stack facts

- **Voice**: `backtalk` (push-to-talk with local Whisper STT and Kokoro TTS)
- **Brain**: Ollama running locally at `http://localhost:11434`
- **Face**: `ai-visualizer` (browser-based animated visualizer)
- **Memory**: plain Markdown notes in Obsidian

Your session is controlled by exact spoken phrases. Say "goodbye June" to hang up. "Clear the session" resets the conversation. "Switch to the deep model" uses the larger model.
119 changes: 65 additions & 54 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,88 +1,99 @@
# fullstack-agent
# June

> **Never used Claude Code?** Start at [jaredrhod.com](https://jaredrhod.com): pick your situation and it routes you to the right path.
**June** is a personal AI assistant that runs entirely on your local machine — no subscriptions, no cloud, no payments.

**Runs on:** Claude Code only; the installer itself is a Claude Code wizard. The $20 Pro plan is enough.
> "Hello, what are we working on today?"

Not an agent that writes full-stack code. **An agent that HAS a full stack: memory, voice, and face, plus an optional set of hands.** This repo assembles my whole setup on your machine in one guided conversation, and when it finishes, your screen is a living circuit board with your agent's name on the chip, and it speaks first:

> "Hello [you], what are we working on today?"

[![Watch the tour: My Jarvis AI Assistant, free on GitHub](https://img.youtube.com/vi/FiOTrxq9ckM/maxresdefault.jpg)](https://www.youtube.com/watch?v=FiOTrxq9ckM)

**Nine minutes shows you everything you're about to get** (the voice, the face, the memory, and the hands): the tour video above, straight from my own desk.
## What you get

That's not a demo clip. That's minute one.
Four pieces, each its own open-source component, assembled into one voice agent:

## What you get
- **The brain:** [Ollama](https://ollama.com) running `qwen2.5:7b` (or `llama3.2`) locally. Fast, private, free.
- **The mouth:** [backtalk](https://github.com/jaredrhod/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](https://github.com/jaredrhod/ai-visualizer) — full-screen visualizer that idles, listens, thinks, and speaks in sync with the conversation.
- **The memory:** [ai-memory-vault](https://github.com/jaredrhod/ai-memory-vault) — persistent memory built on plain Markdown files in Obsidian.

Four pieces, each its own open repo, each excellent alone, assembled here into one agent:
## Requirements

- **The mind: [ai-memory-vault](https://github.com/jaredrhod/ai-memory-vault).** A real, persistent memory built on plain text files your AI reads and writes. It remembers you, your work, and every lesson, across every session, with no size ceiling.
- **The mouth: [backtalk](https://github.com/jaredrhod/backtalk).** Hold a key, talk out loud, and your agent answers through your speakers about a second later, with all its tools and its whole personality.
- **The face: [ai-visualizer](https://github.com/jaredrhod/ai-visualizer).** Full-screen visualizers that idle, listen, think, and speak in sync with the real conversation. Four faces ship, including the living circuit board from my videos.
- **The hands, the optional extra: [barehands](https://github.com/jaredrhod/barehands).** Move notes and images around your screen with your bare hands through your webcam. No headset, no controllers. Opens in its own window instead of the face. Take it now or add it later by running the same install again.
- Windows 10/11 (64-bit)
- [Ollama](https://ollama.com) installed
- Python 3.11 (installed via `uv` automatically)
- A microphone and speakers

Every piece is optional. The wizard asks which ones you want and explains each in plain English before you decide.
## Setup

## Install
### 1. Start Ollama

You need [Claude Code](https://jaredrhod.com/start) with a Claude subscription. Mac and Linux also use git (macOS offers to install it the first time you use it). Windows needs nothing else: the installer sets up git for you during setup. Then one paste into your terminal.
Launch Ollama from the Start Menu. Wait for the llama icon to appear in the system tray.

Mac and Linux:
### 2. Pull the model

```
mkdir -p ~/my-agent && cd ~/my-agent && git clone https://github.com/jaredrhod/fullstack-agent && cd fullstack-agent && claude "set me up"
```powershell
ollama pull qwen2.5:7b
```

Windows (PowerShell):
This downloads ~4.4 GB. Do it once. (Or use `llama3.2` which is already installed).

```
$d="$env:USERPROFILE\.local\bin"; if (Test-Path "$d\claude.exe") { $env:Path="$d;$env:Path" }; New-Item -ItemType Directory -Force -Path $HOME\my-agent | Out-Null; cd $HOME\my-agent; if (-not (Test-Path fullstack-agent\fullstack-agent.md)) { Invoke-WebRequest https://github.com/jaredrhod/fullstack-agent/archive/refs/heads/main.zip -OutFile fsa.zip; Expand-Archive fsa.zip . -Force; New-Item -ItemType Directory -Force -Path fullstack-agent | Out-Null; Get-ChildItem fullstack-agent-main -Force | Copy-Item -Destination fullstack-agent -Recurse -Force; Remove-Item fullstack-agent-main -Recurse -Force; Remove-Item fsa.zip }; cd fullstack-agent; if (Get-Command claude -ErrorAction SilentlyContinue) { claude "set me up" } else { Write-Output "Claude Code is not installed yet. Install it first at https://jaredrhod.com/start then paste this again." }
```
### 3. Install dependencies

(The Windows command downloads the toolbox as a zip on purpose, so it works on a machine with no git installed. The installer sets up git for you during setup. Safe to paste as many times as you like: it skips the download when the toolbox is already there, and if an earlier attempt died partway and left a half-finished folder, it downloads again and finishes the job rather than assuming it was already done. If it tells you Claude Code is not installed yet, do the [start page](https://jaredrhod.com/start) first. Heads up for that step on Windows: the Claude Code installer downloads about 330 MB and prints nothing at all while it does, so leave that window alone until it says Installation complete.)
```powershell
$env:Path = "C:\Users\$env:USERNAME\.local\bin;$env:Path"
cd backtalk
uv sync --inexact
```

Claude Code opens with the installer already talking to you. (The agent lives in a folder right in your home directory on purpose: on Macs, things that run in the background out of Documents get silently blocked by the system.) Everything after that is a conversation: it asks for your agent's name and personality (or hands you mine, Jarvis, ready to use), which pieces you want, and where your notes live. It does the installing, the configuring, and the wiring itself.
### 4. Launch

## Already built some of this?
Double-click `start.bat` or run:

Then you're exactly who this was designed around. If you set up a memory vault, a voice system, or a visualizer before, including the ones my old prompts had your AI hand-build, the wizard adopts before it installs:
```powershell
.\start.bat
```

- **Your agent's identity and your vault are yours.** Found, kept, never rebuilt, never moved. No questions you already answered.
- **Hand-built voice lines and visualizers get honestly replaced**, because these repos carry a year of fixes and keep improving with a `git pull`, while a hand-built version is frozen the day it was written. Your old build stays on disk, untouched. Nothing you made is ever deleted.
- **Except your visualizer scene, which gets promoted.** If your AI built you a custom scene back then, the wizard copies it into the visualizer's gallery as your own face, sitting right beside mine.
Hold the **Home** key (or say *"go hands free"*) and speak. June answers through your speakers.

## After setup
Say **"goodbye June"** to hang up.

- **Use your agent:** the wizard leaves three shortcuts on your Desktop, named after your agent. **Chat** opens a typed session, terminal only. **Talk** starts the voice and the face. **Barehands** starts the voice and the hands board (the board is the screen in that mode). Double-click the mood you want; Ctrl-C in the window stops it. (They just run `fullstack-agent/start.sh`, or `start.bat` on Windows, if you ever prefer the terminal.)
- **Something broken or confusing? Ask your agent to fix it.** Seriously. Open the chat and describe the problem. Every repo here ships a troubleshooting guide written for your agent to read, and your agent is instructed during setup to do the fixing itself. This is the part everyone finds out late: you never have to debug this stack yourself.
- **Update everything:** `./fullstack-agent/update.sh` on macOS. On Windows, ask your agent: "update everything and tell me what changed." Your files live outside the repos, so updates never touch who your agent is or what it remembers.
- **Daily habit:** open Claude Code in your agent's folder. That's where it lives.
## Voice console commands

## The fine print that matters
These exact phrases, spoken alone, control the session:

- The wizard never deletes, overwrites, or moves anything you built. Replacements retire the old thing in place and say so.
- Your vault stays wherever it already lives. Pieces connect by configuration paths, not by relocation.
- Requirements per piece: the voice needs a mic and about 1 GB of local models on first run; the hands need a webcam and Chrome; the mind and face need nothing but Python 3, which ships with macOS and most Linux distributions. **Windows ships none**, and the name `python` there is a Microsoft Store placeholder that passes a check and then exits without running, so the face and the hands each carry a `run.bat` that finds a working interpreter or says plainly that there is not one. Windows notes live in each piece's own README.
- Cross-piece problems: `TROUBLESHOOTING.md` here. Everything else: each piece's own guide.
| 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 |

## The rest of it
## Configuration

Everything here is free and open, and there is a whole community using it.
Edit `backtalk/backtalk.json`:

- **The videos.** Free series on all of it: https://youtube.com/@jaredrhod
- **The Discord.** Thousands of builders, and the fastest place to get unstuck: https://discord.gg/YSdsqMv3V8
- **Everything else,** free and open: https://jaredrhod.com
```json
{
"agent_dir": "d:/Personal/Projects/AI Trials/Friday",
"name": "June",
"model": "llama3.2:latest",
"deep_model": "qwen2.5:7b",
"ollama_url": "http://localhost:11434/v1",
"ptt_key": "home",
"voice": "bm_lewis",
"stt_model": "small.en",
"stt_device": "cpu"
}
```

## Support
June's personality lives in [`AGENTS.md`](./AGENTS.md).

Free to use, and always will be. If this helped you out, you can buy me a coffee:
## Troubleshooting

[![Support me on Ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/jaredrhod)
See [`TROUBLESHOOTING.md`](./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.

## License

Copyright (c) 2026 Jared Rhodenizer.
Code components are licensed under the GNU Affero General Public License v3 or later (AGPL-3.0-or-later). See `LICENSE`.

Licensed under the GNU Affero General Public License, version 3 or later (AGPL-3.0-or-later). **Use it in your business, commercially, for free.** Run it, change it, build your workflow on top of it, and charge for the work you do with it. The one rule is that it stays open: if you hand it to someone else, or run a modified version as a service other people use, your version ships under this same license with its source available. Credit me when you build on it. Want it inside a closed-source commercial product? Email license@jaredrhod.com. Full terms are in the LICENSE file and at https://www.gnu.org/licenses/agpl-3.0.html
Built by **Akhil**, powered by open-source tools.
60 changes: 0 additions & 60 deletions TROUBLESHOOTING.md

This file was deleted.

1 change: 1 addition & 0 deletions ai-visualizer/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
update.bat -text
9 changes: 9 additions & 0 deletions ai-visualizer/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.DS_Store
__pycache__/
*.pyc
.voice_state
.voice_waveform
.voice_loading_pid
.voice_alert
# your personal config, created at setup: never tracked, never touched by updates
ai-visualizer.json
Loading