Histo
A VS Code extension that automatically tracks workspace changes using shadow Git, providing protection against unwanted changes from AI copilots and other sources. Kind of like autosaving checkpoints in the game of software development, allowing you to restart and start vibing from any point in past.
Features
- Automatic History Tracking: Changes to your workspace are automatically tracked in a separate Git repository
- Smart Change Detection: Changes are auto-committed shortly after file modifications
- Manual Commits: Manually commit your workspace state when needed
- Visual History Browser: Browse through previous workspace states with a dedicated side panel
- Easy Restoration: Restore your workspace to any previous state with a single click
- File Difference Viewer: View detailed changes between commits
How It Works
Histo creates a shadow Git repository in a configurable location that mirrors your workspace. This allows you to:
- Track changes without interfering with your existing Git setup
- Recover from unwanted changes made by AI assistants or accidental edits
- Maintain a complete history of your workspace
Usage
- Install the extension
- Configure the history storage location (optional)
- Work normally in your workspace
- Access your workspace history through the Histo panel in the Activity Bar
- Revert to any previous state when needed
Commands
- Histo: Commit Current Changes - Manually commit the current workspace state
- Histo: Show Workspace History - Open the history viewer
- Histo: Configure History Path - Set the location for storing history repositories
- Histo: View Commit Changes - Show detailed diff for a selected commit
- Histo: Restore to Commit - Restore workspace to a previous state
Configuration
- histo.historyPath: Path to store workspace history Git repositories
- histo.commitDelay: Delay in milliseconds to wait after a file change before committing (default: 100ms)
- histo.autoSaveInterval: Interval in milliseconds for timer-based automatic commits; set to 0 to disable timer-based commits and use file changes only (default: 0)
- histo.customIgnorePatterns: Custom patterns to ignore files/folders beyond what's in .gitignore (supports glob patterns like '/node_modules/')
File Exclusions
The extension respects your workspace's .gitignore
file and custom ignore patterns specified in settings, automatically excluding these files from being tracked in the history repository.
Screenshots
Here's a visual guide to Histo's key features:
History Tree View

The history tree view shows a chronological list of all commits in your workspace history. Each commit displays its timestamp and includes visual indicators:
- Star icon (⭐): Marks your current workspace state
- Arrow icon (➡️): Indicates commits that are "in the future" relative to your current workspace state
- Click any commit to view detailed changes or restore your workspace to that point in time
Commit Diff View

The diff view provides a detailed look at changes in each commit:
- Syntax highlighting for better readability
- Color coding (green for additions, red for deletions)
- "Restore" button lets you instantly revert your workspace to this commit state
- File-by-file breakdown of changes
Auto Sync Notifications

Histo automatically tracks changes in your workspace:
- Silent tracking happens in the background while you work
- Notification banners appear during major operations (initial sync, restoration)
- Progress indicators keep you informed during lengthy operations
Extension Settings

Customize Histo's behavior through VSCode settings:
- Configure history storage location
- Adjust commit timing and delay
- Set performance mode (fast, standard, or thorough)
- Modify batch processing settings for large workspaces
Force Sync Operation

The Force Sync feature ensures your history is complete:
- Manually trigger a complete workspace scan
- Useful after large changes or when automatic tracking might have missed files
- Progress indicators show the status of the operation
Requirements
- Visual Studio Code 1.98.0 or higher
- Git installed and available in PATH
- Sufficient disk space for history storage
Icon

The Histo icon represents a timeline with history points, symbolizing the extension's core functionality of tracking and preserving workspace history.
License
GNU Lesser General Public License (LGPL)