Conversations and history

Tabs, history, hand-off, replay, and where your chats are stored.

Tabs#

Ctrl/Cmd+T or the New chat button starts a conversation. It isn't saved yet — a new chat exists only in the window until you send the first message. Ask for a second one while a blank chat is already open and Semantix takes you to that one instead of stacking another.

The tabs run along the top of the agent panel, styled like the editor's file tabs, each with a dot in the conversation's own colour. Click one to switch, middle-click or use its ✕ to close; right-click the strip for New Tab. Cycle with Ctrl/Cmd+Tab (or Ctrl+Shift+←/→), or jump straight to one with Ctrl/Cmd+1 through 9 (9 is the last).

Closing a tab does not delete the conversation. It goes back to the history list.

The title is taken from your first message, and it stays that way until you rename it.

History#

The Chat history button opens a window listing every conversation in this project, newest first. Each row carries a few margin notes: #41 — this is the project's 41st session; a speech bubble with the number of turns; a check mark if the session has been handed off (faded, with but you talked after — hand it off again, if you spoke after the note was written); and a small terminal mark on a conversation imported from Claude Code's own transcripts. Click a row to open it.

Hover a row for three buttons: Hand off, a pencil to Rename — Enter commits, Escape cancels — and a trash icon to Delete.

Note

Delete has no confirmation. One click on the trash and the conversation is gone from disk — and its cloud backup is deleted too, if it had one. There is nothing left to restore from.

The list pages in ten rows at a time as you scroll; a line at the bottom reads 10 of 362 — scroll for more while there are more. It refreshes when you open it, when you switch project, and when a new conversation is created.

Handing a session off#

A conversation can end with a hand-off: a short note, written by your Primary seat model, on what this session was about and where it left off. The next new chat in the project reads it on its first turn, so it doesn't start cold.

Ask for it with /handoff in the composer, or with the Hand off button on a history row. It runs in the background — the transcript says Handing off… and then Session 41 handed off — and you can keep working. It needs memory switched on. Semantix also hands idle sessions off on its own, so most conversations get a note whether you asked or not.

→ Handing a session off

Replay, clone, restore#

Three different things that sound similar:

Replay folds the conversation back to a chosen turn and gives you a stepper — arrow keys to move, Escape to leave. It's view-only and changes nothing. It also re-enacts the turn in the 3D view, so you can watch what the agent did to your project a second time, without it happening again.

Clone copies the conversation into a new chat titled … (copy), so you can branch off with the same history intact.

Restore rolls your files back to a checkpoint taken before that message. It does not undo the conversation — the messages stay exactly where they are. A checkpoint of the current state is taken first, so restoring is itself undoable. It's offered on every turn where the agent made an approved change, on every model — see What the agent can do.

Where your conversations live#

On your machine, in ~/.semantix/conversations.db — one SQLite database holding the chats for every project, scoped internally by project. It sits at the root of ~/.semantix deliberately, so a --clean reindex can't take your history with it.

Writes are debounced, so a crash can cost work in progress — and because the timer restarts on every change, a turn that is actively streaming keeps pushing the save back until it settles. A crash mid-turn loses that turn.

Your per-project state — which tabs were open, the last model you picked — lives in a separate user_state.db alongside the index, deliberately kept out of the index database so that a clean reindex, which deletes the index wholesale, can't take your settings with it.

Conversation text never leaves your machine on its own. The history list, loading, saving and deleting all speak to the on-device server only — there is no server-side copy unless you ask for one.

What does leave, necessarily, is the turn itself:

  • On Claude Code, the turn goes out through your own Claude login. Semantix isn't holding a key for you.
  • On a connected provider or a custom model, the request carries your prompt, the history, and the model's endpoint and key, so the turn can be made against that provider.

Backing up to the cloud#

Settings → Privacy has Local only switched on by default, and with it on, nothing is uploaded, ever.

Turning it off unlocks two things: Back up conversations and Semantix Memory. They're independent switches — turning off Local only doesn't enable them, but it is the switch that makes them available.

Note

Back up conversations is continuous, not a manual push. From the moment you switch it on, every open conversation is uploaded as it settles, and keeps being uploaded as you work. The two buttons beside it — upload everything now, restore everything — are for the back catalogue, not the ongoing behaviour.

Backups are stored per conversation and per project, so a restore brings back this project's chats and reports Nothing to restore for this project. for anything else. Conversations that are mid-stream are skipped and counted separately.

Turning Local only back on asks whether to delete the backups already on the server, and lets you choose all projects, this project, or keep them.

→ Privacy

Models and instructions#

Which models the picker offers is decided in Settings → Models — connect a provider with one key, switch on a coding agent installed on this machine, or add a custom endpoint by hand.

→ Models

Settings → Instructions holds one global instruction that applies in every project, and any number of project instructions stored as markdown under that project's folder. Project ones are either auto — attached to every turn — or manual, which is what makes them show up in the slash menu as INSTR rows to pull in deliberately.

→ Instructions and commands

Odds and ends#

You must be signed in to use the chat at all; the panel shows Sign in to continue until you are.

Conversations belong to a project. Switching projects reloads Semantix from scratch — tabs, model default and history are all per project.

If Semantix is killed mid-turn, reopening the conversation settles it: streaming stops, unfinished tool calls are marked failed, and an unanswered permission prompt counts as denied.