ployenv
Discovered本地环境管理
ployenv
English | 简体中文
A portable, single-binary version manager for local runtimes — Node.js, Java, Go, Python, Maven, adb (Android platform-tools) and Rust — with nothing to install and nothing to configure.
No installer, no account, no licence checks, and no changes to your system environment. Drop one executable anywhere; its runtimes and settings live next to it.
$ ployenv install node@20
$ ployenv use node@20
$ ployenv shell
Why ployenv
- Non-invasive — never edits the system
PATH,.npmrc,pip.inior the registry. Activating a version affects one terminal window only. - Explicit — official sources by default. ployenv adopts an existing installation only when you ask it to, and never guesses.
- Predictable — the effective version comes from a project file (
.ployenv, plus.nvmrc,.tool-versionsand friends) or from one global default, andPLOYENV_<LANG>_VERSIONoverrides both. Nothing ever falls back to "some installed version". - Portable — a single ~7.5 MB static binary with zero third-party dependencies. Move the folder, keep everything.
- Scriptable —
--jsonoutput is pure ASCII (non-ASCII characters are escaped as\uXXXX), so it survives any console code page.
Install
Windows 10/11 is the primary target; Linux and macOS (amd64/arm64) are built and
validated on native runners by CI. The macOS binaries are unsigned and unnotarized,
so the first run may need xattr -d com.apple.quarantine. Building needs Go 1.22+.
go build -ldflags "-s -w" -o dist/ployenv.exe ./cmd/ployenv
Or, if script execution is allowed:
powershell -ExecutionPolicy Bypass -File .\build.ps1 -Test
Then put the binary on your PATH, for example D:\PloyEnv\ployenv.exe.
Quick start
# see what is available
ployenv available node --limit 5
# install a runtime (22, lts and latest all work)
ployenv install node@20
ployenv install java@21
ployenv install go@1.24
ployenv install python@3.12
# record a default, then inspect
ployenv use node@20
ployenv current
ployenv list
# activate it in this terminal only
ployenv shell
Pin a project by adding a .ployenv file next to its source:
node=20.20.2
java=21
go=1.24
python=3.12
ployenv use node@20 --project writes or updates this file for you.
Documentation
The full command reference, configuration and troubleshooting guide lives in docs/manual.md (简体中文).
Highlights:
| Command | Description |
|---|---|
ployenv support | List supported runtimes |
ployenv available <lang> | Installable versions |
ployenv doctor | Paths, writability and resolution report |
ployenv config | Show or change every setting |
Run ployenv --help for the built-in summary.
Roadmap
Done
- Portable data directory, one-time base configuration
- Node.js, Java, Go, Python and Maven, each described by a built-in Spec
- Mirror fallback, and interrupt-safe cleanup (
Ctrl+Cleaves no partial files) - Checksum verification where upstream publishes one: SHA-256 for Go archives, SHA-512 for Maven (node / Java / Python checksums still to come)
- Session activation without touching the system environment
-
--jsonmachine interface - Prebuilt archives published to GitHub Releases (windows / linux / darwin on amd64 / arm64, with checksums)
Next
- Configurable runtime definitions (FR-11). Today runtime definitions are
compiled-in Go code;
config.jsoncannot add or override one yet - Checksums for node, Java and Python, and a
doctorconnectivity check against every configured download source - Remaining runtimes on the same
Specdefinition, including the database and middleware kinds (MySQL,Redis,Nginx) that already have a reservedkindfield - shell completion scripts;
--dry-runis rejected until it is implemented (it used to be accepted and silently ignored, BUG-020) - Log rotation honoring
logs.keep
Not planned
- Automatic switching on
cd— it needs a global shell hook, which would break the non-invasive promise. Useployenv shellin each project terminal.
License
MIT © MOMIEDEJIYI
Comments
Loading…
Similar plugins
by vb2250158
Open-source DSH environment synchronization and personal plugin management
★ 0
MIT
JavaScript
Oct 26, 2026
dsh plugin --profile web add dsh-environment-syncby Snowy117
Load each workspace's direnv environment into every DeepSeek Harness command. 让 DSH 每个工作区的子进程自动带上该工作区的 direnv 环境。
★ 0
MIT
TypeScript
Oct 3, 2026
dsh plugin --profile web add dsh-direnvby webkubor
DSH 环境自检:让读者看到自己电脑装了什么 —— 系统/CLI/DSH 插件/秘钥是否存在
★ 3
↓ 510/wk
MIT
JavaScript
Oct 27, 2026
dsh plugin --profile web add @dsh-plugins/dsh-env-inspectorManage environment variables, .env files, and credentials in DeepSeek Harness, including Windows user and system environment variables.
★ 0
dsh plugin --profile web add dsh-environment-trayby looeton
DSH plugin: inject proxy environment variables at startup and self-check the whole proxy chain
★ 0
MIT
JavaScript
Sep 10, 2026
dsh plugin --profile web add dsh-plugin-proxy-envby TTTPOB
Native direnv environments for DSH workspace Bash and persistent terminals
★ 0
MIT
TypeScript
Oct 18, 2026
dsh plugin --profile web add dsh-workspace-envrc