Reference
CLI verbs

CLI verbs

The fslite CLI exposes every method on FileSystem plus a per-workspace usage verb and a JSON batch verb. Verb names, one-line summaries, and supported flags live in crates/fslite-command/src/help.rs (opens in a new tab) as the canonical VERB_HELP constant.

For always-current per-verb help, run fslite help <verb> in your terminal. This page is generated by hand from the same source — when the source changes, update both.

The full table

VerbOne-line summary
appendAppend bytes to a regular file (creates if missing). Flags: --text, --expected-revision.
batchAtomically execute a list of metadata operations from a file or stdin. Flags: --file.
catStream a regular file's contents to stdout. Flags: --range, --no-follow.
changesStream the workspace change feed (cursor-paginated). Flags: --after, --cursor, --limit.
cpCopy a node within the workspace. Flags: --recursive, --overwrite, --expected-revision.
existsTest whether a path resolves to a visible node (exit 0 if yes). Flags: --no-follow.
findMatch nodes by bounded metadata predicates (kind, size, mtime, name). Flags: --name-contains, --kind, --min-size, --max-size, --modified-after, --modified-before, --cursor, --limit.
globMatch absolute paths by shape (e.g. /logs/*.txt). Flags: --cursor, --limit.
grepLiteral byte matches inside regular files (returns matched ranges). Flags: --cursor, --limit.
lnCreate a symbolic link. Flags: --parents, --exist-ok, --expected-revision.
lsList one directory's direct children (cursor-paginated). Flags: --cursor, --limit.
mkdirCreate a directory. Flags: --parents, --exist-ok, --expected-revision.
mvMove a node within the workspace. Flags: --overwrite, --expected-revision.
purgePermanently delete a trashed node. (no flags).
readlinkPrint a symbolic link's stored target. (no flags).
restoreRestore a trashed node (optionally to a different path). Flags: --to, --expected-revision.
rmPermanently remove a node and (recursively) its subtree. Flags: --recursive, --expected-revision.
rmattrRemove a custom attribute from a node. Flags: --expected-revision.
setattrSet an opaque custom attribute on a node. Flags: --value, --expected-revision.
statPrint metadata for one path. Flags: --no-follow.
touchUpdate timestamps or create an empty regular file. Flags: --no-create, --expected-revision.
trashMove a node into recoverable trash. Flags: --expected-revision.
trash-lsList recoverable trash records (cursor-paginated). Flags: --cursor, --limit.
treeRecursively enumerate a subtree (cursor-paginated). Flags: --max-depth, --follow-symlinks, --cursor, --limit.
truncateSet a regular file's logical length. Flags: --length, --expected-revision.
usagePrint workspace byte/node usage and quota limits. (no flags).
writeReplace a regular file's contents (creates by default). Flags: --text, --no-create, --expected-revision.
write-atWrite bytes beginning at a logical offset. Flags: --offset, --text, --no-create, --expected-revision.

Common flags across mutating verbs

--expected-revision shows up on every mutating verb because optimistic concurrency is a first-class concern. Set it to the Revision you read earlier; the operation is rejected with RevisionConflict (HTTP 412) if the node has changed in between. --cursor and --limit show up on every paged verb — see the CLI flags reference for the exact cursor format.