The Logseq CLI is a Node.js program compiled from ClojureScript that connects to a db-worker-node server managed by the CLI.
clojure -M:cljs compile logseq-cli
logseq-cli manages db-worker-node automatically. You should not start the server manually. The server binds to localhost on a random port and records that port in the repo lock file.
node ./static/logseq-cli.js graph list
Optional configuration file: ~/.logseq/cli.edn
Supported keys include:
:auth-token:repo:data-dir:timeout-ms:retries:output-format (use :json or :edn for scripting)CLI flags take precedence over environment variables, which take precedence over the config file.
Graph commands:
graph list - list all db graphsgraph create --repo <name> - create a new db graph and switch to itgraph switch --repo <name> - switch current graphgraph remove --repo <name> - remove a graphgraph validate --repo <name> - validate graph datagraph info [--repo <name>] - show graph metadata (defaults to current graph)For any command that requires --repo, if the target graph does not exist, the CLI returns graph not exists (except for graph create).
Server commands:
server list - list running db-worker-node serversserver status --repo <name> - show server status for a graphserver start --repo <name> - start db-worker-node for a graphserver stop --repo <name> - stop db-worker-node for a graphserver restart --repo <name> - restart db-worker-node for a graphBlock commands:
block add --content <text> [--page <name>] [--parent <uuid>] - add blocks; defaults to today’s journal page if no page is givenblock add --blocks <edn> [--page <name>] [--parent <uuid>] - insert blocks via EDN vectorblock add --blocks-file <path> [--page <name>] [--parent <uuid>] - insert blocks from an EDN fileblock remove --block <uuid> - remove a block and its childrenblock remove --page <name> - remove a page and its childrenblock search --text <query> [--limit <n>] - search block titles (Datalog includes?)block tree --page <name> [--format text|json|edn] - show page treeblock tree --block <uuid> [--format text|json|edn] - show block treeHelp output:
Subcommands:
block add [options] Add blocks
block remove [options] Remove block or page
block search [options] Search blocks
block tree [options] Show tree
Output formats:
--output <human|json|edn> (also accepted per subcommand)Examples:
node ./static/logseq-cli.js graph create --repo demo
node ./static/logseq-cli.js block add --page TestPage --content "hello world"
node ./static/logseq-cli.js block search --text "hello"
node ./static/logseq-cli.js block tree --page TestPage --format json --output json
node ./static/logseq-cli.js server list