famstack started with one wish: keep what our kids say while they are small.
Once or twice a week, usually at the dinner table, we record a short voice message about what the kids said, and I wanted those recordings somewhere they would still be when the kids are grown up, on our own Mac, readable and findable. The memories room was in the plan from the first day, before the document archive and before the wiki.
In the 0.3 beta post I wrote that the part I was really after was not built yet. With 0.4 it is, and the first release candidate is out for people who want to try it before the final release.
Send a voice message, a photo or a few lines to the memories room. Months later it is a page in the family diary, with the original still attached.
#The family diary
Whatever the family posts in the memories room becomes a diary in the family wiki: voice messages, photos, videos, texts. One page per month opens with a summary of the month, then one card per memory with its summary and the facts in it, plus the transcript and recording for a voice message, or the photo itself.
A few things make it work day to day:
- The archivist posts each morning’s cards in the room, so the family sees what was kept.
- A reply in a card’s thread corrects it: a misheard name, a wrong date, who a memory was for. The correction stays, and the diary never overwrites it.
- When the room has been quiet for two weeks, the archivist asks for the next memory.
- Whisper knows the family’s names: everyone in
users.tomlfrom the first day, plus the names the wiki has learned.
The curator compiles the diary every night. To try it right away, post a voice message or a photo in the memories room, then:
./stack memory diary --dry-run # print the diary pages, write nothing
./stack memory diary # write them to the wiki now
The pages show up under Diary in the wiki, and the archivist posts them in the room the next morning. The user guide has the family’s side of the room, with a few habits that help, such as saying the date at the start of a recording.
Everything famstack keeps grows in value over time, the documents too. But the diary is the biggest treasure. Every month adds to it, and in five or ten years it holds the kids’ voices at every age, in their own words. No amount of money buys that back later.
So it stays in your home, in a form that outlives famstack. The cards, transcripts and recordings are plain files on your Mac, and you back them up like any other folder. If famstack is gone one day, the diary is still there, and a more capable local model can compile it again. That is the idea behind all of famstack: your family’s data is never locked in.
#The family wiki
The wiki got a new design and a menu: Start, Recent, Diary, People, Topics, Documents. Topics are grouped into money and work, health, home, kids and school, and official papers. Each document links to its original photo, PDF or recording.
#Answers with their sources
Ask the archivist by name in any room it is in, typed or spoken, and the answer names the documents it read:
One tap opens the document behind the answer. The archivist writes titles and summaries in the family’s language, also for a document in another language.
#Choose where the AI runs
./stack ai switch managed # the engine famstack runs on this Mac
./stack ai switch https://ai.example.home/v1 --key <key> # a server on another machine
A 16 GB Mac can run everything, but the models it fits are small. In my testing on a 16 GB MacBook with the 9B model, a document took about a minute to file. With ai switch the chat model can run on a bigger machine in the house while speech-to-text and text-to-speech stay on the Mac. An AI app you already run on the same Mac shows up as localhost, not as a remote server.
#Easier to run
./stack updatemoves to a release and names what needs a restart../stack listmarks stacklets still running older code.- A
famstackcommand that works from any directory, and an installer that asks for the family’s language. - Backups now include the family chat and its voice recordings.
- Your own domain with HTTPS: every stacklet under its own name, certificates through Hetzner or Cloudflare DNS (the infra stacklet is beta).
#A menu bar app
The Mac that runs famstack often has no screen attached, and I want to know it is fine without opening a terminal. The new menu bar app (beta) shows what needs attention and the command that fixes it, each stacklet with its memory use, the errors of the last day, and how full the disk is. Each stacklet’s menu starts, stops or restarts it, opens it in the browser, or opens its logs in Terminal.
It runs on the server itself or on your laptop, where it reaches the server over SSH. It keeps no state of its own: what it shows and what it does goes through ./stack. ./stack app install builds it from your checkout and puts it in Applications. Run it again after an update.
#Known issues
This is a release candidate, and some things I know about:
- Only the admin is in the Documents room after setup. Add the others with
./stack messages join documents marge bart lisa, with your family’s user names. - Rooms you create in Element are encrypted by default, and the bots cannot read encrypted rooms. Switch encryption off when you create a room for the archivist. It cannot be switched off later.
- The wiki home page can list a folder or a relative as a family member. famstack does not yet keep one list of who the family is. That is the first thing for the next release candidate.
- The agent is beta. On its first start it needs
./stack restart core, then./stack restart agent.
#Try it
A fresh install:
git clone --branch v0.4.0-rc.1 https://github.com/famstack-dev/famstack.git
cd famstack
./stack
Running 0.3.0-beta.3? It has no ./stack update yet, so this one update is by hand: back up ~/famstack-data, then git fetch --tags && git checkout v0.4.0-rc.1, then ./stack restart all. The release notes have every step. From then on, ./stack update does it.
If something breaks, open an issue or come to the Discord. I want to fix what you find before 0.4.0.