Conversation management
Collapse, resume, browse, and compact conversations.
Conversations are durable objects in Mel — saved after every turn, browsable, resumable with full context, and compactable when they grow long. You never lose a thread because you closed a tab.
Where conversations live
Every conversation is saved as JSON under ~/.local/share/mel/accounts/<account>/conversations/ (one history per account; local when signed out), updated after each turn. With Settings → Privacy → Sync conversations to my account on, they also follow your account to your other computers. That one store feeds everything: the landing page's Recent Activity list, the Tools panel's conversations view, the /conversations picker, and resume.
Browsing: the /conversations picker
Type /conversations at the prompt to open a history picker right over the input: a search field with fuzzy matching, and rows showing each conversation's title and relative age. Navigate with ↑/↓, press enter to continue that conversation in the current pane, esc to dismiss.
The conversations list in the Tools panel
The Tools panel's conversations view keeps the same history in a persistent list beside your work:
- Search (the outlined box at the top) narrows the list by title as you type. It looks through your 50 most recent conversations and lists every match.
- New conversation opens a fresh agent conversation in a new tab.
- PAST is the band the list sits under. Click it to fold the list away, and again to bring it back.
- Each conversation is a two-line row. The first line has the agent's mark and the title. The second says where the run came from (for example App, Orchestrator or Worker) and, at the right, how long ago it last changed. A small green check on the mark means the last request was answered; with no check, that request has no answer yet (it was stopped, it failed, or it is still running or waiting for you).
- Click a row to open the conversation. Rest the pointer on a row for a Split button, which opens the conversation beside the current one instead of in its place. Right-click a row to export it.
- View all appears after the first 10 rows and opens the Runs screen (Ctrl+Shift+M, or *Agent Runs Dashboard* in the command palette). It lists every saved conversation under *Recent*, with the agents that are waiting for you or running above them. A search lists all its matches, so it shows no View all.
Resuming
Reopening a conversation — from the picker, a collapsed mini block, Recent Activity, the conversations panel (Ctrl+Shift+Y, ⌃⇧Y on a Mac), or Continue Last Conversation in the command palette — restores both the visible transcript *and* the underlying model context, so the agent genuinely remembers the thread rather than just displaying it. Model selection carries over too. See Entering & exiting for the collapse/resume flow.
Exporting a conversation
Export Conversation (command palette, the conversation's menu, or a right-click on its row in the Tools panel's list) writes the conversation to a .zip file: the transcript as Markdown and the usage as a CSV. Two options clean it up before you share it: Mask secret-looking strings (keys, tokens) and Replace absolute paths and your home folder. When it's written, Copy path puts its location on your clipboard.
The context gauge
The circular gauge in the input footer shows how much of the current model's context window the conversation has used, as an arc with the percentage beside it once it passes 2%; hover it to see what it measures. Long tool outputs and image attachments all count against it.
Compacting: /compact
When a conversation gets long, compaction folds the older turns into a compact summary so there's room to keep working:
/compact— compact now. Older turns are replaced by a structured checklist of what happened — which files were touched, what commands ran and produced — and a notice marks the compaction point in the transcript. If the conversation is still short, Mel tells you there's nothing to compact yet./compact <focus>— same, but the summary is steered toward what you name ("/compact the auth flow") so the details you still care about survive the squeeze.
Compaction happens at turn boundaries only — never in the middle of a running task.
Automatic compaction
You usually don't need /compact manually: when a conversation approaches the model's context window, Mel compacts automatically at the next turn boundary, measured against the window of the model actually in use. Inside a single long run, a separate mechanism trims older tool results as it goes — see Tasks & the lifecycle.
Durable facts don't depend on the transcript surviving: project memory holds them across compactions and across conversations entirely.