A powerful file versioning tool that allows you to track and manage changes in directories through snapshots. TimeMachine provides efficient file versioning with features like deduplication, change tracking, and point-in-time restoration.
- Snapshot Management: Create, list, and restore directory snapshots
- Change Tracking: Monitor file modifications, additions, and deletions
- Efficient Storage: Deduplication to minimize disk usage
- Fast Restoration: Quickly restore to any previous snapshot
- Shell Completion: Support for bash, zsh, fish, and PowerShell
brew tap masiedu4/timemachine
brew install timemachine
- macOS or Linux: Make sure
/usr/local/bin
exists and is in your PATH - Windows: Have a directory in your PATH ready for the executable
-
Download the correct binary for your system:
Visit the releases page and download:
-
macOS:
- Apple Silicon (M1/M2):
timemachine-macos-arm64.tar.gz
- Intel:
timemachine-macos-amd64.tar.gz
- Apple Silicon (M1/M2):
-
Linux:
- x86_64:
timemachine-linux-amd64.tar.gz
- ARM64:
timemachine-linux-arm64.tar.gz
- x86_64:
-
Windows:
- x86_64:
timemachine-windows-amd64.zip
- x86_64:
-
-
Install the binary:
macOS/Linux:
# Navigate to downloads cd ~/Downloads # Extract the archive (replace * with your platform) tar -xzf timemachine-*.tar.gz # Verify binary exists ls -l timemachine # Move to PATH sudo mkdir -p /usr/local/bin sudo mv timemachine /usr/local/bin/
Windows:
# Extract the ZIP file Expand-Archive timemachine-windows-amd64.zip -DestinationPath C:\Windows\System32
-
Verify Installation:
# Should show the binary location which timemachine # Should show version 0.1.1 timemachine --version
If you see "command not found", try:
- Opening a new terminal window
- Verifying the binary is in your PATH
- Checking you downloaded the correct version for your system
TimeMachine supports shell completions for a better command-line experience:
# Generate completion scripts
timemachine completions
# Follow the printed instructions to install for your shell
-
Initialize a Directory:
timemachine init ~/Documents/my-project
-
Create a Snapshot:
timemachine snapshot ~/Documents/my-project
-
List Snapshots:
timemachine list ~/Documents/my-project
-
Restore a Previous Version:
# List snapshots to get the ID timemachine list ~/Documents/my-project # Restore to a specific snapshot timemachine restore ~/Documents/my-project --id <snapshot-id> # Force restore (creates backup of current state) timemachine restore ~/Documents/my-project --id <snapshot-id> --force
For detailed usage instructions and examples, see:
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.