A desktop companion who remembers.
Talk by voice or by typing. Your companion has a face that reacts on the word, a voice of their own, and a memory that carries between conversations. Everything runs on your own machine.
Windows · Early Access · $9.99 · no account, no subscription
Most desktop characters don’t talk back. None of them remember.
That is the whole argument, and it is worth being plain about. A mascot on your wallpaper is a nice thing to have. A companion who brings up the thing you mentioned on Tuesday is a different product.
Not a transcript
What they remember is a local store of typed facts on five axes — whose they are, which companion may recall them, who they are about, what they assert, and how long they live. Before every turn, one search puts what bears on the message in front of them. After the reply is delivered, a second cheaper model reads the exchange and writes down anything worth keeping, entirely off the latency path.
Memories are per companion
Something you tell Vessa is not in Kova’s mouth an hour later. Only facts of the kind every companion should know are shared. And when two memories genuinely contradict, the store refuses to pick: they raise it once, in their own words, and you choose — or carry on talking and the newer one stands.
They can go and look mid-sentence
Not only what the search happened to surface before they started typing. On the Claude brain they can stop and look something up while answering, through one read-only tool of ours, and it shows up as a note on the message the same way a web search does.
Nothing is ever deleted
Superseding a fact keeps the old value reachable as history. Forgetting and emptying are both recoverable, and a snapshot is taken before anything destructive. A companion that quietly loses things is worse than one that never had them.
Four people, not one character in four outfits.
Each carries their own name, their own voice in the system prompt, their own pronouns and their own hellos. Whoever is on stage is who the app is named after and who the model is told it is. Click a face.
Six things, each of which took longer than it sounds.
A mouth that is really saying the word
Not a jaw flap on a timer. Text goes through a grapheme-to-phoneme stage, the phones become a track of overlapping envelopes, and the render loop samples it every frame. Envelopes rise before their own phone, so the lips are already rounding for the oo of "soon" while the s is still hissing — coarticulation falls out of the mechanism rather than being special-cased.
Expressions that land on the word, not after the sentence
A reply is parsed into a timeline of face beats, one per clause, keyed off punctuation and keywords, and walked against the lip-sync playhead. So the eyebrow goes up on the surprising word. Twenty-three blended recipes stack brow, eyes and mouth at once, over an automatic blink and whatever mood they have settled into.
Their eyes never stop
Micro-saccades, ocular drift, aversions and check-backs, plus a bias per expression — shy looks down, hmm looks up, smug looks off to the side. Move the mouse and they follow it. Park it and they drift back onto you, which means the camera projected onto their gaze plane: orbit around them and they keep eye contact from wherever you are watching.
Somewhere to stand, and weather while they stand there
Three locations, all drawn rather than photographed, each with its own three-point rig and its own toon grade — so switching location relights them, not just the background. Each one also has a wind: a strength, a direction, and how much it gusts, riding in on the spring-bone solver so hair, skirts and ribbons all catch it.
A wardrobe their author actually authored
Hair, tops, accessories — whichever mesh groups the model was built with, grouped and labelled by the person who made them rather than offered as a row of anonymous checkboxes. What you pick is remembered per model, so switching companions and back brings them back exactly as you left them.
Moods layered on, not swapped in
Twelve directions — Infatuated, Tsundere, Little Gremlin, Insufferable Genius, Deadpan, Haunted — that layer over whoever is on stage rather than replacing them, any number at once. The same mood reads differently on each companion, which is the point of layering rather than shipping thirty-six presets.
Nothing about this needs a server of ours.
There is no account, no subscription, and no telemetry pipe. What the app does with a network connection, it does because you pointed it at something.
Their memory is on your disk
A local store in the app’s own data folder. It ships inside the installer and is open before the first message rather than after it.
Their voice is synthesised locally
The speech service runs as a sidecar on your machine, on a port it picked, with a 32-byte key minted per launch and never written down. No address, no key to manage, nothing to install.
Your voice never leaves either
Speech recognition is whisper.cpp on your own processor. Offline, no session cap, and no audio on anybody’s wire.
Your own key, or none at all
Point it at Claude, ChatGPT, Gemini or Grok with a key of yours — encrypted to your Windows account and never entering the page — or at the Claude app already signed in on this machine. Without any key they fall back to a small offline brain.
Four companions ship in the box. The box is not the limit.
Drag any .vrm onto the window and they walk on — retargeted onto every one of the animation clips, with a persona of their own and their name taken from the file. Or put a folder in the mods directory and they arrive properly: their own name, their own portrait, their own wardrobe and their own voice, remembered like anybody else’s.
The format is published
familiar-avatar/1 is a versioned, documented folder format — a manifest, a body, and whatever the author wants to make swappable. Read the field reference.
A mods folder you can find
Off until you switch it on, and switching it on is what creates it. It lives in your home folder rather than in app data, because a directory you are expected to drop a 60MB avatar into should not be somewhere an uninstaller clears out. Nothing in the app ever deletes out of it.
Workshop, at launch
The same folder format, distributed through Steam. What makes that possible is that an avatar is already a directory with a manifest in it rather than a build of the app.
What the machine under this needs.
Their real voice wants an NVIDIA card
Real voices run locally on an NVIDIA card. Without one your companion uses a smaller local voice — they still talk, they just don’t sound quite like themselves yet.
The larger model is refused rather than run on the processor, because thirty-one passes of a 336M transformer per line is not slow, it is past the timeout. The app loads the small one instead and the status line says why. Everything to swap back is on the same screen.
Windows, and about 4GB
One installer, per-user, no admin prompt. Most of the download is their voice — the weights and the CUDA runtime that makes them fast. There is a build without it if you would rather have the system voice and 175MB.
Steady-state frame rate is a WebGL scene with one character in it: modest, capped where you want it capped, and throttled to a configurable idle rate when the window is not focused.
Wishlist it, and find out when it’s out.
Familiar launches in Early Access at $9.99. Early Access because the Workshop, the studio and the rest of the cast are still landing — not because the parts that are in are unfinished. The price goes up at 1.0; anyone who bought in Early Access keeps the app.
No account. No subscription. No telemetry.