WebCull CLI command reference
The WebCull CLI is a command line tool for finding, creating, and updating bookmarks from a terminal or automation workflow. Commands return JSON by default and are designed to work with large bookmark accounts through limits, paging, field selection, and output budgets.
webcull <command> [options]
webcull@webcull/cli~/.config/webcull/config.json, or the path set by WEBCULL_CONFIG.https://api.webcull.com. Override with WEBCULL_API_URL.Authorize the CLI before running account commands
webcull login
webcull auth login
webcull whoami
webcull limits
webcull login starts a short-lived browser approval flow. The terminal shows a pairing code, the browser shows the same code, and approval creates a CLI token for bookmark read and write commands.
Only approve a login that you started. Compare the terminal code with the browser code before approving.
loginauth loginlogin.whoamilimitsStart broad, then fetch specific bookmark records
webcull bookmarks count [--path <path>]
webcull bookmarks tree [--path <path>] [--max-depth <n>] [--per-parent-limit <n>]
webcull bookmarks search --query <query> [--sort <sort>]
webcull bookmarks get --ids <ids>
bookmarks count/.bookmarks tree--limit 50, --max-depth 2, and --max-chars 12000.bookmarks search25 and the default sort is modified_desc.bookmarks get--ids.Prefer count or a shallow tree before fetching larger result sets. Use get after you know the bookmark IDs you need.
Limit payload size and choose output fields
webcull bookmarks tree --path / --max-depth 1 --limit 25 --max-chars 8000 --fields id,type,title,modified
webcull bookmarks get --ids 123,456 --fields id,title,url,notes --max-metadata-chars 1500 --format json
webcull bookmarks search --query 'github api' --limit 20 --format jsonl
--limit <n>--page <n>1.--max-chars <n>--max-metadata-chars <n>--fields <list>id,title,url,parent_id,modified.--format json|jsonljsonl prints one item per line when the response contains an item list.Use query terms, field filters, and bounded scans
webcull bookmarks search --query 'github api'
webcull bookmarks search --query 'title:"github" AND notes:api'
webcull bookmarks search --query '(title:"github" OR url:"github.com") AND notes:api'
webcull bookmarks search --query 'github api' --limit 20 --max-scan-rows 500
Plaintext accounts use server-side search. Encrypted accounts automatically use local decrypted search when bookmark text needs to be searched.
E2EE search syntax
Local decrypted search supports plain terms, field filters, and AND. Complex local OR and parenthesized queries are rejected for encrypted-account local search.
--max-scan-rows <n>5000.--page-size <n>200.--sort <sort>modified_desc.Create and update bookmarks
webcull bookmarks create --url <url> [--title <title>] [--notes <text>] [--tags <tags>] [--parent-id <id>] [--parent-path <path>] [--dry-run]
webcull bookmarks create --type folder --title <title> [--parent-id <id>] [--dry-run]
webcull bookmarks update <id> [--url <url>] [--title <title>] [--notes <text>] [--tags <tags>] [--parent-id <id>] [--parent-path <path>] [--dry-run]
--url <url>--type folder--title and does not accept --url.--title <title>--notes <text>--tags <tags>--parent-id <id>--parent-path <path>--parent-id.--dry-runWrite commands preserve fields that are not included in the command. They do not support bulk writes, recursive writes, automatic folder creation, bookmark-to-folder conversion, folder-to-bookmark conversion, icon upload, or E2EE enable, disable, or key-change flows.
E2EE passphrases stay in hidden terminal prompts
For E2EE accounts, the CLI prompts for the E2EE passphrase only through hidden interactive terminal input. It never accepts E2EE passphrases in arguments, environment variables, config files, stdin pipes, logs, or examples.
Encrypted bookmark fields are encrypted locally before writes and decrypted locally for supported reads. The server receives encrypted values and never receives passphrases, derived keys, passphrase hashes, or decrypted bookmark fields for E2EE validation.
CLI writes are blocked while E2EE conversion is in progress. Finish E2EE conversion in the app before updating bookmarks that still need conversion.
CLI tokens are separate from browser sessions
The CLI stores its token in ~/.config/webcull/config.json by default with file mode 0600. Set WEBCULL_CONFIG to use a different path.
The token is separate from browser and extension sessions. Current bookmark CLI tokens include bookmarks:read and bookmarks:write.
Use throttles as pacing guidance
WebCull limits CLI requests to protect accounts and keep the service responsive. Read commands and write commands have different limits.
webcull limits sparingly.On a throttled response, wait at least 60 seconds before retrying. Narrow the next request where possible. Dry-run writes use the write throttle because they exercise the write path and ownership checks.