Eko is an AI-powered, high-performance snapshot versioning command-line interface (CLI) written in Go. It allows developers to capture, compare, and restore directory states concurrently. Think of it as a lightning-fast "Time Machine" designed for local development.
- Concurrent Snapshots: Instantly capture filesystem states using a worker-pool concurrency model.
- Atomic Restores: Revert workspaces cleanly with safety guards and thread-safe error recovery.
- Metadata Management: Structured storage of snapshots and logs in a local, self-contained SQLite database.
- Diff Comparison: Efficiently compare changes between snapshot points.
- Go: Version 1.21+ is required to build from source.
brew tap kavix/tap
brew install ekoClone the repository and compile the binary
git clone https://github.com/kavix/eko.git
cd eko
go build -o eko .Initialize a new Eko project in the current working directory. This creates the local database and backup storage inside the .eko folder:
eko initCapture the current filesystem state (automatically ignores files matching patterns like .git, node_modules, etc.):
eko saveList all recorded snapshots along with their unique identifiers and creation timestamps:
eko historyRevert the current directory to the exact state of any past snapshot:
eko restore <snapshot-id>We welcome contributions to Eko! Please review our Contributing Guide to understand the codebase architecture, concurrency engine, database layout, and contribution requirements.
This project is licensed under the MIT License - see the LICENSE file for details.