@marrowdev/cli
v0.2.0
Published
Marrow data CLI — read / scout / search / monitor / usage from your shell. Flux NDJSON by default (pipes into flux-tools / hsh-bash), --md for humans. Thin wrapper over the Marrow edge API.
Maintainers
Readme
@marrowdev/cli
Marrow data CLI — read / scout / search / monitor / usage from your shell.
Outputs Flux NDJSON by default (pipes straight into flux-tools / hsh-bash), or
human-readable markdown with --md. It's a thin Bearer wrapper over the Marrow edge API —
the same billed route the @marrowdev/mcp server uses, so there's no separate code path.
Agents should use the MCP server (
@marrowdev/mcp) instead. This CLI is for shells, CI, andhsh-bashpipelines — clients that aren't an LLM.
Install
npm i -g @marrowdev/cli # or: bun add -g @marrowdev/cliAuth
marrow login --api-key mrw_… # saves to ~/.config/marrow/config.json
# or: export MARROW_API_KEY=mrw_…
# no key yet: npx -y marrow-setup --email [email protected]Precedence: --api-key flag → MARROW_API_KEY env → saved config.
Commands
marrow https://example.com # bare-URL shortcut = read
marrow read https://example.com --md # clean markdown
marrow read https://example.com --change-tracking --tag daily
marrow scout https://example.com # links/structure (cheap; scout→read saves tokens)
marrow search "rust async runtime" --limit 5
marrow crawl https://example.com --limit 10 --max-depth 2
marrow screenshot https://example.com -o shot.png
marrow monitor create https://example.com --interval 30 --webhook https://you/hook
marrow monitor list
marrow monitor run <id>
marrow monitor delete <id>
marrow usage --mdGlobal: --md, -o FILE, --api-url URL (self-host / edge override).
Flux output
Envelope { v, source:"marrow", type, event, …payload } — one compact JSON object per line.
| command | signal |
|---|---|
| read | doc:fetched |
| scout | link:found |
| search | result:found |
| crawl | doc:fetched (one per page) |
| read --change-tracking / monitor run | chunk:{added,modified,moved,removed} + diff:completed |
| usage | usage:reported |
screenshot returns a binary PNG — it writes a file (-o, or an auto-named
marrow-shot-<host>-<ts>.png) rather than NDJSON.
chunk:* mirrors flux-eye's file:{created,modified,deleted} — local file changes and
remote web changes flow through the same flux_grep / flux_priority neurons.
marrow scout https://example.com | flux_grep type:link | flux_priorityDev
bun src/index.ts --help # run from source
npm run build # tsc → dist/