origin
how we got here
i didn't start with "let me build a desktop app in Rust." i started with a problem — every AI tool i tried was stateless. every knowledge tool was passive. nothing connected anything. and i kept losing threads i'd been pulling for weeks.
the original idea
a Figma component. the concept was context management as the interface — what if the UI itself told you what the AI was thinking about, instead of hiding it behind a token counter? just a sketch. no code.
the obsidian phase
tried to build this inside Obsidian — Claude as a knowledge agent wired into a vault. the question was: how does an associative brain actually work? you follow threads. one thing leads to another leads to another. every idea lives in your head for a week then fades. nothing connects.
the insight: the problem isn't the tool. it's that no tool was designed for how a curious, non-linear brain actually moves. capture had to be effortless or it wouldn't happen. the AI needed to be the thing that remembered.
the spatial canvas vision
explored AFFiNE and BlockSuite. built a workspace. then wrote a brief for something wilder: an infinite canvas where content units (working name: "Grains") knew where they lived spatially — because location is meaning on a canvas. and the canvas background would bruise when the LLM was active: a stain from inside, bleeding organically around the active thread. color = context fill state. green (room) → red (full). no token counter. just a living material.
i wanted to build it in PIXI.js + Tauri. the canvas was going to be the context management UI — you'd see the fill state, you'd manage it spatially. this was the most important architectural idea in any of the iterations.
umi proper — first commit
dropped the PIXI canvas (too much to build alone), picked up Rust, rig, and SurrealDB. the idea stayed the same: build a local-first personal AI that keeps a semantic graph of your life and reasons over it with a local LLM. no cloud. no subscriptions. the database is the user model.
19 days in
calendar, email, habits, goals, a full plan page with CalDAV two-way sync to iCloud, a graph-flow agent pipeline with pluggable domain agents, Discord gateway with tunnel support, a knowledge browser, a media library, and a canvas the agent can write to. 38 database migrations. still building.