The Rusl CLI
The CLI resolves, locks, and vendors your schema and bundle dependencies into your project — the same workflow you already know from a package manager.
About
The CLI is how a project consumes Rusl. It reads the dependencies you declare, resolves them to exact versions, writes a lockfile, and vendors the schema files into your repo. It also carries the embedded MCP server (rusl mcp) and your authenticated session.
Install
Install it with your platform's package manager:
rusl --helpSign in with rusl login for write features; reading the registry is open.
Configuration
A project uses up to three files. Only the manifest is required — add the config file only when the defaults don't suit you.
rusl.bundle.toml
The manifest declares the schemas and bundles your project depends on. List Rusl resources under [rusl.resources] — each "account/schemas/slug" or "account/bundles/slug" mapped to a version requirement — and external URLs under [external]. Run dependency commands from the directory that holds it.
[rusl.resources]
"acme/schemas/user-profile" = "*"
"acme/bundles/common" = ">=1.2.0"
[external]
"https://json-schema.org/draft/2020-12/schema" = ""Version requirements. Each value is a Cargo-compatible version requirement: * (any), 1.2.3 (compatible), ~1.2.3 (patch-level), >= 1.2.3 (minimum), = 1.2.3 (exact), or a range like >= 1.0.0, < 2.0.0. Cargo dependency requirements
rusl.config.toml
Optional. Add it only to change where resolved schema files are written. schema_dir defaults to schemas; point it wherever you want vendored schemas committed.
schema_dir = "schemas/vendor"rusl.lock
Generated by rusl install. It pins the resolved resources and versions — commit it so installs are reproducible.
Usage
The CLI follows a package-manager workflow: declare dependencies, install them, and inspect what resolved. The command set evolves, so run rusl --help for the current commands and treat it as the source of truth.
rusl add acme/bundles/common
rusl install
rusl list --tree