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. Once the conversation has ten events — your messages, each tool call, each answer — Semantix names it for you from its first turns, once. Rename it by hand any time, or ask for a fresh name (see History below).
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 four buttons: Hand off; a sparkle to Name it; a pencil to Rename — Enter commits, Escape cancels — and a trash icon to Delete.
Name it asks Semantix to title the conversation for you. It reads the first few turns through your Primary seat model and replaces the generic title — the first thirty characters of your first message — with what the conversation is actually about, in your own words and language: Rename the run history panel instead of hello buddy, can you please…. The row pulses while it runs, a pill beside the Chat history title says Naming the conversation and then Named "…", and the new title lands on the row, the tab if the chat is open, and the disk. It works on closed conversations too. Close the window while it runs and the pill moves to the header row at the top right, where Semantix's other background work shows, so it's never out of sight.
The sparkle is only offered when a seat is set under Settings → Studio → Semantix's own models — it runs on that model, on your key, and nothing is stored on the server. It does not need memory switched on. If it can't name the conversation, the pill says why: nothing said yet, never saved, or a seat holding a model Semantix can't call itself.
Most of the time you won't need it. When a conversation reaches ten events and still has the title its first message gave it, Semantix names it on its own as that turn finishes, the same way: the pill says Named "…", and the title changes on the tab and the row. It happens once per conversation, and never over a title you chose — rename a chat before then and it keeps your name. If it can't run, no pill appears; the sparkle is still there. Conversations opened through the home door are named the same way: the title is Semantix's, and the house's own session is never touched.
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#
Every conversation keeps a hand-off: a short note, written by your Primary seat model, on what this session is about and where it stands. Semantix keeps it up to date in the background while you work. The next new chat in the project reads it on its first turn, so it doesn't start cold.
To have it written fresh from the whole conversation, last turns included, use /handoff in the
composer or 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. Either way it needs memory switched on.
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.
Pinned notes#
Something in an answer you'll want in front of you for the next hour — a plan, a checklist, a
command. Select it in the conversation and click the Pin chip that appears above the
selection. It becomes a note floating over the IDE, keeping the answer's formatting.
- Drag a note by its header to move it; it stays on screen when the window resizes.
- The chevron folds it down to its title — the first line of what you pinned.
- If the note holds a list, click an item to strike it through; click again to bring it back.
- Jump to where this was pinned scrolls the conversation back to the answer and flashes it. A note pinned in another project can't jump from here — it says Pinned in <project>. Open that project to jump back.
- × removes the note for good.
Notes are yours, not a project's: they stay where you left them across restarts and across every project. To clear the screen without losing them, turn them off under View → Pinned notes; turn it back on and they return where they were.
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.