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

CommandRole
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 refreshRe-issue; clears local file if not entitled
walnut license statusLocal verify + registry confirm when logged in
walnut publish [dir]Pack + upload
walnut add greeter / version pinPin from configured source
walnut installResolve / 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.