A desktop chat app that keeps the model and the history on your computer.
Web search is there when an answer needs something current. It is off by default, and Private Mode removes it entirely.
WHY I MADE IT
I wanted the privacy of a local model without giving up useful, current answers.
WHAT I BUILT
The desktop interface, image uploads, streamed replies, search controls, source links, and privacy mode.
WORKING STATES
INSPECT IMAGECLOSE IMAGEEMPTY STATE · The sidebar names the running model and shows it online. The greeting states the search rule before anything is typed, and three starter prompts stand in for an empty history.INSPECT IMAGECLOSE IMAGEPRIVATE MODE · Switching it on marks the window “Local only” and repeats the mode inside the message box, so the state is legible from the toggle, the header, and the spot where you are about to type.INSPECT IMAGECLOSE IMAGEWEB SEARCH · A searched answer carries a “Searched the web” tag, and the globe button opens the exact pages behind it. Sources sit next to the claim instead of a footnote.
FIG 01 · LOCAL BY DEFAULT, SEARCH BY CHOICE
01 · YOUR MESSAGEChat and imagesentered in the interface
send
02 · LOCAL APPHistory and settingskept on this computer
ask
03 · LOCAL MODELThe selected model writes the replyQwen 3.5 through Ollama
Search is the exception. When it is on, the app may send a short keyword query. It does not send the full conversation. Private Mode removes the search path entirely.
IMPLEMENTATION · I built the interface without a UI framework and used FastAPI to stream replies over a WebSocket. Ollama runs Qwen 3.5 9B. Conversations and uploaded images stay in local files.
CASE FILE 02 · FAMILY FOLDER SHARING · WINDOWS UTILITY · 2026
A Windows app for sharing a folder with the people in your house.
Add a person, choose a folder, and pick whether they can view or edit it. The app applies the Windows settings underneath.
WHY I MADE IT
I wanted our files in one place at home, reachable from any device, without signing up for anything.
WHAT I BUILT
The setup flow for adding people, sharing folders, and choosing View or Edit access.
SHARING WORKFLOW
INSPECT IMAGECLOSE IMAGESTEP 1 · FAMILY · Each person becomes an account with a password of their own. The screen deals in people and their names, never in Windows user records.INSPECT IMAGECLOSE IMAGESTEP 2 · FOLDERS · A shared folder shows its real path, what it currently holds, and the space left on the drive. Sharing stops from the same row it started in.INSPECT IMAGECLOSE IMAGESTEP 3 · ACCESS · The legend spells out each level before the choice is made: no access, open and copy, or add and delete. Maya can edit, Noah can only view, and changes save as they are made.
FIG 02 · ONE CHOICE, TWO WINDOWS SETTINGS
01 · WHAT YOU CHOOSENo access · View · Editfor one person and folder
apply once
02A · NETWORK SHARECan the device reach it?Windows calls this SMB
02B · FOLDER ON THE PCCan the person use it?Windows calls this NTFS
Windows checks both settings. A person gets in only when both allow it, so the app writes the same View or Edit choice to each.
IMPLEMENTATION · I mapped View to SMB Read plus NTFS ReadAndExecute, and Edit to SMB Change plus NTFS Modify. Removing access clears both entries.
CASE FILE 03 · ILLUSTRATED STORY SHARING · AUTHOR + READER · 2026
A short illustrated story, passed from one person to one other.
An author writes the panels and a local model draws each one at publish time. The reader moves through them by hand, one at a time.
WHY I MADE IT
Small things happen and nobody stops for them. I wanted to hand one to another person instead of posting it.
WHAT I BUILT
The author tool, publish flow, canvas reader, word-by-word pacing, keyboard controls, and reduced-motion behavior.
FROM MAKING TO READING
INSPECT IMAGECLOSE IMAGEAUTHOR · Every panel separates three things: the words a reader sees, the description a screen reader gets, and the prompt the local model draws from. Art renders at 128 × 72 and is reviewed before publishing.INSPECT IMAGECLOSE IMAGEPANEL 1 · NIGHT · The picture settles before the text begins, and the cursor is caught mid line. Nothing advances until the reader taps or presses the arrow key.INSPECT IMAGECLOSE IMAGEPANEL 2 · DAWN · The last panel answers the first with a second lit window across the valley, then stops. The story ends where the author left it rather than rolling into another.
FIG 03 · FROM DRAFT TO READER
01 · AUTHORWrite the story in panelsnarration · scene prompt · alt text
publish
02 · LOCAL ARTDraw one frame for each panelStable Diffusion stays on the author’s PC
save
03 · PUBLISHED STORYBundle text and pixel gridsstatic JSON · no model dependency
open
04 · READERReveal one panel at a timetap · arrow keys · reduced motion
The model is part of publishing, not reading. Once the story is saved, the reader opens finished text and artwork without generating anything new.
IMPLEMENTATION · A local Node server generates each scene at publish time. It reduces the image to a 128 × 72 grid with up to 16 colors, then saves two frames for the canvas shimmer.