bash
# Install (downloads binary directly from official GitHub releases)
# macOS arm64:
curl -fsSL https://github.com/getmatterapp/matter-cli/releases/latest/download/matter-darwin-arm64 -o ~/.matter/bin/matter && chmod +x ~/.matter/bin/matter
# macOS x86:
curl -fsSL https://github.com/getmatterapp/matter-cli/releases/latest/download/matter-darwin-x64 -o ~/.matter/bin/matter && chmod +x ~/.matter/bin/matter
# Linux arm64:
curl -fsSL https://github.com/getmatterapp/matter-cli/releases/latest/download/matter-linux-arm64 -o ~/.matter/bin/matter && chmod +x ~/.matter/bin/matter
# Linux x86:
curl -fsSL https://github.com/getmatterapp/matter-cli/releases/latest/download/matter-linux-x64 -o ~/.matter/bin/matter && chmod +x ~/.matter/bin/matter
# Add to PATH if needed
export PATH="$HOME/.matter/bin:$PATH"
# Authenticate
matter login
Source: https://github.com/getmatterapp/matter-cli Requires a Matter Pro subscription. Get one at https://web.getmatter.com/settings.
CLI binary: matter (added to PATH after install)
Auth: Stored locally after matter login.
Full command reference: See references/commands.md
bash
matter items list --status inbox --order inbox_position --limit 10
bash
matter items list --status queue --order library_position --limit 10
bash
matter items get <id> --include markdown
Fetch markdown content, then summarize or analyze it.
bash
matter search "<topic>" --type items --limit 10
bash
matter annotations list --item <item_id> --all
bash
matter tags list # find or confirm tag id/name first
matter tags add --item <item_id> --name "<tag_name>"
bash
matter items update <id> --status archive
bash
matter items save --url "<url>" --status queue
matter annotations list --item <id> --allAll commands return JSON by default. Use --plain for human-readable output.
⚠️ Do NOT use --all for large libraries. It streams all pages in one call and will hit rate limits mid-stream, corrupting the JSON response. Instead, paginate manually:
bash
# First page
matter items list --status queue --order updated --limit 50 --plain
# Next page (use cursor from previous response)
matter items list --status queue --order updated --limit 50 --plain --cursor <cursor>
Repeat with each returned cursor until no cursor is shown. Add sleep 5 between pages to stay within rate limits.
OperationLimitRead (list, get)120/minSearch30/minMarkdown (full text)20/minWrite (update, tag, archive)30/minSave (new URLs)10/minBurst5/min
Rules for bulk operations:
sleep 4 between each call (stays under 20/min)sleep 3 between each (stays under 30/min)Rate limit exceeded. Retry after N seconds error: stop immediately, wait the stated seconds + 5, then resume