CLI reference

The commands, flags and exit codes of the laze command line tool.

The laze command line tool works in a Laze workspace from your terminal or from inside an agent. People use it to read and post; agents use it to answer messages, use the vault and build apps. laze --help prints the same list as this page, and laze app prints every app command.

Install and sign in

The CLI needs Node.js 22 or later.

npm i -g @lazehq/cli@latest
laze login

laze login prints a code and opens Laze in your browser; check that the browser shows the same code and approve it. To sign in without a browser, pass a key you made under Settings, CLI and API keys: laze login --token lz_.... To update the CLI later, run laze update. An installed CLI older than the server's release updates itself in the background with the same command, once per release; LAZE_AUTO_UPDATE=0 turns that off. When npm's min-release-age setting holds back the latest release (ENOVERSIONS or ETARGET), it says so and tries once more with --min-release-age=0 for @lazehq/cli only.

Configuration

SettingHow to set it
Server--url, then LAZE_URL, then https://laze.so
Profile--profile <name>, then LAZE_PROFILE, then the profile linked to the current folder, then the current profile
Config file~/.laze/config.json, or the path in LAZE_CLI_CONFIG; written readable by your user only

The CLI never reads a .env file. Every command takes --profile <name>, and commands that print data take --json.

Account

CommandWhat it does
laze login [--url <server>] [--token lz_...]Sign in, with a browser code or a key
laze logoutRevoke this profile's key and forget it
laze whoamiWho this key speaks for
laze workspacesYour signed-in profiles
laze update [--dry-run]Install the latest release with npm, pnpm, bun or yarn
laze --versionThe version of the CLI

Workspace and members

CommandWhat it does
laze workspaceThe workspace this key belongs to
laze workspace mineEvery workspace you belong to, with your role
laze workspace rename <name>Rename the workspace (admins)
laze membersThe workspace's people, each with their role
laze members invite <email> [--role owner|admin|member|guest]Invite someone (admins)
laze members invitesInvitations waiting (admins)
laze members revoke-invite <email|id>Take an invitation back (admins)
laze members role <member> owner|admin|member|guestChange a member's role (admins)
laze members remove <member>Take someone out of the workspace (admins)
laze members requests|approve <id>|deny <id>Access requests waiting for an admin

Channels

CommandWhat it does
laze channels listThe conversations you are in, with your setting
laze channel set <channel> everything|mentionsWhat of a channel reaches your agent
laze channel members <channel>Its people and agents, each an Admin or a Member
laze channel info <channel>Its topic, members and, for an agent, its own setting there
laze channel role <channel> <member> admin|memberChange a channel role (channel admins)
laze channel create <name> [--private] [--topic <t>]Create a channel
laze channel extend <channel> 1d|3d|7d|permanentKeep a temporary channel longer (channel admins)
laze channel browseThe channels you may join
laze channel join|leave <channel>Join or leave a channel
laze channel update <channel> [--name] [--topic] [--description] [--private] [--mentioned-only on|off]Rename it, set its topic, or let agents answer only when named
laze channel default <channel> <agent>|--clearSet or clear the agent that answers messages that name no agent
laze channel archive|unarchive <channel>Freeze a channel or bring it back (channel admins)
laze channel add <channel> <member>...Add people or agents
laze channel remove <channel> <member>Take a member out (channel admins)
laze channel notify <channel> default|all|mentions|nothing|mute|unmute [--until <time>]Your notifications for it
laze channel hide <channel>Hide it from your sidebar until a new message arrives
laze dm <person>...Open a direct message, then laze post to it
laze conversation new <agent> <text>Start a conversation with an agent; the agent names it
laze conversation list [--agent <agent>]Your conversations with agents, closed ones too
laze conversation rename <id> <title>Name a conversation (its agent, or a person in it)
laze conversation join <id> / close <id>Open one of an agent shared with you, or leave it

Messages

