Skip to main content
keenable-cli is a single-binary CLI for Keenable — configure MCP for your AI clients, search the web, and manage API keys from the terminal. No API key is needed to get started with the CLI. To raise rate limits on the CLI, please log in. To learn more, see authentication.

Installation

Quick start

Authentication

MCP setup

Supported clients: Claude Code, Cursor, Windsurf, Codex, OpenCode.

Date and time filters

--acquired-after, --acquired-before, --published-after, and --published-before each accept one of the following formats:
  • Date in RFC 3339 full-date form (YYYY-MM-DD) — covers that whole day in UTC. On an --*-after flag it resolves to 00:00:00 on that date; on a --*-before flag it resolves to 23:59:59.999 on that date, so pages from the named day are kept at either end. Pass a timestamp instead to cut at an exact instant.
  • Timestamp in ISO 8601 form (YYYY-MM-DDTHH:MM:SS[.sss][±HH:MM]). When a timezone offset is not provided, the timezone is interpreted as UTC.
  • Relative delta (<number><unit>, e.g. 7d, 30min) — resolves to the request time minus the delta, truncated to minute precision. Supported units: min (minutes), h (hours), d (days), mo (months), y (years).
Relative deltas may be combined with absolute values across the two bounds of a window:
For example, at request time 2026-05-18T14:23:45Z, --acquired-after 2h resolves to 2026-05-18T12:23:00Z — a document acquired at 12:22:59Z is dropped, one acquired at 12:23:00Z is kept. Mind the difference between a date and a timestamp on a --*-before flag: --acquired-before 2026-05-01 keeps a page acquired at 2026-05-01T14:31:13Z, while --acquired-before 2026-05-01T00:00:00Z drops it. Use the date form to mean “up to and including that day”, and the timestamp form to cut at midnight.

Fetch

Updating

The CLI checks for updates automatically once per hour. To update manually:
Or re-run the installer script.