vibe_checkpoint
v1.0.0
Published
Vibe Checkpoint CLI - Superfast drafting without Git
Downloads
21
Maintainers
Readme
Vibe Checkpoint 🚀
English | Tiếng Việt | Español | Français | Deutsch | Italiano | Português | Русский | العربية | हिन्दी | 日本語 | 한국어 | 中文
vibe save before you break things. vibe back when you do.
Vibe Checkpoint is a compact CLI tool that helps you superfast draft your project without worrying about the complex operations of Git (commit messages, branching, stashing).
Created exclusively for "vibe coders" - people who just want their code to run, quickly experiment with crazy ideas, and immediately roll back if something goes wrong.
🌟 Features
- Superfast Save (
vibe save): Quickly zip your working directory and store it safely in the.vibefolder. - Auto-Save (
vibe watch): Automatically save a checkpoint when you stop typing/editing. - Time Travel (
vibe back): Choose an old checkpoint and restore the entire directory back to that exact state with a single action. - Auto Cleanup (
vibe clean): Automatically delete old zip files based on count (--keep) or age (--before). Supports automatic cleanup via.vibe/config.json. - Ignore Garbage (
.vibeignore): Works exactly like.gitignore, preventing the zipping ofnode_modulesor.git. - Code Diff (
vibe diff): Compare two checkpoints and view the red/green text changes directly in your terminal.
📸 Screenshots
| CLI Menu | Save View | | :---: | :---: | | | |
📦 Installation
Since the project is written in Node.js (TypeScript), you need Node.js installed on your machine.
- Clone this project folder to your machine.
- Open terminal in the project folder, run the following command to install packages:
npm install - Link the CLI to the global system to use it anywhere:
npm link
Now you can open any project on your machine and type the vibe command!
💻 Usage Guide
1. Save a Checkpoint
Before starting a code refactor or testing a risky new library, save a draft:
vibe save "before installing react-router"The tool will automatically exclude folders like node_modules or dist to save extremely fast.
2. View Checkpoint History
To review what versions you have saved:
vibe list3. Restore a Checkpoint
If your new idea fails, you can easily go back to the old version:
vibe back cp_001Or if you don't remember the ID, just type vibe back and the system will display an interactive menu for you to select using the arrow keys!
4. Cleanup Checkpoints
Keep the 10 most recent saves and delete older versions to free up space:
vibe clean --keep 10Or delete checkpoints older than 2 days / 12 hours:
vibe clean --before 2d
vibe clean --before 12h5. Delete a specific Checkpoint
If you want to delete a specific checkpoint by its ID or index:
vibe delete 5
vibe delete cp_0055. Auto-Save (Watch)
Automatically create a checkpoint when you are idle (stop typing/editing) for a specified number of seconds:
vibe watch --idle 306. Compare Source Code (Diff)
If you want to know what files you have changed, what lines of code you added or removed between 2 versions (e.g., version 1 and 2):
vibe diff 1 28. Change Language (i18n)
Change the CLI language globally (supports 13 languages):
vibe lang vi⚙️ Configuration (.vibe/config.json)
You can enable Auto-Clean to automatically delete old checkpoints when creating new ones:
{
"maxCheckpoints": 50,
"autoClean": true
}🏗 Architecture (Under the hood)
- Storage (
.vibe/): When you save a checkpoint for the first time, the system will create a hidden.vibefolder right in your current directory. - Snapshot Manager: Uses the
archiverlibrary to zip code into a file, saved to.vibe/snapshots/cp_00x.zip. - Metadata Manager: The
.vibe/history.jsonfile acts as a notebook recording the time and notes of each checkpoint. - Ignore files: By default, the tool will ignore
node_modules,.git,dist, and the.vibefolder. You can customize this by creating a.vibeignorefile in the root of the project folder.
🔮 Roadmap
- [x]
vibe diff <id1> <id2>: Compare 2 checkpoints and display detailed red/green text for changed lines of code. - [ ]
vibe push: Automatically convert the current checkpoint into a standard Git commit for those who want to push to GitHub.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
Created to keep the coding rhythm from ever stopping. Happy Coding! 🎶
