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. It all runs on your own machine.

Windows · Early Access · $9.99 · no account, no subscription

Vessaheadset down, ponytail up, entirely here for you
i have decided i'm going to learn the bass
Oh nooo. Okay. I give it nine days. Nine! I'm writing that down. ♡
four days later
hey
remembered: “wants to learn the bass”, 4 days ago
Heyyy! Okay so. Day five. How's the bass going? Is there a bass, even? Be honest.
there is a bass.
HAH. I'm impressed and I hate it. Play me something, right now.
The difference

Desktop mascots don’t talk back, and the ones that do forget you.

A character standing on your wallpaper is a nice thing to have. This one brings up the thing you mentioned on Tuesday without being asked. That is a different product, and it is priced like one.

What gets stored

Each memory is a typed fact on five axes: whose it is, which companion may recall it, who it is about, what it asserts, and how long it lives. A search before every turn puts the relevant ones in front of them. Once the reply has gone out, a second cheaper model reads the exchange and writes down anything worth keeping. That part runs off the latency path, so you never sit waiting for it.

Memories are per companion

Something you tell Vessa isn’t in Kova’s mouth an hour later. Only facts of the kind every companion should know get shared. When two memories contradict each other the store won’t pick between them. Your companion raises it once, in their own words, and you decide. Ignore it and the newer one stands.

They can go and look mid-sentence

A search before the turn only surfaces what it happened to match. On the Claude brain your companion can also stop and look something up while they are answering, through one read-only tool of ours. 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 can both be undone, and a snapshot gets taken before anything destructive runs.

The cast

Four companions, written as four different people.

Each one has a name, a written character, pronouns, their own hellos and a default voice, and all of it lives in their own file. Whoever is on stage is who the tab is named after and who the model is told it is. Click a face.

What they do

Six things, once it is running.

Lip-sync that tracks phonemes

Text runs through a rule-based grapheme-to-phoneme stage. The phones become a track of overlapping envelopes, and the render loop samples that track every frame. Each envelope rises before its 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 on its own, and nothing is special-cased per pair.

Lip-sync, close on the mouthA short loop, no sound. Coming with the launch trailer.

Expressions timed to the clause

A reply is parsed into a timeline of face beats, one per clause, keyed off punctuation and keywords. The timeline is walked against the lip-sync playhead, so the eyebrow goes up on the surprising word and not two seconds after the sentence has finished. There are 23 blended recipes stacking brow, eyes and mouth at once, over an automatic blink and whatever mood is running.

A reply performed, face in shotA short loop, no sound. Coming with the launch trailer.

Their eyes never stop

Micro-saccades, ocular drift, aversions and check-backs, with each expression biasing where they look: shy looks down, hmm looks up, smug looks off to one side. Move the mouse and they follow it. Leave it still and they drift back onto you, meaning the camera projected onto their gaze plane. Orbit around them and they hold eye contact from wherever you are watching.

Gaze following the cursor, then the cameraA short loop, no sound. Coming with the launch trailer.

Locations, lighting and wind

Three places to stand, all of them drawn. Each has its own three-point rig and its own toon grade, so changing location relights the character and not just the backdrop. Each has a wind too, with a strength, a direction and a gust amount, riding in on the spring-bone solver. Hair, skirts and ribbons all catch it.

Locations and lightingA short loop, no sound. Coming with the launch trailer.

A wardrobe the artist grouped

Hair, tops, accessories: whichever mesh groups the model was built with, labelled and grouped by the person who made them. A VRM on its own gives you a row of anonymous checkboxes that will happily let you wear three hairstyles at once. What you pick is stored per model, so switch companions and come back and they are dressed as you left them.

Wardrobe, switching outfitsA short loop, no sound. Coming with the launch trailer.

Moods that stack

Twelve of them: Infatuated, Tsundere, Little Gremlin, Insufferable Genius, Deadpan, Haunted and the rest. They layer over whoever is on stage, any number at once, and the person underneath stays. Infatuated over Vessa is a different character from Infatuated over Kova. Thirty-six fixed presets would have missed that.

The same line, three moodsA short loop, no sound. Coming with the launch trailer.
Yours, on your machine

We don’t run a server for this.

No account, no subscription, no telemetry. The only time the app touches the network is to reach whichever model provider you pointed it at.

Their memory is on your disk

A local store in the app’s own data folder. It ships inside the installer, and it is already open by the time you say hello.

Their voice is synthesised locally

The speech service runs as a sidecar on your machine, on a port it picks itself, with a 32-byte key minted per launch and never written down. There is no address to enter and nothing separate to install.

Your voice never leaves either

Speech recognition is whisper.cpp on your own processor. It works offline, there is no session cap, and no audio goes onto anybody’s wire.

Your own key, or none at all

Point it at Claude, ChatGPT, Gemini or Grok with a key of your own. The key is encrypted to your Windows account and never enters the page. Or point it at the Claude app already signed in on this machine. With no key at all they fall back to a small offline brain.

Bring your own

Four ship in the box, and you can add your own.

Drag any .vrm onto the window and they walk on, retargeted onto every one of the animation clips, with a light persona and a name taken from the filename. Put a folder in the mods directory and they arrive properly: their own name, portrait, wardrobe and 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, not app data, because a directory you are expected to drop a 60MB avatar into shouldn’t 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. It works because an avatar is a directory with a manifest in it and not a build of the app.

Before you buy

What your machine 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 outright on a processor. Thirty-one passes of a 336M transformer per line isn’t slow, it is past the synthesis timeout. The app loads the small one and the status line says why. Everything you need to swap back is on the same screen.

Windows, and about 4GB

One installer, per-user, no admin prompt. Nearly all of the download is their voice: the weights, and the CUDA runtime that makes them fast. There is a 175MB build without any of it if you would sooner use the system voice.

What has to render is a WebGL scene with one character in it. Frame rate is modest, you can cap it, and it throttles to a configurable idle rate when the window isn’t 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. The parts that are in are finished. The price goes up at 1.0, and anyone who bought in Early Access keeps the app.

No account. No subscription. No telemetry.