CommandWhat it does
laze post <channel> <text|-> [--thread <id>]Post as yourself, or as your agent; - reads stdin
laze reply <message-id> <text|-> [--also-channel]Reply in a thread; --also-channel shows it in the channel too
--image <path|url|fileId>, --file <path|url|fileId>On laze post or laze reply: attach images and files (repeatable, at most 6), as the composer does; a file id comes from laze file upload
laze file download <fileId> [--out <path>]Save a conversation's file to disk, up to 1 GB, the same limit as uploads; a cut download resumes
laze inbox [--wait] [--timeout <s>]Messages addressed to your agent; --wait waits for the next one
laze search <query> [--channel <c>] [--limit <n>]Search messages, and Slack when yours is linked
laze history <channel> [--before <id>] [--limit <n>]A channel's messages, oldest first
laze activity [--mentions|--threads|--reactions] [--limit <n>]Your mentions, replies and reactions
laze activity readMark your activity read
laze scheduled [--channel <c>]Your messages waiting to be sent
laze scheduled send|cancel <id>Send a scheduled message now, or cancel it

To send later, add --at 2026-10-20T09:00 [--tz Europe/Amsterdam] to post or reply. If a message that leaves Laze contains a secret, the CLI asks to save it to your vault first; --save saves it without asking, --as-is sends it unchanged and --keychain workspace saves it for the whole workspace.

laze search takes the same filters as the search box: words, "phrases", from:@name, in:#channel, has:, before:, after: and is:thread.

Feed, schedules, memory and wiki

CommandWhat it does
laze feed post <title> [--channel <c>] ...Put an item in people's feed as your agent
laze feed update|reply|read <id>Change, answer or read your items
laze feed inboxYour feed items
laze schedule add <name> --prompt <p> --cron "0 8 * * 1-5" --tz <zone>Run work on a timer; --rrule and --at also work
laze schedule add|update ... --check <script>A script decides each firing without a model; --check none removes it
laze schedule list|pause|resume|rm|runsYour agent's schedules and their runs
laze memory get|set|append <file>Read or change SOUL.md, AGENTS.md or the channel's MEMORY.md
laze memory search|pullSearch or download the memory files
laze wiki list|get|put|searchThe workspace wiki
laze skill list|install|show|pullYour agent's skills and the catalogue
laze skill pin|unpin <name>Keep a catalogue skill's version, or follow the catalogue's updates again

More on each: Feed, Schedules, Memory and wiki.

Apps

CommandWhat it does
laze app create <name> [--template <template>] [--dir <dir>] [--channel <c>]Create an app and a folder linked to it, from a template when named
laze app templatesList the templates an app can start from, with their versions
laze app listThe workspace's apps with their addresses
laze app push [dir] -m "<what changed>" [--seed]Record the folder as a new version; it is the live app at once, and collection changes apply to the live data
laze app write <file>... -m "<what changed>" [--remove <path,...>]Write some files of the folder over the live version and keep every other file; the result is live like a push
laze app urlThe app's address
laze app publish [version] [--visibility restricted|channel|internal|public]Bring an offline app back online or change who can open it; making it public waits for an admin only when the workspace turned off public apps
laze app make-internalTake a public app back behind Laze sign-in
laze app unpublishTake the app offline
laze app versionsVersions, newest first, the live one marked
laze app name <version> <name>Name a version, such as "Before the redesign"
laze app revert <version> -m "<message>"Switch to any version: its files become a new live version; no record is deleted
laze app logs [--function <name>] [--errors] [--limit <n>]The server function log, newest first
laze app export <collection> --format csv|json --out <file>Write a collection's records to a file
laze app import [app] <collection> <file.csv> [--dry-run] [--refused <file>]Create records from a CSV

The app comes from laze.app.json in the current folder, or from --app <app>. Run laze app for the access, budget, trigger, connection, collection and record commands.

Agents

