Sessions and History
On this page
Lesson updated November 2, 2026 based on Work with the CLI: actual session location (
~/.vibe/logs/session/),--resumeselector, and/resume,/branch, and/rewindcommands. Source: Continue or resume sessions.
What a session contains
Every time you run vibe, a new session starts. It records the entire exchange: your messages, the agent’s responses, executed commands, read files, and applied changes. This saving happens automatically and continuously in the ~/.vibe/ directory. You don’t need to run any command to trigger it; every turn of the conversation persists as it happens.
The practical benefit shows up the day you accidentally close your terminal or simply wrap up for the evening.
Picking up where you left off
The most common scenario uses --continue:
vibe --continue
Or the short version:
vibe -c
Vibe reloads the last session from that terminal in the current directory (or, failing that, the most recent one in the directory) along with its context: conversation history, tool results, and the list of pending tasks. The agent picks up exactly where it stopped, so you don’t have to re-explain the project status.
When multiple sessions exist and you want to target a specific one, pass its ID to --resume:
vibe --resume abc123def
Each session has a unique ID (a partial ID works). Without an ID, vibe --resume opens a selector for past sessions in the directory. Inside a session, /resume (or /continue) opens the same selector, /branch duplicates the conversation into a new resumable session, and /rewind (or pressing Esc twice) jumps back to a previous message to restart from there. Sessions save by default to ~/.vibe/logs/session/, a location you can change with save_dir in the [session_logging] section of config.toml.
This persistence matters most for refactorings that span several days. You make progress on a migration plan, close the terminal, and the next morning vibe -c restores your message history, tool results (files read, commands run, code searches), and the task list with its progress. Note that the file state reflects your disk: if you modified code in the meantime, tell the agent.
When to start fresh
Resuming isn’t always the right move. Three situations call for a new session: you switch projects or working directories, you move to a task unrelated to the previous one, or the accumulated context has grown so large that responses slow down. In these cases, just run the bare command:
vibe
Without --continue or --resume, Vibe systematically creates a new session, even if a recent one exists.
The slowdown issue deserves attention because it’s cumulative and silent. The longer a session runs, the larger the context grows, creating two simultaneous effects: the model must process more tokens per exchange, which lengthens response times, and every request includes this history in the billable context, which raises costs. A session open for three days therefore costs more than a fresh session for identical work.
Lightening the load without changing directories
If the conversation has grown heavy but you want to stay exactly where you are, the slash command /clear wipes the history while keeping the session alive:
/clear
The project context—directory tree, Git status—simply re-scans on the next message, so you start light without losing what Vibe knows about your repository.
A complementary discipline is to open one session per work theme rather than a catch-all session. Keep a major project on one side:
# Session for auth refactoring
cd /chemin/projet
vibe "Commençons le refactoring du module d'authentification"
# ... work ...
# Ctrl+C to quit
# The next day, resume
vibe -c
And use a separate session for an urgent issue that pops up in the middle:
# Separate session for an urgent bug fix
cd /chemin/projet
vibe "Il y a un bug critique en production sur le endpoint /api/orders"
Each session keeps its own history. The production fix doesn’t pollute the refactoring reasoning, and vice versa.
Command history and storage
Alongside conversation history, Vibe keeps a history of commands typed in interactive mode. Use the Up and Down arrow keys to navigate, exactly like in a standard shell: you can retrieve a well-formulated prompt from yesterday without retyping it.
Regarding privacy, remember that all session data stays local in ~/.vibe/. Your conversations, code, and commands never transmit to a third-party service for storage; only requests sent to the model pass through the Mistral API, or the provider you configured. If the default location doesn’t suit you—perhaps you need an encrypted disk or dedicated volume—redefine it:
export VIBE_HOME="/chemin/vers/stockage"
Key takeaways
- Every
vibelaunch creates a new session, saved automatically vibe -cresumes the last session with full contextvibe --resume IDresumes a specific session by its ID/clearwipes session history to start with a light context- Create thematic sessions to avoid mixing contexts
- All data stores locally in
~/.vibe/