Registry
The niso registry is a package repository you can self-host or use via niso.dev. Push, pull, search, and manage packages with API keys and namespaces.
niso.dev registry#
The official public registry at niso.dev hosts official packages and community contributions. It is free to use.
bash
# Pull from niso.dev (default registry)$ niso pull redis$ niso pull nodejs:20# Search packages$ niso search postgres postgres 16.0.0 Official PostgreSQL package mariadb 11.0.0 Official MariaDB packageSelf-hosting#
Run your own registry for private packages. The registry is a single binary with a SQLite database.
bash
# Start a registry$ niso registry serve \ --listen 0.0.0.0:5000 \ --data-dir /var/lib/niso-registry# Or run it as a niso service$ niso activate niso-registryAuthentication#
bash
# Login to a registry$ niso login https://registry.example.com --key <api-key># Create API keys$ niso registry create-key --scope "push:my-*" --name "ci-deploy" Created key: niso_k1_abc123... Store this key securely — it cannot be retrieved later.# List keys$ niso registry list-keys ID NAME SCOPES LAST USED key_abc123 ci-deploy push:my-* 2026-04-12# Revoke a key$ niso registry revoke-key key_abc123API key scopes
Scopes control what an API key can do. Use glob patterns:
push:*— push any packagepush:my-*— push packages starting with “my-”pull:*— pull any packagedelete:*— delete any package versionadmin— full administrative access
Push and pull#
bash
# Push a package$ niso push my-api-1.0.0-x86_64.niso Uploaded my-api 1.0.0 (x86_64) — 8.2 MB# Push to a specific registry$ niso push my-api-1.0.0-x86_64.niso --registry private# Pull latest version$ niso pull my-api# Pull specific version$ niso pull my-api:1.0.0# Pull, install, and activate in one step$ niso upgrade my-api# Upgrade to a specific version$ niso upgrade my-api:1.1.0Tags#
Tags are mutable pointers to versions. Use them for release channels:
bash
# Create a tag$ niso tag my-api:1.0.0 my-api:stable# Pull by tag$ niso pull my-api:stable# List tags$ niso registry list-tags my-api TAG VERSION stable 1.0.0 beta 1.1.0-rc1 latest 1.1.0Registry configuration#
bash
# Add a named registry$ niso registry add private https://registry.example.com \ --key niso_k1_abc123 --default# List configured registries$ niso registry list NAME URL DEFAULT niso.dev https://registry.niso.dev no private https://registry.example.com yesGarbage collection#
bash
# Clean up old versions (keep latest N per package)$ niso registry gc --keep-versions 5# Dry run first$ niso registry gc --keep-versions 5 --dry-runMirroring#
Mirror a registry for air-gapped environments or faster local access:
bash
# Mirror all packages from niso.dev to your private registry$ niso registry mirror --from niso.dev --to privateHTTP API#
The registry exposes a REST API for programmatic access. See the API Reference for the full specification.