instol [<options>] <url> [<output_filename>]
Tired of manual downloads, messy extractions, and forgotten permissions when installing new tools? instol simplifies the entire process, allowing you to install software directly from any URL with a single command. It intelligently detects the file type (.deb, compressed archive, or raw binary) and automates everything from download and extraction (if applicable) to proper placement in system directories, permission setting, and cleanup of temporary files. This truly streamlines installations from sources like GitHub, Bitbucket, or direct downloads.
- Smart Type Detection: No more guesswork;
instolautomatically identifies if your URL is a binary, a compressed archive (zip, tar.gz, etc.), or a Debian package. - Automated Deployment: Handles downloading and seamlessly extracts contents from archives, getting your software ready to run.
- Seamless System Placement: Automatically places executables directly into standard system directories (e.g.,
/usr/local/bin) and sets correct permissions, hassle-free. - Zero Leftovers: Automatically removes all temporary files created during the installation, keeping your system tidy.
- Built-in Safety: Prompts for confirmation before overwriting existing files, with an option to force installation.
You can build instol from source:
git clone https://github.com/revivalstack/instol.git
cd instol
go build -o instol .
chmod +x instol
sudo mv instol /usr/local/bin/or via
go install github.com/revivalstack/instol@latest
instol [<options>] <url> [<output_filename>]<url>: The URL of the file to install (e.g.,.deb,.tar.gz,.zip, or raw binary).[<output_filename>]: Optional. A custom filename for the installed executable.
-p, --path <directory>: Specify the installation directory (default:/usr/local/bin).-t, --type <type>: Manually specify the file type (binary,compressed,deb). Use this ifinstolcannot automatically detect the type.-f, --force: Overwrite existing files without prompting for confirmation.-h, --help: Display help information and exit.--version: Display version information and exit.
Install a .deb package:
instol https://example.com/package.debInstall a compressed binary (e.g., .tar.gz, .zip):
instol https://github.com/user/repo/releases/download/v1.0.0/tool.tar.gzInstall a raw binary with a custom name:
instol https://example.com/raw_binary mytoolInstall a raw binary to local bin directory:
instol -p ~/.local/bin https://example.com/raw_binaryInstall a compressed file and force overwrite:
instol --force https://github.com/user/repo/releases/download/v1.0.0/tool.zipInstall a binary where the URL doesn't have a clear extension, specifying type:
instol --type binary https://example.com/download/latest_toolDisplay the tool version:
instol --versioninstol is released under the MIT License.