Checkpointing
Create automatic snapshots of your project before applying changes.
Why use checkpointing?
- Safety net: Experiment with code changes without fear of breaking your project
- Easy rollback: Restore your project to a previous state with a single command
- Conversation preservation: Return to the exact conversation context when a change was made
- Non-intrusive: Works alongside your existing Git workflow without interference
How checkpointing works
When you approve a file-modifying operation (such as write_file or replace), Bob Shell automatically:
-
Creates a Git snapshot in a shadow repository (
~/.bob/history/<project_hash>)Note: This shadow repository is separate from your project's Git repository and won't interfere with your normal Git workflow.
-
Saves your conversation history up to that point
-
Records the tool call that was about to run
This three-part checkpoint allows you to:
- Revert all files to their previous state
- Resume the conversation from where you were
- Review and potentially re-run the original tool call
All checkpoint data is stored locally on your machine:
- Git snapshots in
~/.bob/history/<project_hash> - Conversation history and tool calls in
~/.bob/tmp/<project_hash>/checkpoints
Enabling checkpointing
Checkpointing is disabled by default. You can enable it in two ways:
Settings file (persistent)
To enable checkpointing for all sessions:
- Edit your
settings.jsonfile - Add the following configuration:
{
"general": {
"checkpointing": {
"enabled": true
}
}
}Managing checkpoints
Viewing available checkpoints
To see all saved checkpoints for your current project:
/restoreBob Shell will display a list of checkpoint files with names that include:
- Timestamp
- Modified file name
- Tool that was used
Example: 2025-06-22T10-00-00_000Z-my-file.txt-write_file
Restoring a checkpoint
To restore your project to a specific checkpoint:
/restore <checkpoint_file>For example:
/restore 2025-06-22T10-00-00_000Z-my-file.txt-write_fileThis will:
- Revert your files to their previous state
- Restore the conversation history
- Re-propose the original tool call
Best practices
- Enable for critical work: Always use checkpointing when working on important code
- Test before relying: Try the restore functionality on a non-critical project first
- Regular commits: Continue making regular Git commits for meaningful changes
- Checkpoint cleanup: Periodically remove old checkpoints you no longer need
- Combine with version control: Use checkpointing alongside your normal Git workflow for maximum safety
Limitations
- Checkpointing only tracks files that are already under version control or have been modified by Bob Shell
- External changes made outside of Bob Shell won't be included in checkpoints
- Very large projects may experience slightly slower checkpoint creation times
MCP
Bob Shell supports the Model Context Protocol (MCP), allowing you to extend Bob's capabilities by connecting to external services and tools. This guide explains how to configure and use MCP servers with Bob Shell.
Slash commands
Create custom slash commands to automate workflows and standardize team practices.