Skip to content

UndefinedClear/Storm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

banner

.NET Platform License


✨ Features

  • 🗑 Move files and directories to a safe trash with history
  • ♻ Restore any previous version in seconds
  • 🕒 Built-in history tracking
  • 📦 Lightweight and fast
  • 💻 Works directly from the command line

🚀 Installation

.NET 9.0 SDK or newer is recommended

# Clone the repository
git clone https://github.com/UndefinedClear/Storm.git
cd Storm/Storm

chmod +x make
chmod +x build_all

📍 Important Info

📁 Default Trash Location

Storm stores deleted files in a versioned trash directory. The location varies by operating system:

OS Path
Windows %LOCALAPPDATA%\Storm\.trash_can
Linux ~/.local/share/storm/.trash_can
macOS ~/.local/share/storm/.trash_can
Custom $XDG_DATA_HOME/storm/.trash_can (if XDG_DATA_HOME is set)

💡 Tip: On Linux/macOS, Storm follows the XDG Base Directory Specification.


🔧 Custom Trash Location

You can override the default trash directory by setting the STORM_TRASH_DIR environment variable:

Linux/macOS (Bash/Zsh)

# Temporary (current session only)
export STORM_TRASH_DIR="/path/to/custom/trash"

# Permanent (add to ~/.bashrc or ~/.zshrc)
echo 'export STORM_TRASH_DIR="/path/to/custom/trash"' >> ~/.bashrc
source ~/.bashrc

⚡ Automated Build

You can also use the provided build scripts to generate a standalone executable in the publish folder:

  • Windows: Run Storm/build.bat
  • Linux: Run Storm/make (make sure to chmod +x make first)

These scripts create a self-contained, single-file release.


📦 Releases

Stable builds are available in the Releases section: ➡ Download compiled binaries ➡ View changelogs ➡ Access previous versions


📖 Commands

🆘 Help

storm

Storm

Help


🗑 Move to Trash

Move one or multiple files and directories into Storm history.

storm test.txt
storm folder1 folder2 image.png

Move to trash


♻ Restore a Specific Version

Restore a file or directory using its history ID or version.

storm -r HISTORY_ID_OR_VERSION test.txt
storm -r 2026-01-29_21-03-03 folder1

Restore


🕒 View History

Show all saved versions.

storm -h

History


🧠 How It Works

Storm keeps safe snapshots of deleted or replaced files so you can restore them later. Each operation is versioned with a timestamp, making recovery simple and reliable.


⚙ Requirements

  • .NET 9.0 SDK (recommended)
  • Windows, Linux, or macOS
  • Terminal with ANSI color support

🐞 Issues

Found a bug or have a feature request? Open an issue here: 👉 https://github.com/UndefinedClear/Storm/issues

Please include:

  • What happened
  • Steps to reproduce
  • Your OS and Storm version

🤝 Contributing

Pull Requests are welcome!

  1. Fork the repository
  2. Create a new branch
  3. Make your changes
  4. Submit a Pull Request

Before submitting, please:

  • Follow the existing code style
  • Test your changes

🔀 Pull Requests

All improvements, fixes, and ideas are appreciated. Small PRs are reviewed faster 😉


🗺 Roadmap

Planned improvements and upcoming features:

  • Auto-clean old history versions
  • Config file support (storm.config)
  • Ignore patterns (like .gitignore)
  • Restore preview before confirming
  • Compression for stored versions
  • Global install via dotnet tool
  • Interactive TUI mode
  • Performance improvements for large directories

Have an idea? Open an issue and share it!


📜 License

This project is licensed under the MIT License.


⭐ Support

If Storm saved your files, give it a star ⭐ It helps the project grow!