Wenget is a cross-platform portable binary package manager designed to simplify the installation and management of command-line tools and applications distributed through GitHub Releases. It automatically detects your platform, downloads appropriate binaries, and organizes them in an efficient directory structure.
Key Features:
Cross-platform support for Windows, macOS, Linux (including ARM64).
Organized storage with packages stored in a structured directory.
Auto-update functionality to always install the latest versions.
Bucket system enabling users to organize and manage packages via manifests.
Support for scripts written in PowerShell, Bash, Batch, and Python.
Ideal for developers, DevOps engineers, and CLI tool enthusiasts seeking efficient installation, updates, and organization of command-line tools. Wenget streamlines the process of managing software across multiple platforms without manual file handling or configuration.
README
Wenget - Wen Package Manager
A cross-platform package manager for GitHub binaries, written in Rust.
Wenget simplifies the installation and management of command-line tools and applications distributed through GitHub Releases. It automatically detects your platform, downloads the appropriate binaries, and manages them in an organized directory structure.
Features
š One-line Installation: Remote installation scripts for quick setup
š Auto-update: Always installs the latest version from GitHub Releases
š¦ Bucket System: Organize packages and scripts using bucket manifests
š Script Support: Install and manage PowerShell, Bash, and Python scripts from buckets
š Cross-platform: Windows, macOS, Linux (multiple architectures)
š Organized Storage: All packages in ~/.wenget/ with proper structure
š Smart Search: Search packages and scripts across all configured buckets
ā” Fast Downloads: Multi-threaded downloads with caching
šÆ Platform Detection: Automatically selects the correct binary for your system
# Run PowerShell as Administrator, then:
irm https://raw.githubusercontent.com/superyngo/Wenget/main/install.ps1 | iex
> ā ļø Important Notice for Existing Users (v0.2.x ā v0.3.0)
>
> Version 0.3.0 changes the default bin directory for user-level installations:
> - Unix: ~/.wenget/bin/ ā ~/.local/bin/
> - Windows: %USERPROFILE%\.wenget\bin\ ā %USERPROFILE%\.local\bin\
>
> Migration Required:
> 1. Uninstall existing version: wenget del self --yes (or use install.sh uninstall / install.ps1 -Uninstall)
> 2. Remove old PATH entry for ~/.wenget/bin from your shell config
> 3. Reinstall with the script above
> 4. Reinstall your packages
>
> System-level installations (root/Administrator) are not affected by this change.
Method 3: Manual Installation
Download the latest release from GitHub Releases and place it in your PATH, or build from source:
git clone https://github.com/superyngo/Wenget.git
cd Wenget
cargo build --release
The binary will be at target/release/wenget (or wenget.exe on Windows).
Quick Start
# Initialize Wenget (done automatically with install scripts)
wenget init
# Add the official Wenget bucket (if not added during init)
wenget bucket add wenget https://raw.githubusercontent.com/superyngo/wenget-bucket/main/manifest.json
# Search for packages
wenget search ripgrep
# Install a package
wenget add ripgrep
# List installed packages
wenget list
# Update installed packages
wenget update
# Upgrade Wenget itself
wenget update self
# Delete a package
wenget delete ripgrep
script_type: Script type (powershell, bash, batch, or python)
repo: Repository URL (for reference)
Optional Fields
homepage: Project homepage URL
license: Package/script license
checksum: SHA256 checksum for verification
Hosting Your Bucket
GitHub (Recommended):
# Create a new repository
# Add manifest.json to the repository
# Use raw.githubusercontent.com URL
wenget bucket add my-bucket https://raw.githubusercontent.com/username/my-bucket/main/manifest.json
You can use it as a template for creating your own bucket:
# Clone the official bucket as a template
git clone https://github.com/superyngo/wenget-bucket my-bucket
cd my-bucket
# Edit manifest.json with your packages
# Commit and push to your repository
Testing Your Bucket
# Add your bucket locally
wenget bucket add test-bucket https://example.com/manifest.json
# Verify packages are listed
wenget search
# Test installation
wenget add
Platform Support
Wenget supports the following platforms:
Platform
Architecture
Status
Windows
x86_64 (64-bit)
ā Supported
Windows
i686 (32-bit)
ā Supported
Linux
x86_64
ā Supported
Linux
i686
ā Supported
Linux
aarch64 (ARM64)
ā Supported
Linux
armv7
ā Supported
macOS
x86_64 (Intel)
ā Supported
macOS
aarch64 (Apple Silicon)
ā Supported
How It Works
Platform Detection: Wenget automatically detects your OS and architecture
Package Resolution: Searches buckets for the requested package
Binary Selection: Identifies the appropriate binary from GitHub Releases
Download: Downloads and caches the binary
Installation: Extracts and places the binary in ~/.wenget/apps//
Shim Creation: Creates a shim/symlink in ~/.local/bin/ for easy access
GitHub API Rate Limits
Wenget uses the GitHub API to fetch package information and download binaries. Be aware of GitHub's API rate limits:
Rate Limit Overview
Authentication
Rate Limit
Impact
Unauthenticated
60 requests/hour
Limited package searches and updates
Authenticated
5,000 requests/hour
Sufficient for normal usage
Impact on Wenget Operations
Operations that consume API calls:
wenget add - 2 calls per URL (when installing from GitHub URL)
wenget info - 1 call per URL (when querying GitHub URL)
wenget update - 1 call per installed package to check for updates
Operations that don't consume API calls:
wenget add - Uses cached bucket data (no API calls)
wenget info - Uses cached bucket data for bucket packages
wenget list - Local only
wenget delete - Local only
wenget bucket list/add/remove - Local only
wenget search - Uses cached bucket data
Recommendations
Use Buckets: The bucket system caches package information, reducing API calls significantly
Run wenget update periodically rather than before each search
For heavy usage: Consider authenticating with GitHub (future feature)
Rate limit exceeded? Wait an hour or use buckets for cached package data
The official Wenget bucket is updated regularly, so most users won't need to worry about rate limits when using bucket-based package management.
Examples
Install Popular Tools
# Modern alternatives to classic Unix tools
wenget add ripgrep fd bat
# Git TUI
wenget add gitui lazygit
# System monitoring
wenget add bottom
# Shell prompt
wenget add starship
# Directory navigation
wenget add zoxide
Manage Packages
# Search for a tool
wenget search rust
# Update metadata and install
wenget update
wenget add tokei
# List what's installed
wenget list
# Remove a package
wenget delete tokei
Important Disclaimer
ā ļø NO WARRANTIES OR GUARANTEES
Wenget is a package manager that facilitates downloading and installing applications from GitHub Releases. Wenget DOES NOT:
ā Verify the authenticity or safety of packages
ā Maintain or update the applications themselves
ā Provide usage information or support for installed applications
ā Guarantee the security, stability, or functionality of any package
ā Take responsibility for any damage caused by installed applications
Users are responsible for:
ā Verifying the trustworthiness of package sources
ā Understanding what each package does before installing
ā Reviewing the source repositories and releases
ā Accepting all risks associated with installing third-party software
By using Wenget, you acknowledge that you install packages at your own risk.
Wenget acts only as a convenience tool for downloading and organizing binaries. The responsibility for verifying, securing, and using applications rests entirely with the user.
Uninstallation
Using Wenget
wenget del self
This will:
Remove Wenget from PATH
Delete all Wenget directories and installed packages
Remove the Wenget executable itself
Manual Uninstallation
Windows:
# Remove from PATH, then delete:
Remove-Item -Recurse -Force "$env:USERPROFILE\.wenget"
Linux/macOS:
# Remove from PATH, then delete:
rm -rf ~/.wenget
Development
Building from Source
git clone https://github.com/superyngo/Wenget.git
cd Wenget
cargo build --release