Rivo · 2026 – Ongoing

Rivo — AI-native workspace

Context as the interface 2026

Most AI tools ask you to describe a task before they can help. Rivo starts from the opposite direction: it reads what you are already working on, keeps that context alive, and lets the model act inside it.

The workspace is built around a single idea — that the hard part of working with AI is not the prompt, it is remembering. Files, decisions, half-finished threads and the reasons behind them all need to survive between sessions.

I designed the interaction model and the underlying context layer, then worked with a small team to ship the first release.

The context is a document Design

Most agent memory is a transcript — an append-only log of everything that was said. Transcripts are cheap to write and expensive to audit: the decision that matters sits between two paragraphs about lunch.

Rivo keeps the context as a document instead. One Markdown file that describes the work as it stands — the goal, the decisions, the constraints, the open questions, and the things that are no longer true. The conversation is where the document gets written. It is not the document.

A document has properties a log does not. You can read it in one sitting, edit a line without rewriting history, and hand it to someone else — a teammate, or another model — and they can pick the work up.

context.md · reviewed against the goal “ship the review UI by Friday”
04## Goal
05Ship the context review UI before Friday.clear
06## Constraints
07Read-only on mobile; editing stays on desktop.explicit
08Keys: j / k to move, ∴ + enter to accept.explicit
11Mobile is read-only for now.duplicate of 07
14Email digest experiment — paused, revisit later.off-goal
22Ship date: next Wednesday.stale
31Open — diff the source Markdown, or the rendered view?unresolved
What we look for Review

Because the context is a document, it can be reviewed like one. Six questions, asked over the whole file:

ClearIn one pass, do you know what this task is?
ExplicitAre the constraints, definitions and decisions written down, or left implied?
RelevantDoes every line still serve the goal, or has some of it drifted?
EfficientIs this the shortest version that still covers the work?
OrderedIs it arranged the way you would explain it to a new teammate?
HonestDoes anything contradict, duplicate, or quietly expire?

A context that fails these is rarely a memory problem. It is a writing problem — and writing problems are the fixable kind.

The failure modes are predictable, so we surface them next to the document instead of leaving them to be discovered later:

Duplicatethe same fact twice Contradictiontwo lines that cannot both be true Driftno longer touches the goal Stalewritten against an older objective Orphannothing refers to it
Editing, as a diff Method

The model does not silently rewrite the document. Every change arrives as a diff: a line added, a line removed, a section collapsed. Each one carries its reason — “this repeats §2”, “the constraint changed”, “this decision was superseded”.

You accept or reject. Accepted edits move into the document; rejected ones become feedback. Nothing rewrites itself while you are not looking.

That is what keeps a long context small. Pruning is a first-class action rather than a cleanup job, so the file gets shorter as the work gets clearer — instead of growing until it is unusable.

context.md one pruning pass rewritten pruned
1# context.md
2 
3## Goal
4Ship the context review UI before Friday.
5 
6## Constraints
7Mobile is read-only.
8Mobile is read-only for now.
9Keys: j / k to move
10 ∴ + enter to accept
11 
12## Notes
13Standup, retro, lunch — Tuesday.
14Ship date: next Wednesday.
15Maybe rename the panel? TBD.
16Open — diff source or rendered view?
1# context.md
2 
3## Goal
4Ship the context review UI before Friday.
5 
6## Constraints
7Mobile is read-only;
8 editing is desktop-only.
9Keys: j / k to move
10 ∴ + enter to accept
11 
12## Open
13Diff the source Markdown, or the rendered view?
14Ship date: Friday.
16 lines 14 lines 1 rewrite 1 prune
Memory that earns its place 2026

A workspace that remembers everything is as useless as one that remembers nothing. The design problem is selection: what should follow you forward, and what should quietly fade.

We treat memory as a ranked, decaying store rather than an append-only log. Items compete for attention based on how recently and how often they were relevant, and anything the user pins stays put.

The result is a surface that stays small.

Instead of a chat history that grows without limit, Rivo shows a handful of live threads and keeps the rest a search away.

What comes next Ongoing

The next step is making context portable — so that the work you do in one tool can travel to another without being retyped, re-explained or lost.

That means treating context as a format rather than a feature, and building the workspace so it can be embedded anywhere the work happens.