Introduction
Managing Btrfs snapshots has always been a powerful feature for Linux users, but let's be honest—the command-line interface can be intimidating and complex.
Whether you're a seasoned system administrator or a Linux enthusiast exploring filesystem snapshots for the first time,
the traditional snapper
commands can feel overwhelming with their numerous options and parameters.
That's where ZypShot comes in. I'm excited to introduce this new tool that transforms the snapshot management experience into something beautiful, intuitive, and accessible to users of all skill levels.
What is ZypShot?
ZypShot is a comprehensive Terminal User Interface (TUI) designed specifically for managing Btrfs snapshots using Snapper.
Built with Python and leveraging the power of the Rich
library and prompt_toolkit
,
ZypShot provides an elegant, menu-driven interface that makes snapshot management feel effortless.

ZypShot's clean and intuitive main interface
Gone are the days of memorizing complex command syntax or digging through man pages. ZypShot presents all snapshot operations through an organized, color-coded menu system that guides you through each task step by step.
Key Features
ZypShot isn't just a pretty interface—it's packed with powerful features that enhance your snapshot management workflow:
📊 Comprehensive Snapshot Management
- Visual Snapshot Browser: View all snapshots in a clean, organized table with type, date, and description information
- One-Click Creation: Create manual snapshots with custom descriptions in seconds
- Safe Deletion: Remove unwanted snapshots with built-in confirmation prompts
- Detailed Information: Access comprehensive snapshot metadata including cleanup settings and user information
🔍 Advanced Snapshot Comparison
One of ZypShot's standout features is its intelligent snapshot comparison system:
- Smart Categorization: Changes are automatically grouped into Added, Removed, and Modified files
- Summary Overview: Get instant statistics showing the scope of changes between snapshots
- Paginated Display: Browse through large file lists with easy navigation (20 items per page)
- Interactive Exploration: Choose which categories to examine without information overload
🧹 Intelligent Cleanup Management
- Automated Cleanup: Run timeline, number-based, or empty pre-post cleanup operations
- Configuration Viewer: Display current cleanup settings from Snapper config files
- Settings Editor: Modify cleanup parameters with built-in validation
- Multiple Cleanup Types: Support for hourly, daily, weekly, monthly, and yearly timeline limits
Getting Started
Before diving into ZypShot, you'll need a few prerequisites set up on your system:
Prerequisites
- Linux system with Btrfs filesystem
- Snapper installed and configured
- Python 3.6+
- Root privileges for configuration editing and some operations
Quick Setup
Installing ZypShot's dependencies is straightforward across different Linux distributions:
# Arch Linux / Manjaro
sudo pacman -S python-rich python-prompt_toolkit
# Debian / Ubuntu
sudo apt install python3-rich python3-prompt-toolkit
# Fedora / RHEL
sudo dnf install python3-rich python3-prompt-toolkit
# Universal (using pip)
pip install rich prompt_toolkit
Core Functionality
ZypShot's main menu provides seven core functions, each designed to handle specific aspects of snapshot management:
1. Create Snapshot
Creating a new snapshot is as simple as selecting option 1 and entering a custom description.
ZypShot handles the underlying snapper create
command while providing immediate feedback on the operation's success.
2. Delete Snapshot
Safety is paramount when deleting snapshots. ZypShot includes confirmation prompts and displays snapshot details before deletion to prevent accidental removal of important snapshots.
3. Compare Snapshots
The comparison feature transforms raw snapper diff
output into an organized, readable format.
Users can see exactly what changed between any two snapshots without parsing cryptic command output.
4. Rollback Guidance
Rather than performing potentially dangerous rollback operations automatically, ZypShot provides detailed, step-by-step instructions for safe rollback procedures, including proper live USB setup and GRUB configuration updates.
Safety First: ZypShot emphasizes education and safety over automation when it comes to system rollbacks. The tool provides comprehensive guidance while leaving critical decisions in the user's hands.
Advanced Features
Auto-Completion and User Experience
ZypShot leverages prompt_toolkit
to provide intelligent auto-completion for snapshot numbers.
As you type, the interface suggests available snapshots, reducing errors and speeding up your workflow.
Rich Visual Feedback
The interface uses color coding throughout:
- Cyan for headers and important information
- Green for successful operations and file additions
- Red for warnings and file deletions
- Purple for file modifications and secondary information
- Yellow for prompts and attention-grabbing elements
Error Handling and Recovery
ZypShot includes comprehensive error handling that provides meaningful feedback when operations fail. Whether it's a permission issue, missing snapshot, or configuration problem, users receive clear guidance on how to resolve the issue.
Installation Guide
Getting ZypShot up and running is straightforward:
# Clone the repository
git clone https://github.com/zypher-systems/ZypShot
cd ZypShot
# Make the script executable
chmod +x zypshot.py
# Run ZypShot (requires root for full functionality)
sudo python3 zypshot.py
Configuration Requirements
ZypShot works with Snapper's default configuration at /etc/snapper/configs/root
.
Ensure that Snapper is properly configured for your Btrfs filesystem before using ZypShot.
Troubleshooting Common Issues
- Permission Denied: Always run ZypShot with
sudo
for full functionality - Snapper Not Found: Verify Snapper is installed and accessible in your PATH
- No Snapshots Visible: Check that Snapper is configured and taking snapshots
- Config File Missing: Ensure Snapper is properly set up for your filesystem
Conclusion
ZypShot represents a significant step forward in making Btrfs snapshot management accessible to a broader audience. By combining powerful functionality with an intuitive interface, it removes the barriers that often prevent users from fully utilizing one of Btrfs's most valuable features.
Whether you're managing snapshots on a personal workstation, maintaining server backups, or exploring filesystem-level version control, ZypShot provides the tools you need in a package that's both powerful and pleasant to use.
The project is actively maintained and open source, welcoming contributions from the community. As Btrfs continues to gain adoption in both enterprise and desktop environments, tools like ZypShot help ensure that users can confidently leverage advanced filesystem features without sacrificing usability.
Ready to Try ZypShot?
Start managing your Btrfs snapshots with ease! Check out the project on GitHub, star the repository if you find it useful, and feel free to contribute or report issues.