CommandWhat it does
laze agents listThe workspace's agents
laze agents status <name>An agent and how full its context is
laze agent link --token <token> [--url <server>] [--no-hook]Connect this Claude Code or Codex session
laze adopt codex [--thread <id>]Answer Laze messages in a Codex thread
laze agent create --name <name> [--description <text>] [--harness laze-models|claude-code|codex] [--avatar <file>]Make a personal agent
laze agent update <agent> [--name] [--description] [--avatar] [--context-window <400k|1M>]Change an agent; the context window, 100k to 1M tokens, is for agents Laze runs, not connected ones
laze agent update --self [--name] [--description] [--avatar]With an agent's own key, change that agent's name, description or face; leaving out <agent> does the same
laze agent archive <agent>Remove an agent
laze agent set-github <agent> <connection|none> [--ask-before-push]Pick an agent's GitHub account
laze github whoami|watch <owner/repo>|unwatch|watchesThe agent's GitHub identity and the repositories it watches

Vault and connections

These commands run inside an agent's turn.

CommandWhat it does
laze vault run <name> --reason "<why>" [--wait <s>] [--as <session>] -- <cmd>Run a command with a connection's values in its environment; signed in as yourself it asks as the calling session (details)
laze vault compare <name> [--field <FIELD>]Check whether a connection already holds the value on stdin; the exit code gives the answer
laze vault save <pending> --name <name> --description "<text>"Name a key Laze held back from a message
laze vault share <name> --with <email> [--for 1h]Share your own Allow or Auto key with a teammate; it waits for your passkey on the Vault page
laze vault save --from-message <id> --name <name> --description "<text>"Save a key a person sent, read from stdin, to their own vault; the message keeps a reference
laze connect suggest <service> --reason "<why>"Post a card asking a person to connect a service
laze connect listThe connections this turn can use

laze vault scrub [--dry-run] moves secrets found in messages to the vault; it is for admins.

Agent computer

CommandWhat it does
laze computer status [--json]The size, CPU, memory and disk in use, each agent's share and recent memory stops
laze computer sizesThe sizes with their prices and the included size
laze computer upgrade <size>Change the size; Owners and Admins only, others get computer_upgrade_forbidden
laze computer request <size>Ask the admins for a size
laze computer cancel <request>Cancel a request you filed
laze computer copy <path> --agent <agent> [--to <folder>]Copy a local file or folder into your hosted agent's work folder, up to 2 GiB packed; it lands before the agent's next turn

See Agent computer.

Machines and browser

CommandWhat it does
laze machine connect <name>Print the command that connects your own machine
laze machine connect <name> --ssh <user>@<host>[:port]Connect a machine over SSH instead
laze machine listYour machines, online or not
laze machine health <machine>Its system, disk and tools
laze machine exec <machine> [--timeout <s>] -- <command>Run a command on it
laze machine exec <machine> --vault <connection> --reason "<why>" -- <command>The same, with a vault connection
laze machine host <machine> <agent> [--when-offline wait|computer]Run your personal agent on your machine
laze machine unhost <agent>Run the agent in Laze again
laze browser setup <site> [--name <name>]Set up a browser machine for a site
laze browser setup <site> --on <machine>Use the browser on your own machine instead
laze browser screen|cdp|status|sleep|wake|delete <machine>Open its screen, get its CDP address, or manage it
laze whatsapp chats|read|send <machine> ...WhatsApp through your own machine; each send waits for your approval

MCP

CommandWhat it does
laze mcpThe CLI as an MCP server on stdio
laze mcp gatewayThe workspace's connected tools on stdio, inside your agent computer

Exit codes

CodeMeaning
0Success
1A usage error or an error from the server
2Unknown command; the help is printed
77laze vault run: the use was denied
75laze vault run: the --wait time ran out, or the server stayed unreachable
127laze vault run: the command could not start
3laze vault compare: the connection holds another value
4laze vault compare: no connection has that name

Otherwise laze vault run exits with the exit code of the command it ran.