Why I built it
My AI workflow had spread out. A model in one interface, a coding agent somewhere else, project context across files and conversations, memory in another system, tools connected through their own integrations. Each piece was useful. I was spending too much of my time managing the pieces.
What I wanted was one place to start with a conversation and move into the actual work: pull in project context, use a tool, dispatch an agent, review what it did, capture something worth remembering, or check what was really being sent to a model. Chat alone stopped being enough once several agents were working the same project.
So I designed the workspace I wanted to work in.
What sits behind the conversation
The workspace above is the whole product in one frame: the Spine mid-conversation, with the memory rail open and the composer carrying model, spend, context size, skills, and MCP. Three of those surfaces are worth seeing on their own, because they are where it stops being a chat window.
Screenshot placeholder
The context inspector: sources, sizes, and share of the budget.
Context
Context is invisible in most AI interfaces, so when something goes wrong it is hard to tell whether the model had the wrong information, stale information, too much, or none of what you expected. Here it has its own surface: what came in, where from, and what share of the budget it took.
It is also explicit about what it cannot see, such as provider-controlled routing, rather than folding that into the numbers.
Screenshot placeholder
Agent activity: tasks, status, ownership, and spend.
Agents
Once several agents work the same project, chat alone is not enough. I need to know who is doing what, what they are working against, where the work could collide, and when to step in.
Built around inspection and control rather than autonomous execution.
Screenshot placeholder
The memory rail: a memento tied back to its exchange, and the promotion step.
Memory
Not everything in a conversation is equally valuable memory. Useful insights surface as mementos tied back to the exchange they came from, and a session can be reflected on afterward.
Accepted mementos are written to Fraimed. Sophie owns the interaction, Fraimed owns the durable layer.
Conflicts and human intervention
Parallel agents create a different problem: two workers can both be doing reasonable work and still interfere with each other. Safe changes should be recovered from quietly. A real conflict should stop and ask for a decision instead of silently overwriting someone’s work. Drift detection, stale-write protection, re-read and merge, and human resolution all sit behind that, and the walkthrough is the right place to show them moving.
See it
A design walkthrough rather than a product demo, and labelled that way. It moves through resuming project work, inspecting the context going into a task, managing an agent, promoting a memento to Fraimed, and reaching a point where a person has to decide.
Decisions that matter
- Context should be inspectable
- If context affects the answer, I should be able to see what Sophie contributed and where it came from.
- Agents should be interruptible
- Delegation should not mean giving up control. Inspect, steer, interrupt, resume.
- Memory should be curated
- Not everything said deserves to be remembered, so promotion is a decision rather than a side effect.
- The workspace should not belong to one provider
- Which model is in use is a setting. Sophie is the stable layer around it.
- Repeated work should become reusable
- Ways of working I do not want to explain again become skills with an explicit purpose, tool access, and scope.
What exists today
The workspace shown above is the resolved product design being built, specified surface by surface, rather than a shipped interface. Sophie is not a commercial release.