The problem
The usual approach asks the model to write a fresh summary of everything so far, every time. Each rewrite loses a little, and over many rewrites the losses add up:- The long-term goal fades. Each rewrite decides again what still matters. A goal set at the start and not discussed lately gets shorter, then drops out.
- A subtask becomes “the goal”. A summary captures what happened most recently. When the current subtask is done, the summary says the work is done, even though the larger job still has items left.
- Your words drift. A constraint you stated is paraphrased, then the paraphrase is paraphrased. Limits soften, permissions widen or vanish, and a background message that says “the user asked…” can be taken for something you said.
Mind, memo, and now
Vibey’s condensation is called a checkpoint. It is consolidation, not bookkeeping: like a mind sorting through the day’s experience during sleep, Vibey looks back over the work, revises its understanding layer by layer, and lets go of details. The original conversation stays stored, so a detail it let go can be looked up again. A checkpoint has three parts, and each changes in its own way:The mind
The mind has four sections, from the most stable to the most changeable:- Where I stand: for whom and why the work is done, what Vibey owns and where that ends, and its agreements with you: how to report, when to ask, what it may decide, and what it is authorized to do.
- Goals: the Mission, the ultimate purpose of the conversation in Vibey’s own words, and the Workstreams that serve it, each with its status and, where it has a queue, how far it got and what is next.
- Key decisions, each with its reason.
- Lessons, written as principles that also apply later.
The memo
Each message you typed that a checkpoint moves out of the context becomes a candidate. Vibey sees them as a checklist: one line per message, with a checkbox, its number, and a short preview. Its only job is to tick:- Keep a message that sets or changes the direction, states a constraint or a prohibition, expresses a preference, or grants a permission.
- Release a kept message once it is withdrawn, superseded, or done, or once the mind holds its meaning completely.
- Skip instructions that only move the work along, such as “continue”, and short replies that make no sense on their own.
The now
The now is the working state, written fresh at each checkpoint:- the current step, and the workstream it belongs to
- progress: done, in progress, and blocked or open
- what Vibey is waiting on: background commands, Watches, Tasks, delegated runs, and questions to you, with their ids
- the next steps, tied to your latest explicit request and quoting your words
- pitfalls: mistakes, false assumptions, and dead ends, with the exact error text
- exact references: the paths, ids, commands, links, and values needed to continue
How a checkpoint runs
A checkpoint starts when the next request would pass about 90% of the model’s context window. It starts earlier when the room kept for the reply and a safety margin need more space, or when the model’s price per token rises above a context size. First, Avibe writes two files into the session’s scratch folder: the previous mind (an empty template the first time) and the memo checklist. The checkpoint turn then pauses the work and runs on the same model, with the conversation as it stands. Vibey can read files, but it can change only those two files, and it has at most five rounds of tool calls. The request tells Vibey that it comes from Avibe, not from you, and that it must not be recorded as something you said. After a checkpoint, each request carries:- the system prompt, rebuilt for every turn: Vibey’s identity, rules, Skills catalog, and your
AGENTS.mdfiles. A checkpoint never condenses it. - the checkpoint, framed as Vibey’s own recollection rather than new instructions. Your words and your agreements in it still apply.
- the most recent messages, word for word, up to 20,000 tokens. On a small model, the limit is a quarter of the checkpoint threshold.
Who said what
Not every input comes from you. Watches, Tasks, callbacks, and other Agent sessions also send messages into a session. Each input no person typed begins with a source line, such as:[Harness:, Avibe puts your name before it, so the label cannot be forged. The source line applies to every Agent backend, not only Vibey.
The checkpoint relies on it twice. The instruction tells Vibey that only messages you typed are your words. The memo goes further: its candidates come from the record’s own type, so a Watch’s, a Task’s, a callback’s, or another session’s message can never enter it, whatever its text says.
What else a checkpoint carries
- Skills, by recency. Skills whose loaded text would leave the context come back as they read now. The most recently loaded come first, each up to 5,000 tokens. Together they take at most 25,000 tokens or a tenth of the model’s window, whichever is smaller, with at most 20 skills. A carried skill does not count as a new load, so one that is not loaded again eventually drops out. A cut skill says how to load all of it with
vibe skill load. - A short file list. Paths only: the 10 files most recently modified and the 5 most recently read, with a note when earlier ones were pushed out. Files that matter go into the now’s exact references.
- Where the full record is. Earlier messages, the inputs and Vibey’s replies, stay in Avibe’s database. The checkpoint tells Vibey where they are and how to read your own messages in order. A memo entry’s number points to its message. Tool outputs are not kept there; Vibey runs the tool again when it needs the output.
Checks and fallbacks
Avibe checks every checkpoint before it is used:- Now: exactly one checkpoint block, with a minimum length.
- Mind: every heading intact and in order, no fewer Mission entries than before, and each section within its limit.
- Memo: nothing changed except checkboxes, and the kept messages within their budget.
A failed checkpoint changes nothing: a request that still fits is sent as it is, and a later request tries again. When the conversation is too large for a checkpoint turn, Vibey takes the checkpoint over its earlier part, up to about half, trying at most twice. When the request no longer fits and no checkpoint can be taken, Vibey moves about the earliest half out without calling the model. When it fits, that move keeps the previous checkpoint: its mind, now, and skills, and a memo with every message you typed that moves out. After two checkpoints in one run fail or make too little room, Vibey takes no more checkpoints in that run, and only that move makes room. If the newest tool output alone cannot fit, it is cut to fit and says so.
What you see
Nothing interrupts you. There is no notice and no/compact: Vibey takes a checkpoint in the middle of a turn and carries on with the same task. That turn takes a little longer, because the checkpoint is extra requests to the same model, which use tokens like any other request. A failed checkpoint is silent as well; Avibe’s log records why.
You hear about context only when nothing more can move out. Then Vibey stops and says what is too large, for example: This conversation has grown too long to continue reliably. Start a new session with /new.
Limits
- Condensed is not complete. What is not in the mind, the memo, the now, or the recent messages is gone from the context. Vibey has to look it up in the record, and it re-runs a tool to see that tool’s output again.
- The model writes the mind and the now. A checkpoint is only as good as the model that writes it, and results differ by model; see the benchmark.
- Bounded budgets. Very long messages are cut in the memo and referenced by number. On models with a window under 192,000 tokens, the mind and memo budgets shrink in proportion.
- One session. A checkpoint is the memory of its own session.
- Vibey only. Claude Code, Codex, and OpenCode run unchanged in Avibe and condense their context in their own way. The source line on background inputs applies to them too.
