Leafy is your cozy terminal companion for transferring media from external drives. It turns the chore of manual file transfers into a breezy, interactive experience right in your shell.
I started vlogging my motorcycle journey recently, and found files transferring from my action camera and external mic is a very tedious task. So Leafy is created to automate the process. Now I can quickly and easily transfer all the captured media to my editing PC by simply running Leafy in the terminal! 🙌
Note
Leafy currently only supports Linux.
A binary will be released on GitHub later. Alternatively, you can install it using Go.
# Option 1: Install with Go
go install github.com/nightails/leafy@latest
# Option 2: Download the binary
# 1. Download: Download the latest binary from the Releases page.
# 2. Permissions: Ensure the binary is executable:
chmod +x leafy
# 3. Run: Execute the binary:
./leafyLeafy is designed for a simple, hands-off workflow:
- Automatic Scanning & Mounting: Upon launch, the app automatically scans for connected USB devices and mounts any unmounted partitions.
- Media Detection: It searches for media files (audio and video formats) on the mounted devices.
- Media Selection: Detected media files are displayed in a list.
- Use arrow keys or
j/kto navigate. - Press
spaceto select or deselect files. - Press
enterto confirm your selection and proceed.
- Use arrow keys or
- Destination Selection: Enter the path where you want to copy the files (supports
~for home directory). - Transferring: The app copies the selected files to the destination with a real-time progress bar.
- Exiting: Press
ctrl+cto exit. This will automatically unmount the devices that were mounted by the app.
To set up Leafy for local development, ensure you have the following dependencies installed:
- Go (version 1.25 or later)
- lsblk: The application relies on the
lsblkcommand-line utility for device detection. - udisksctl: The application uses
udisksctlfor mounting and unmounting devices.
# 1. Clone the repository:
git clone https://github.com/nightails/leafy.git
cd leafy
# 2. Install dependencies:
go mod download
# 3. Run locally:
go run main.go
# 4. Build:
go build -o leafy main.goThis project is licensed under the terms of the MIT License. See LICENSE for more details.