# Logseq CLI (Node) The Logseq CLI is a Node.js program compiled from ClojureScript that connects to the db-worker-node server. ## Build the CLI ```bash clojure -M:cljs compile logseq-cli ``` ## Start db-worker-node (in another terminal) ```bash clojure -M:cljs compile db-worker-node node ./static/db-worker-node.js ``` ## Run the CLI ```bash node ./static/logseq-cli.js ping --base-url http://127.0.0.1:9101 ``` ## Configuration Optional configuration file: `~/.logseq/cli.edn` Supported keys include: - `:base-url` - `:auth-token` - `:repo` - `: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. ## Commands Graph commands: - `graph-list` - list all db graphs - `graph-create --graph ` - create a new db graph and switch to it - `graph-switch --graph ` - switch current graph - `graph-remove --graph ` - remove a graph - `graph-validate --graph ` - validate graph data - `graph-info [--graph ]` - show graph metadata (defaults to current graph) Graph content commands: - `add --content [--page ] [--parent ]` - add blocks; defaults to today’s journal page if no page is given - `add --blocks [--page ] [--parent ]` - insert blocks via EDN vector - `add --blocks-file [--page ] [--parent ]` - insert blocks from an EDN file - `remove --block ` - remove a block and its children - `remove --page ` - remove a page and its children - `search --text [--limit ]` - search block titles (Datalog includes?) - `tree --page [--format text|json|edn]` - show page tree - `tree --block [--format text|json|edn]` - show block tree Examples: ```bash node ./static/logseq-cli.js graph-create --graph demo --base-url http://127.0.0.1:9101 node ./static/logseq-cli.js add --page TestPage --content "hello world" node ./static/logseq-cli.js search --text "hello" node ./static/logseq-cli.js tree --page TestPage --format json ```