> For the complete documentation index, see [llms.txt](https://docs.codemate.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.codemate.ai/cora-cli/conversations-and-context.md).

# Conversations and Context

Manage your conversation history and understand the context window and session cost.

## Conversations and history

Every conversation is saved on your machine as you go.

| Command         | What it does                                                    |
| --------------- | --------------------------------------------------------------- |
| `cora sessions` | Browse past conversations from the command line                 |
| `/sessions`     | The same screen, without leaving `cora`                         |
| `cora resume`   | Reopen the most recent conversation in this project             |
| `/new`          | Start a fresh conversation; CORA keeps nothing from the old one |
| `/fork`         | Branch the current conversation, keeping both                   |
| `/archive`      | Hide this conversation from the default list (it stays on disk) |

### The conversation picker

```
Search: ord▌

›  fix duplicate orders               2 hours ago
   add delivery note to orders        yesterday
   order totals are wrong for mixed ...  3 days ago

↑↓ move · enter open · ctrl+x archive · ctrl+d delete · type to search · esc cancel
```

| Key                               | What it does                                             |
| --------------------------------- | -------------------------------------------------------- |
| **Type anything**                 | Search; it matches titles *and* the text inside messages |
| **↑ / ↓**                         | Move                                                     |
| **Enter**                         | Open that conversation                                   |
| **Ctrl+X**                        | Archive it                                               |
| **Ctrl+D**, then **Ctrl+D** again | Delete it. Two presses, because there is no undo         |
| **Esc**                           | Leave                                                    |

Three useful facts:

1. **History is per project.** You only see conversations you had in *this* folder. Another project's work never clutters this one's list.
2. **It works when everything else is down.** Browsing your history does not need the Toolbox or a connection, which is exactly when you most want it.
3. **Reopening an old conversation may show a notice** saying the live session had to be started fresh. Your transcript is intact; CORA just needs to be brought back up to speed. If the detail matters, say so in your next message.

{% hint style="info" %}
**Keep unrelated work in separate conversations.** One conversation should be about one thing. If you switch from an authentication bug to a documentation cleanup, start a `/new` conversation. Long mixed conversations get expensive and vague; short focused ones stay sharp.
{% endhint %}

***

## Context and cost

`cora` can only hold so much of a conversation in mind at once. That budget is called the **context window**, and `/context` shows how full it is.

```
in use 26.2k

Last turn:
  transcript, re-read   26.0k
  written to cache          0
  this prompt              110
  the answer                 3
  reasoning                  0
  total                  26.2k

turns measured 2 · session cost $0.021
```

It also shows what the session has cost, when there is a cost to show; a free model prints no cost line at all rather than `$0.000` forever. **`window`** and **`remaining`** are not printed on this build: the provider reports no context limit, and a row that can only ever say "unknown" teaches people to skip the whole block. Everything under **Last turn:** is measured.

### The warning

There are two warnings. At **80% full** a line appears above the prompt saying so and naming the cheap remedies; at **95%** a louder one says the window is nearly gone and offers `/compact`. Each appears once, not once per turn, and stays while it matters. Below 80% there is nothing on screen at all, on purpose. Both need a context limit from the provider, and on a build where none is reported neither can fire. `/context` is then the only reading you get.

### What to do when it fills up

| Option               | What it does                                           | When                                      |
| -------------------- | ------------------------------------------------------ | ----------------------------------------- |
| `/new`               | Start fresh                                            | The next thing is unrelated anyway        |
| `/fork`              | Branch, keeping this conversation                      | You want to keep this one to come back to |
| `/compact` or Ctrl+L | Fold the older part of the conversation into a summary | You want to carry on with the same work   |

### About `/compact`

{% stepper %}
{% step %}

## It summarises the conversation

`/compact` summarises the conversation so far and keeps the recent turns in full. It takes a few seconds, because writing the summary is real work.
{% endstep %}

{% step %}

## Your transcript remains intact

Nothing on your screen is deleted; a divider shows where the fold happened.
{% endstep %}

{% step %}

## CORA retains the summary and recent turns

CORA keeps the summary plus the most recent turns.
{% endstep %}

{% step %}

## It is lossy

A summary is a paraphrase, and a paraphrase can drop the one detail you were relying on. This is why CORA never compacts on its own without telling you.
{% endstep %}

{% step %}

## Check when it last happened

`/context` tells you when it last happened, which answers “why has it forgotten that?” after you reopen an old conversation.
{% endstep %}
{% endstepper %}

Before compacting, consider writing anything you must not lose into a file: a plan, a rule, or a note in your project. A decision recorded in a file survives everything; a decision that exists only in a conversation does not.
