CLI Reference
CLI Reference
Section titled “CLI Reference”Command-line interface for the Wippy runtime.
Global Flags
Section titled “Global Flags”Available on all commands:
| Flag | Short | Description |
|---|---|---|
--config | Config file (default: .wippy.yaml) | |
--verbose | -v | Enable debug logging |
--very-verbose | Debug with stack traces | |
--console | -c | Colorful console logging |
--silent | -s | Disable console logging |
--event-streams | -e | Stream logs to event bus |
--profiler | -p | Enable pprof on localhost:6060 |
--memory-limit | -m | Memory limit (e.g., 1G, 512M) |
Memory limit priority: --memory-limit flag > GOMEMLIMIT env > 1GB default.
wippy init
Section titled “wippy init”Create a new lock file.
wippy initwippy init --src-dir ./src --modules-dir .wippy| Flag | Short | Default | Description |
|---|---|---|---|
--src-dir | -d | ./src | Source directory |
--modules-dir | .wippy | Modules directory | |
--lock-file | -l | wippy.lock | Lock file path |
wippy run
Section titled “wippy run”Start the runtime or execute a command.
wippy run # Start runtimewippy run list # List available commandswippy run test # Run testswippy run snapshot.wapp # Run from pack filewippy run acme/http # Run module from hubwippy run acme/http@1.2.3 # Run specific versionwippy run --exec app:worker # Start runtime and execute a single process| Flag | Short | Description |
|---|---|---|
--override | -o | Override entry values (namespace:entry:field=value); field may be kind to change the entry kind |
--set | Override a config value (section.path=value, repeatable, takes precedence over the config file) | |
--exec | -x | Execute process and exit (namespace:entry) |
--host | Terminal host ID for --exec (auto-detected if only one terminal.host exists) | |
--registry | Registry URL for hub modules |
--set writes any runtime configuration value from the command line, merged over .wippy.yaml per leaf:
wippy run --set cluster.enabled=true \ --set cluster.membership.join_addrs=node-2:7946,node-3:7946 \ --set cluster.raft.bootstrap_expect=3Values coerce by shape: true/false to bool, integers and floats to numbers, everything else stays a string (durations like 5s are parsed where the option expects one).
wippy lint
Section titled “wippy lint”Check Lua code for type errors and warnings.
wippy lintwippy lint --level warningwippy lint --jsonwippy lint --rulesValidates all Lua entries: function.lua, library.lua, process.lua, workflow.lua (including their .bc variants).
| Flag | Short | Default | Description |
|---|---|---|---|
--lock-file | -l | wippy.lock | Lock file path |
--level | warning | Minimum severity: error, warning, hint | |
--ns | Filter by namespace patterns (e.g. app, lib.*) | ||
--code | Filter by error codes (e.g. E0001,E0004) | ||
--rules | false | Enable style/quality lint rules | |
--summary | false | Group output by error code | |
--limit | 0 | Max diagnostics shown (0 = unlimited) | |
--json | false | JSON output | |
--no-color | false | Disable colored output | |
--cache-reset | false | Clear Lua cache before linting |
wippy add
Section titled “wippy add”Add a module dependency.
wippy add acme/httpwippy add acme/http@1.2.3wippy add acme/http@latest| Flag | Short | Default | Description |
|---|---|---|---|
--lock-file | -l | wippy.lock | Lock file path |
--registry | Registry URL |
wippy install
Section titled “wippy install”Install dependencies from lock file.
wippy install # Install allwippy install acme/http # Install specific modulewippy install --refresh acme/http # Re-fetch a specific module| Flag | Short | Default | Description |
|---|---|---|---|
--lock-file | -l | wippy.lock | Lock file path |
--refresh | false | Re-fetch every module, bypassing cache | |
--force | false | Alias for --refresh | |
--repair | false | Alias for --refresh | |
--registry | Registry URL |
wippy update
Section titled “wippy update”Update dependencies and regenerate lock file.
wippy update # Update allwippy update acme/http # Update specific modulewippy update acme/http demo/sql # Update multiple| Flag | Short | Default | Description |
|---|---|---|---|
--lock-file | -l | wippy.lock | Lock file path |
--src-dir | -d | ./src | Source directory |
--modules-dir | .wippy | Modules directory | |
--registry | Registry URL |
wippy pack
Section titled “wippy pack”Create a snapshot pack (.wapp file).
wippy pack snapshot.wappwippy pack release.wapp --description "Release 1.0"wippy pack app.wapp --embed app:assets --bytecode **| Flag | Short | Description |
|---|---|---|
--lock-file | -l | Lock file path |
--description | -d | Pack description |
--tags | -t | Pack tags (comma-separated) |
--meta | Custom metadata (key=value) | |
--embed | Embed fs.directory entries (patterns) | |
--list | List fs.directory entries (dry-run) | |
--exclude-ns | Exclude namespaces (patterns) | |
--exclude | Exclude entries (patterns) | |
--bytecode | Compile Lua to bytecode (** for all) |
wippy publish
Section titled “wippy publish”Publish module to the hub.
wippy publishwippy publish --version 1.0.0wippy publish --dry-runReads from wippy.yaml in current directory.
| Flag | Description |
|---|---|
--version | Version to publish |
--dry-run | Validate without publishing |
--label | Publish as mutable label instead of version |
--release-notes | Release notes |
--protected | Mark version as protected |
--embed | Embed fs.directory entries by id or name |
--config | Path to directory containing wippy.yaml (default: .) |
--registry | Registry URL |
--create | Create the module on the registry if it does not yet exist |
--module-visibility | Visibility for newly created modules (--create only): public or private (default: private) |
--module-type | Type for newly created modules (--create only): library, application, agent, or plugin (default: application) |
--module-display-name | Display name for newly created modules (--create only) |
wippy search
Section titled “wippy search”Search for modules in the hub.
wippy search httpwippy search "sql driver" --limit 20wippy search auth --json| Flag | Default | Description |
|---|---|---|
--json | false | Output as JSON |
--limit | 20 | Maximum results |
--registry | Registry URL |
wippy auth
Section titled “wippy auth”Manage registry authentication.
wippy auth login
Section titled “wippy auth login”wippy auth loginwippy auth login --token YOUR_TOKEN| Flag | Description |
|---|---|
--token | API token |
--registry | Registry URL |
--local | Store credentials locally |
wippy auth logout
Section titled “wippy auth logout”wippy auth logout| Flag | Description |
|---|---|
--registry | Registry URL |
--local | Remove local credentials |
wippy auth status
Section titled “wippy auth status”wippy auth statuswippy auth status --json| Flag | Description |
|---|---|
--json | Output as JSON |
wippy readme
Section titled “wippy readme”Fetch a module README from the hub.
wippy readme wippy/terminalwippy readme wippy/terminal@1.2.3wippy readme --json wippy/terminal@latest| Flag | Description |
|---|---|
--json | Output as JSON |
--registry | Registry URL (default: from credentials) |
wippy registry
Section titled “wippy registry”Query and inspect registry entries.
wippy registry list
Section titled “wippy registry list”wippy registry listwippy registry list --kind "function.lua.*"wippy registry list --ns "app.*" --jsonwippy registry list --meta "type=api" --meta "enabled=true"| Flag | Short | Description |
|---|---|---|
--kind | -k | Filter by kind (glob pattern) |
--ns | -n | Filter by namespace (glob pattern) |
--name | Filter by name (glob pattern) | |
--meta | Filter by metadata (repeatable) | |
--json | Output as JSON | |
--yaml | Output as YAML | |
--lock-file | -l | Lock file path |
Metadata operators for --meta:
| Operator | Meaning |
|---|---|
field=value | Exact match |
field~regex | Regex match |
field*substr | Contains substring |
field^prefix | Starts with prefix |
field$suffix | Ends with suffix |
wippy registry show
Section titled “wippy registry show”wippy registry show app:http:handlerwippy registry show app:config --yaml| Flag | Short | Description |
|---|---|---|
--field | -f | Show specific field |
--json | Output as JSON | |
--yaml | Output as YAML | |
--raw | Raw output | |
--lock-file | -l | Lock file path |
wippy version
Section titled “wippy version”Print version information.
wippy versionwippy version --shortCustom Commands
Section titled “Custom Commands”Any process.lua or process.wasm entry can be registered as a named command by adding command metadata:
entries: - name: test_runner kind: process.lua meta: command: name: test short: Run application tests source: file://runner.lua method: main modules: - io - registry - funcsRun it with:
wippy run testList all available commands:
wippy run listCommand Metadata Fields
Section titled “Command Metadata Fields”| Field | Required | Description |
|---|---|---|
name | Yes | Command name used with wippy run <name> |
short | No | Short description shown in wippy run list |
main | No | Mark this entry as the default command (picked automatically by packs and hub modules that ship a single command) |
Any process entry kind works (process.lua, process.wasm). The command name must be unique across all loaded entries. Arguments after the command name are passed to the process as string payloads.
Examples
Section titled “Examples”Development Workflow
Section titled “Development Workflow”# Initialize projectwippy initwippy add wippy/http wippy/sqlwippy install
# Check for errorswippy lint
# Run with debug outputwippy run -c -v
# Override config for local devwippy run -o app:db:host=localhost -o app:db:port=5432Production Deployment
Section titled “Production Deployment”# Create release pack with bytecodewippy pack release.wapp --bytecode ** --exclude-ns test.**
# Run from pack with memory limitwippy run release.wapp -m 2GDebugging
Section titled “Debugging”# Execute single processwippy run --exec app:worker
# With profiler enabledwippy run -p -v# Then: go tool pprof http://localhost:6060/debug/pprof/heapDependency Management
Section titled “Dependency Management”# Add new dependencywippy add acme/http@latest
# Force re-downloadwippy install --force
# Update specific modulewippy update acme/httpPublishing
Section titled “Publishing”# Login to hubwippy auth login
# Validate modulewippy publish --dry-run
# Publishwippy publish --version 1.0.0 --release-notes "Initial release"Configuration File
Section titled “Configuration File”Create .wippy.yaml for persistent settings:
logger: encoding: console
logmanager: min_level: -1 # debug
profiler: enabled: true address: localhost:6060
override: app:gateway:addr: ":9090" app:db:host: "localhost"See Also
Section titled “See Also”- Configuration - Config file reference
- Observability - Monitoring and logging