A lightweight CLI tool for temporarily uploading files and retrieving them from any device using a generated stash key.
Stash allows you to:
- Upload one or multiple files
- Receive a unique stash key
- Download files from any device using that key
- Optionally confirm downloads interactively
- Python 3.11+
- pipx
- Internet connection
pipx installs CLI tools in isolated environments.
If pipx is not installed
pip install pipxpipx install git+https://github.com/u-cant-see-me/Stash.git
pipx ensurepathAfter running pipx ensurepath, restart your terminal.
If the stash command is not found, ensure that ~/.local/bin is in your PATH:
export PATH="$HOME/.local/bin:$PATH"Upload one or more files using the full command or its alias:
# Full command
stash upload file1.txt file2.png
# Alias
stash u file1.txt file2.pngAfter upload, a stash key will be generated.
You can also use normal shell features like wildcards and globbing:
# Upload all files in the current directory
stash upload *
# Upload all files in a specific folder
stash upload my_folder/*
# Upload files matching a pattern
stash upload *.pdfNote: The shell expands
*and patterns before passing them tostash.
Download using a stash key:
stash download <stash-key>Aliases:
stash key <stash-key>
stash k <stash-key>If no storage path is configured, files will be downloaded to the current directory.
Stash allows you to configure backend and storage settings.
stash config --url <backend-url>Set a default directory where downloaded files will be saved:
stash config --store /path/to/download/folderIf not set, files will be downloaded to the current working directory.
To see the current configuration:
stash config --showShow detailed upload information:
stash upload file1.txt -istash upload file1.txt -cPrompt before downloading each file:
stash download <stash-key> -istash upload report.pdfOutput:
Stash Key: 4fj39sk2
stash download 4fj39sk2Check your PATH:
echo $PATHIf ~/.local/bin is missing:
export PATH="$HOME/.local/bin:$PATH"Restart your terminal afterward.
Clone the repository:
git clone <your-repo-url>
cd stashInstall in editable mode:
pip install -e .Run:
stash upload test.txtMIT License