Documentation
Package registry
A hostable package index for Walnut libraries. Point your app at a registry once, then walnut install vendors packages into vendor/walnut/ — see packages.md.
Public hosted registry: packages.walnutlang.com.
For app developers
Configure a source
In walnut.toml:
[[source]]
name = "walnut"
url = "https://packages.walnutlang.com"
[dependencies]
greeter = "0.1.0"
WALNUT_REGISTRY overrides the default for install / publish / resolve only. walnut login / logout / license always use https://packages.walnutlang.com unless you pass --registry.
Login and install
walnut login # opens the browser (device code)
walnut install
walnut check
Scripts / CI: walnut login --token wn_… (mint a token on Account, or use email/password).
Commit walnut.lock and vendor/walnut/ so CI stays offline.
Publish a package
From a directory with walnut-package.toml:
walnut login
walnut publish .
Private packages
Org packages can be private — only org members can list, download, or install them.
name = "shout"
version = "0.1.0"
organization = "acme"
visibility = "private"
Publish with walnut publish. Consumers: walnut login, then depend on acme/shout and walnut install. Signed-in on the packages site, Download uses your browser session.
Commercial licenses
Self-serve purchase is closed — founding splash-off seats are invite / grant (licenses). No list price. Every developer needs a registry account (walnut login) even for Community. After a grant:
walnut login # pick your org for a Commercial license
walnut license status
walnut logout # shared machine: clear token + license
Or later: walnut license login [--org <slug>]. Details: licensing.md.
CLI
| Command | Role |
|---|---|
walnut login [--no-browser] | Browser device-code → API token (+ optional Commercial license) |
walnut logout [--all] | Clear token(s) + Commercial license on this machine |
walnut login --token wn_… | Paste an existing token |
walnut login --email … --password … | Mint token without browser (scripts) |
walnut license login [--org <slug>] | Download Commercial license |
walnut license refresh | Re-issue; clears local file if not entitled |
walnut license status | Local verify + registry confirm when logged in |
walnut publish [dir] | Pack + upload |
walnut add greeter / version pin | Pin from configured source |
walnut install | Resolve / use vendor |
Auth for private packages
Public packages are readable without auth. Private packages need an org member: CLI token (walnut login) or a signed-in browser session on the packages site.
Self-hosting
You can run your own package index and point apps at it with [[source]]. Prefer the hosted registry at packages.walnutlang.com unless you need isolation.
Related
- packages.md — manifests, vendoring, lockfile
- licensing.md — Community vs Commercial
- toolchain.md — CLI overview