Portable-first package manager

flget

Windows-first, directory-isolated installs with rename-based updates, local roots, and Bun-friendly workflows.

Use scoop, npm, ghr, npmgh, and depot sources from the same root. Share packages across machines with flget serve, and install agent skills with flget skills ....

No junctions No symlinks No registry writes No core PATH mutation

Install / Update

Bootstrap or refresh a root

Run the stable update script from the directory where you want the flget root to live.

cd <some_directory>
powershell -c "irm https://flatina.github.io/flget/update.ps1 -OutFile .\update.ps1;.\update.ps1"

# update flget
.\update.ps1

Self-update later with flget update or .\update.ps1. The flget runtime comes from the latest GitHub release zip, and Bun is fetched from the latest official Bun release.

Quick Start

Use the root immediately

.\activate.ps1                        # session PATH setup
flget --version

flget search 7zip
flget install 7zip                     # prompts if ambiguous
flget install 7zip --source scoop      # source-scoped install
flget install ripgrep --source ghr     # source-scoped GitHub Releases query
flget install typescript --source npm  # source-scoped npm registry query
flget install pnpm --source npmgh      # source-scoped GitHub source repo query
flget skills install flatina/cowsay-ts # install an agent skill repo and create shims for declared built-in .ts entry scripts

Use a fully-qualified ref such as ghr:owner/repo when you need an exact non-interactive install.

Sources

Standalone packages and agent skills

flget is not a drop-in replacement for scoop or npm. It focuses on portable, directory-isolated roots and source-scoped installs.

scoop

Install Windows apps from Scoop manifests while keeping the flget root isolated.

npm

Install npm registry packages into the root without using global -g.

ghr

Resolve and install packages directly from GitHub Releases.

npmgh

Install npm-style packages from GitHub source repositories.

skills

Store skill installs under gh/skills/ and create shims for built-in .ts entry scripts declared by the skill.

depot

Install packages from other flget roots (local or HTTP). Use flget serve to share your root as a depot.

Depot

Distributed package sharing

Any flget root can serve as a package source for others. Add local directories or remote HTTP depots, then install with depot: prefix.

# Share your root as an HTTP depot
flget serve --host 0.0.0.0 --port 8080

# Add depots (local or remote)
flget depot add K:\flget
flget depot add http://10.0.0.5:8080

# Install from depot
flget install depot:7zip

Secrets

Plain .env or encrypted .flenc

Secret lookup uses process env first, then root and shared secret files. Encrypted .flenc files require FLGET_SECRETS_KEY.

Lookup order: process env -> .env -> .secrets/.env -> .secrets/<profile>.env -> encrypted .flenc variants.

If you need stronger sharing, rotation, or auditability, inject secrets from an external tool before running flget.