lasbolt
lasbolt help and lasbolt <command> --help, and the command table in client/internal/cli/app.go. Do not edit.lasbolt is the command line client. It talks to your server and to the local agent. Each command below shows its forms and its flags.
Usage
$ lasbolt help
lasbolt: command line client for Lasbolt
Usage: lasbolt <command> [flags] [arguments]
Account:
login <server URL> sign in: approve the code in the browser
(--access read|write|admin, --meta, --no-browser)
login --password <server URL> log in with the master password
login --key <server URL> use a scoped key (key string on stdin)
logout revoke this device and wipe local data
recover forgot the master password: use the recovery code
unlock open the end-to-end folders again
lock drop the end-to-end keys from memory
e2e accept-rollback <folder> accept the state of an end-to-end folder after
the server was restored from a backup (--yes)
e2e rotate-keys make new user keys and rewrap the end-to-end folders
(--new-password, --yes, --kit-file PATH)
status show the login and sync state
sync pull and push changes
Read:
ls [path] list spaces, folders and items
search <text> search names, usernames and URLs
show <ref> show an item (secrets hidden)
read <ref> print one value
conflicts list fields that changed on two devices
Use:
run --env NAME=ref ... -- cmd run a command with secrets in its environment
inject [-i file] [-o file] fill {{ lasbolt://... }} in a template
Write:
edit <ref> --set field=value change fields of an item
purge <ref> delete an item or folder in an end-to-end folder
for good (--yes)
new <login|note|folder> <path> make an item or a folder
rm <ref> move an item to the trash
meta set <item> key=value ... set metadata of an item (--type, --dry-run)
meta unset <item> key ... clear metadata of an item
import bitwarden FILE import a Bitwarden export: JSON, password protected
JSON, CSV or ZIP (--into FOLDER, --dry-run,
--include-deleted, --skip-existing). The password
of a protected file: prompt, stdin or
LASBOLT_IMPORT_PASSWORD
Keys and sessions (need admin access and your user keys):
keys list|create|revoke scoped keys (create <name> --access --values --folder
--item --e2e-grant --expires --ip)
sessions list|revoke device-code sessions
Peer sync (devices of one user sync with each other, also without the server;
the agent does it, DESIGN 15):
peer status peer sync state, this device's key fingerprint,
the peers with their path (lan, direct, none),
the last exchange and the unsettled op count
peer list the peers and their key fingerprints
peer on|off turn peer sync on or off for this device
peer set networks any|lan|RANGES which networks to use (RANGES: 192.168.0.0/16,...)
peer set beacons on|off LAN discovery beacons
peer set port N|auto the UDP port (auto: 7849, else a free port)
peer set pinned on|off use a new peer key only after you confirm it
peer confirm DEVICE [--yes] confirm the key fingerprint of a peer (for pinned)
peer add HOST:PORT add an endpoint that the device tries for all peers
Agent:
agent start|stop|status the local agent holds the keys and the store
mcp MCP server on stdio for AI agents (tools: status,
search, describe, run, login; no secret values)
Browsers:
integrate firefox|chrome write the native messaging host manifest
(--extension-id ID, --uninstall, --dry-run, --json)
nm-host native messaging host (a browser starts it, not you)
Flags for all commands: --json, --offline, --purpose TEXT, --no-agent.
Set LASBOLT_AGENT=off to run without the agent. LASBOLT_KEY=lasbolt_sk_… with
LASBOLT_SERVER=<URL> runs one command with a scoped key, in memory only.
References: lasbolt://space/folder/item/field, lasbolt://id/<item ID>/<field>,
or a plain path such as Personal/Web/github/password.Flags for all commands
| Flag | Value | Meaning |
|---|---|---|
--json | (none) | print JSON |
--no-agent | (none) | do not use the agent (direct mode) |
--offline | (none) | do not use the network |
--purpose | string | reason for this use (audit) |
Flags for all commands: --json, --offline, --purpose TEXT, --no-agent.
Set LASBOLT_AGENT=off to run without the agent. LASBOLT_KEY=lasbolt_sk_… with
LASBOLT_SERVER=<URL> runs one command with a scoped key, in memory only.
References: lasbolt://space/folder/item/field, lasbolt://id/<item ID>/<field>,
or a plain path such as Personal/Web/github/password.Exit codes are on the exit codes page. Error codes in the JSON output are on the error codes page.
lasbolt login
| Form | What it does |
|---|---|
lasbolt login <server URL> | sign in: approve the code in the browser (–access read|write|admin, –meta, –no-browser) |
lasbolt login --password <server URL> | log in with the master password |
lasbolt login --key <server URL> | use a scoped key (key string on stdin) |
Flags of this command, besides the flags for all commands:
| Flag | Value | Meaning |
|---|---|---|
--access | string | access of the session: read, write or admin (default “read”) |
--allow-http | (none) | allow plain http to a non-local host |
--device-name | string | name of this device (default: host name) |
--key | (none) | log in with a scoped key (the key string from stdin or LASBOLT_KEY) |
--meta | (none) | ask for a session that sees names and metadata only |
--no-browser | (none) | do not open a browser; only print the address |
--pair-id | string | pairing offer ID from a QR code of the web app (device-code login only) |
--password | (none) | log in with the master password |
--totp | string | authentication code (or LASBOLT_TOTP) |
--user | string | user name (or LASBOLT_USERNAME) |
lasbolt logout
| Form | What it does |
|---|---|
lasbolt logout | revoke this device and wipe local data |
Flags of this command, besides the flags for all commands:
| Flag | Value | Meaning |
|---|---|---|
--force | (none) | wipe even if changes are not pushed |
lasbolt recover
| Form | What it does |
|---|---|
lasbolt recover | forgot the master password: use the recovery code |
Flags of this command, besides the flags for all commands:
| Flag | Value | Meaning |
|---|---|---|
--allow-http | (none) | allow plain http to a non-local host |
--device-name | string | name of this device for the login after the recovery |
--kit-file | string | save the new recovery kit as a text file (mode 0600; an existing file is not replaced) |
--no-login | (none) | do not log in after the recovery |
--server | string | server URL (default: LASBOLT_SERVER, else the current login) |
--stdin | (none) | read the recovery code from the first line of stdin |
--totp | string | authentication code for the login after the recovery (or LASBOLT_TOTP) |
--user | string | user name (default: LASBOLT_USERNAME, else the current login) |
lasbolt unlock
| Form | What it does |
|---|---|
lasbolt unlock | open the end-to-end folders again |
lasbolt lock
| Form | What it does |
|---|---|
lasbolt lock | drop the end-to-end keys from memory |
lasbolt e2e
| Form | What it does |
|---|---|
lasbolt e2e accept-rollback <folder> | accept the state of an end-to-end folder after the server was restored from a backup (–yes) |
lasbolt e2e rotate-keys | make new user keys and rewrap the end-to-end folders (–new-password, –yes, –kit-file PATH) |
lasbolt e2e accept-rollback
| Flag | Value | Meaning |
|---|---|---|
--yes | (none) | do not ask |
lasbolt e2e rotate-keys
| Flag | Value | Meaning |
|---|---|---|
--kit-file | string | also save the new recovery kit to this file (mode 0600, never replaced) |
--new-password | (none) | also set a new master password |
--yes | (none) | do not ask |
lasbolt status
| Form | What it does |
|---|---|
lasbolt status | show the login and sync state |
lasbolt sync
| Form | What it does |
|---|---|
lasbolt sync | pull and push changes |
lasbolt ls
| Form | What it does |
|---|---|
lasbolt ls [path] | list spaces, folders and items |
lasbolt search
| Form | What it does |
|---|---|
lasbolt search <text> | search names, usernames and URLs |
lasbolt show
| Form | What it does |
|---|---|
lasbolt show <ref> | show an item (secrets hidden) |
lasbolt read
| Form | What it does |
|---|---|
lasbolt read <ref> | print one value |
Flags of this command, besides the flags for all commands:
| Flag | Value | Meaning |
|---|---|---|
--approval-timeout | string | how long to wait for a per-use approval in the web app (env LASBOLT_APPROVAL_TIMEOUT; default 2m) |
--n | (none) | do not print a newline |
lasbolt conflicts
| Form | What it does |
|---|---|
lasbolt conflicts | list fields that changed on two devices |
Flags of this command, besides the flags for all commands:
| Flag | Value | Meaning |
|---|---|---|
--reveal | (none) | print secret values too |
lasbolt run
| Form | What it does |
|---|---|
lasbolt run --env NAME=ref ... -- cmd | run a command with secrets in its environment |
Flags of this command, besides the flags for all commands:
| Flag | Value | Meaning |
|---|---|---|
--approval-timeout | string | how long to wait for a per-use approval in the web app (env LASBOLT_APPROVAL_TIMEOUT; default 2m) |
--env | value | NAME=ref (repeatable) |
lasbolt inject
| Form | What it does |
|---|---|
lasbolt inject [-i file] [-o file] | fill {{ lasbolt://… }} in a template |
Flags of this command, besides the flags for all commands:
| Flag | Value | Meaning |
|---|---|---|
--approval-timeout | string | how long to wait for a per-use approval in the web app (env LASBOLT_APPROVAL_TIMEOUT; default 2m) |
--i | string | template file (default: stdin) |
--o | string | output file, mode 0600 (default: stdout) |
lasbolt edit
| Form | What it does |
|---|---|
lasbolt edit <ref> --set field=value | change fields of an item |
Flags of this command, besides the flags for all commands:
| Flag | Value | Meaning |
|---|---|---|
--approve | string | each-use: a session or a key must ask in the web app before it reads a secret of the item; off: it need not |
--dry-run | (none) | show the changes, do not write |
--name | string | new name of the item |
--secret | (none) | new custom fields are secret |
--set | value | field=value (repeatable) |
--stdin | string | read the value of this field from stdin |
--unset | value | field to clear (repeatable) |
lasbolt purge
| Form | What it does |
|---|---|
lasbolt purge <ref> | delete an item or folder in an end-to-end folder for good (–yes) |
Flags of this command, besides the flags for all commands:
| Flag | Value | Meaning |
|---|---|---|
--yes | (none) | do not ask |
lasbolt new
| Form | What it does |
|---|---|
lasbolt new <login|note|folder> <path> | make an item or a folder |
Flags of this command, besides the flags for all commands:
| Flag | Value | Meaning |
|---|---|---|
--dry-run | (none) | show the changes, do not write |
--if-missing | (none) | succeed if the entry exists already |
--secret | (none) | new custom fields are secret |
--set | value | field=value (repeatable) |
--stdin | string | read the value of this field from stdin |
lasbolt rm
| Form | What it does |
|---|---|
lasbolt rm <ref> | move an item to the trash |
lasbolt meta
| Form | What it does |
|---|---|
lasbolt meta set <item> key=value ... | set metadata of an item (–type, –dry-run) |
lasbolt meta unset <item> key ... | clear metadata of an item |
lasbolt meta set
| Flag | Value | Meaning |
|---|---|---|
--dry-run | (none) | show the changes, do not write |
--type | string | type of the values: text, url, date, duration, enum, list or number |
lasbolt meta unset
| Flag | Value | Meaning |
|---|---|---|
--dry-run | (none) | show the changes, do not write |
lasbolt import
| Form | What it does |
|---|---|
lasbolt import bitwarden FILE | import a Bitwarden export: JSON, password protected JSON, CSV or ZIP (–into FOLDER, –dry-run, –include-deleted, –skip-existing). The password of a protected file: prompt, stdin or LASBOLT_IMPORT_PASSWORD |
Flags of this command, besides the flags for all commands:
| Flag | Value | Meaning |
|---|---|---|
--dry-run | (none) | print the report and write nothing |
--include-deleted | (none) | import items from the Bitwarden trash (they go to the trash) |
--into | string | target folder (a path or lasbolt://id/…); default: the root of the personal space |
--skip-existing | (none) | skip items that match an item of the vault by name, user name and URL |
lasbolt keys
| Form | What it does |
|---|---|
lasbolt keys list|create|revoke | scoped keys (create <name> –access –values –folder –item –e2e-grant –expires –ip) |
lasbolt keys create
| Flag | Value | Meaning |
|---|---|---|
--access | string | read or write (default “read”) |
--e2e-grant | value | give the key of an encrypted folder or item (repeatable) |
--expires | string | end of the key: 30d, 12h, 2026-12-31 |
--folder | value | limit to a space or folder (repeatable) |
--ip | value | allowed client IP range, CIDR (repeatable) |
--item | value | limit to an item (repeatable) |
--values | string | all or meta (names and metadata only) (default “all”) |
lasbolt keys list
| Flag | Value | Meaning |
|---|---|---|
--all | (none) | include revoked and expired keys |
lasbolt sessions
| Form | What it does |
|---|---|
lasbolt sessions list|revoke | device-code sessions |
lasbolt peer
| Form | What it does |
|---|---|
lasbolt peer status | peer sync state, this device’s key fingerprint, the peers with their path (lan, direct, none), the last exchange and the unsettled op count |
lasbolt peer list | the peers and their key fingerprints |
lasbolt peer on|off | turn peer sync on or off for this device |
lasbolt peer set networks any|lan|RANGES | which networks to use (RANGES: 192.168.0.0/16,…) |
lasbolt peer set beacons on|off | LAN discovery beacons |
lasbolt peer set port N|auto | the UDP port (auto: 7849, else a free port) |
lasbolt peer set pinned on|off | use a new peer key only after you confirm it |
lasbolt peer confirm DEVICE [--yes] | confirm the key fingerprint of a peer (for pinned) |
lasbolt peer add HOST:PORT | add an endpoint that the device tries for all peers |
lasbolt peer confirm
| Flag | Value | Meaning |
|---|---|---|
--yes | (none) | do not ask |
lasbolt agent
| Form | What it does |
|---|---|
lasbolt agent start|stop|status | the local agent holds the keys and the store |
lasbolt mcp
| Form | What it does |
|---|---|
lasbolt mcp | MCP server on stdio for AI agents (tools: status, search, describe, run, login; no secret values) |
lasbolt integrate
| Form | What it does |
|---|---|
lasbolt integrate firefox|chrome | write the native messaging host manifest (–extension-id ID, –uninstall, –dry-run, –json) |
Flags of this command, besides the flags for all commands:
| Flag | Value | Meaning |
|---|---|---|
--dry-run | (none) | show what would change |
--extension-id | string | ID of the extension |
--uninstall | (none) | remove the manifest |
lasbolt nm-host
| Form | What it does |
|---|---|
lasbolt nm-host | native messaging host (a browser starts it, not you) |