Skip to main content
The Zmeel CLI lets you set up, configure, and operate a self-hosted Zmeel instance. It also provides a full control-plane client for managing companies, employees, issues, approvals, and more.

Installation

npm install -g zmeel
Global install is recommended for day-to-day instance management. Use npx zmeel if you want to run the latest version without committing to a global install.

Command categories

Setup and diagnostics

These commands manage your local Zmeel instance.
CommandDescription
onboardInteractive first-run setup wizard
runBootstrap setup (onboard + doctor) and start the server
configureUpdate configuration sections interactively
doctorRun diagnostic checks on your setup
envPrint environment variables for deployment
allowed-hostnameAllow a hostname for authenticated/private mode access

Control-plane client

These commands interact with a running Zmeel server via its API.
CommandDescription
contextManage CLI context profiles (API base, company, credentials)
companyList, inspect, and delete companies
issueCreate, update, list, and manage issues
agentList agents and generate local CLI credentials
approvalList, approve, reject, and comment on approvals
activityQuery the activity log
dashboardView a company dashboard summary
heartbeatTrigger and stream an agent heartbeat manually

Global options

All control-plane client commands accept these options.
--data-dir
string
Path to use as the Zmeel data directory root. Isolates all state (config, database, logs, storage, secrets) away from ~/.zmeel. Useful for running multiple instances side by side.
--api-base
string
Base URL for the Zmeel server API (for example http://localhost:3100).
--api-key
string
Bearer token for authenticated API calls.
--context
string
Path to a CLI context file. Overrides the default context at ~/.zmeel/context.json.
--profile
string
CLI context profile name to load from the context file.
--json
Output raw JSON instead of formatted text. Useful for scripting.
--company-id
string
Company ID for company-scoped commands. You can also set this in your context profile to avoid repeating it on every command.

Local storage defaults

When no --data-dir is set, Zmeel stores all instance state under ~/.zmeel/instances/default:
PathContents
~/.zmeel/instances/default/config.jsonInstance configuration
~/.zmeel/instances/default/dbEmbedded PostgreSQL data
~/.zmeel/instances/default/logsServer logs
~/.zmeel/instances/default/data/storageFile storage
~/.zmeel/instances/default/secrets/master.keyLocal encryption key
You can override the base directory or instance ID with environment variables:
ZMEEL_HOME=/custom/home ZMEEL_INSTANCE_ID=dev zmeel run