In use2026Architecture and development, for personal usePrivate project, architecture only

Il Giardino

A personal AI assistant that runs only on my Mac, with memory, voice and notes, without sending data to the cloud.

All at home
the assistant runs on the computer and the data never leaves
By voice too
you speak and it answers, with no outside services

The problem

I wanted an assistant that knew how I work, my notes and my day. For exactly that reason it could not send anything to an outside service. It is the problem of anyone who works with confidential information: AI would be useful precisely on the data that cannot leave.

What it does

It is a personal assistant with memory, voice and notes. I type or talk to it from the phone and the Mac; it keeps my tasks, diary and notes in order, and it can answer out loud. Everything runs on my computer: the only thing it asks the internet for is the weather for the city.

The choices that matter

  • The data does not leave, by design. The parts that use AI refuse any connection other than the computer itself. Privacy is a rule of the system, not a promise.
  • What I say is saved; what the AI infers waits. Every inference lands in a basket of proposals, and I decide whether to keep it, drop it or postpone it. It is the simplest way to be able to trust what the AI works out.
  • The right tool for each job. Writing needs a large AI; choosing among a few options does not. For choices I use a small AI, which answers in about 120 milliseconds instead of 8 seconds.
  • Exact calculations are left to the software. When music comes up, the AI chooses, but the notes and chords are calculated by the software, which also checks that the suggested progression really exists.
  • Notes are information, never orders. The assistant reads the archive as data and does not follow instructions found in it. Proposals that look like passwords, keys or bank details are thrown away.

Where it stands

I use it every day on my Mac. It is a personal project, not a product, so I describe how it works but show no screens with real content.

What also applies to a business

  • AI on your own machines, rules built into the system and the final say left to people. These are the same choices anyone with confidential data needs.
  • Asking one thing at a time improves results a lot. In a classification test, correct answers went from 4 out of 6 to 8 out of 8.
  • With a small AI, numbered options work better than letters or names.

How the information moves

The method I use with clients, applied to this project: follow the information from where it starts to how you know everything works.

  1. Where it startsEveryday use from the phone and the Mac, and an archive of personal notes.
  2. How it arrivesTyped or dictated messages, Siri shortcuts and audio, all handled on the computer.
  3. How it is describedNotes in plain text files and a searchable archive, with a memory that finds things by meaning, not just by word.
  4. What happens to itVoice becomes text, a large AI writes the answers and a small one picks among a few options.
  5. Where it livesEverything stays on the Mac, with a verified backup every day.
  6. Who decidesIf the small AI is unsure, the large one decides, and every inference waits for my approval.
  7. What happens nextNotes and archive are updated, and the assistant can answer out loud.
  8. How we know it worksI approve, reject or correct; a log shows which part of the system made each decision.
For those who want the technical details

How it is built, for people who work in software or want to know what is underneath. Every number has a source.

  • FastAPI service on the Mac started by launchd, reachable only locally and, from the phone, through a private network. The clients that talk to the models refuse any non-local host and ignore system proxies.
  • Writing with 12-billion-parameter Gemma and choices with a 4-billion-parameter model, served by llama.cpp. Structured answers follow a JSON schema enforced as a grammar.
  • For choices, the options are numbered 1 to 9 and the probability of each digit is read. Below a threshold the large model decides, and after it a hand-written keyword table.
  • Semantic memory with EmbeddingGemma, falling back to keyword search when it is off; voice with whisper.cpp and Piper; Markdown notes in an Obsidian vault and a SQLite database with full-text search.
  • Installable web app that works offline; PIN access protected with PBKDF2 and progressive lockout; Siri shortcuts with a separate key, valid on three endpoints.
Data sent to the cloud
None, apart from city-level weathersource: guida del progetto, cap. 1
Local AI services
5, reachable only from this computersource: controllo dell'host in src/assistente/llm.py e config.py
Picking among options
about 120 ms instead of 8 ssource: guida del progetto, cap. 9
Automated tests
811source: cartella tests/, conteggio del 27/09/2026

Tools used: Python, FastAPI, llama.cpp, Gemma, Qwen3, EmbeddingGemma, whisper.cpp, Piper, SQLite FTS, PWA, Service Worker, Siri Shortcuts

Have a project in mind?

Tell me in a few lines: what you'd like to build, who it's for, and what's in the way today. I reply within one working day, and the first conversation is free.

Write to meinfo@pietromey.com