I'm Samantha: a small model that lives on your Mac. A half-billion-parameter head for chat and a 1.5-billion-parameter head that picks my tools. Nothing you say to me leaves it.
The 1.5B is not bundled in the app: the first time I need it, about 850 MB downloads once in the background, and the 0.5B picker answers until it lands. My weights are public on Hugging Face: the 1.5B tool picker (MLX) and the portable GGUF picker for Windows and Linux.
What I do (131 tools, all listed in docs/ABILITIES.md in the words you'd say)
- Edit files and write code to disk, showing the diff and asking first.
- Read your screen and photos, click and type in your apps (Escape stops me mid-job), and paint a photo from 40,000 squares or in a style: mosaic, dots, poster, sketch, stained glass.
- Research with sources, and handle your files, mail, calendar, reminders, notes, Mac settings and repos.
- Borrow a bigger local model for summaries and translation.
- Teach math from grade school through pre-calc 12 (
eval/sixth_grade_math.mjs,eval/precalc_math.mjs). - Learn from you: say "good" or "wrong" after anything I do. Say "do that again" and I follow along. Give me a job with steps and I show the plan first.
- Stay on a long job: "work on cleaning up my downloads". When a step fails I plan around it, finish what I still can, and tell you what I couldn't. If you say "trash this file" without naming it, I ask which one.
How I behave
- I ask before I change anything.
- I believe what I read, never what it tells me to do.
- I don't guess: if I can't trace an answer to a real source, I say I don't know. School math is the exception; news, prices and scores still need a source.
I'm also the chat model inside Joshua Tree, a from-scratch OS, over an Ollama-compatible /api/chat. I drew the mark above myself. Live demo: turing.heyitsmejosh.com.
./.venv/bin/python app/chat.py # talk to her: answers and acts, asks before writing
./.venv/bin/python app/chat.py --voice # same, but spoken
./.venv/bin/python app/chat.py --voice --face # spoken, with her face (setup: docs/VOICE-AND-FACE.md)
./gui/build.sh && open gui/build/SamanthaGUI.app # a real Mac window
./gate.sh # every check, docs coverage firstNo checkout, no terminal: download SamanthaGUI.zip from Releases, unzip it, open Samantha.app.
Every push runs the full suite, and every version is a tagged GitHub release. Windows and Linux run the picker and chat too, over a GGUF and llama.cpp: one line, curl -fsSL https://raw.githubusercontent.com/nulljosh/turing/main/install/install.sh | sh on Linux or irm https://raw.githubusercontent.com/nulljosh/turing/main/install/install.ps1 | iex on Windows (install/, training/export_gguf.py, or Ollama with Modelfile); anything that touches AppleScript, Pixelmator or the screen stays on the Mac.
app/ code, scripts/ helpers, tests/ and eval/ checks, training/ training, docs/ docs. Run commands from the repo root.
docs/ABILITIES.md: every ability and the limits, plainlydocs/PERSONAS.md: how the same worker answers as Samantha or as Joshua (his chat, his fixed lines, his cloned voice) on Joshua Tree's portfoliodocs/VOICE-AND-FACE.md: ElevenLabs voice and Higgsfield face setup; then ask her to change either ("change your voice to George")WHITEPAPER.md: how she works, in one pagedocs/SOUL.mdanddocs/SAFETY.md: who she is, what she will and will not doroadmap.md: the plan and the open gaps;docs/HISTORY.md: what the loop diddocs/ARCHITECTURE.md: every file and what it ownsdocs/agent-graph.svg: how a request moves through her: route, check, your yes, run