You bookmark 30 articles a week. Your AI agent can't read any of them. keep.md fixes that: it saves web content as clean markdown, gives your agent a REST API to search and read it, and auto-syncs your X bookmarks — through official channels, not scraping that gets your account banned.
If you run AI agents that interact with X (Twitter), you've hit the wall. X's API restrictions are aggressive and getting worse:
This creates a specific problem for agents that need to research, curate, and learn from content saved on X. You bookmark interesting threads, competitor insights, market signals — but your agent can't access any of it without risking your account or paying $5K/month.
keep.md solves this by syncing your X bookmarks through an official integration, converting them to markdown, and exposing them via a clean REST API your agent can query safely. No scraping. No API tier workarounds. No account risk.
All endpoints use Bearer token auth. Get your key from the keep.md dashboard. Base URL: https://keep.md/api
curl -X POST https://keep.md/api/ingest \
-H "Authorization: Bearer $KEEP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/article"}'
# Response:
# {"ok": true, "id": "a1b2c3", "extracted": true}
The page is fetched in the background, extracted as markdown, and stored. Duplicate URLs are deduplicated automatically.
# Hybrid retrieval — searches titles, URLs, notes, tags, and content
curl "https://keep.md/api/items?q=AI+agent+memory&limit=5&content=1" \
-H "Authorization: Bearer $KEEP_API_KEY"
The q parameter does hybrid retrieval — not just keyword matching. Returns items ranked by relevance with optional full markdown content.
# Returns unprocessed items — designed for agent consumption
curl "https://keep.md/api/feed?limit=10" \
-H "Authorization: Bearer $KEEP_API_KEY"
# After processing, mark items so they don't reappear:
curl -X POST https://keep.md/api/items/mark-processed \
-H "Authorization: Bearer $KEEP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"ids": ["a1b2c3", "d4e5f6"]}'
The /feed endpoint is purpose-built for agents: it returns only unprocessed items with full markdown. Your agent reads them, extracts what it needs, then marks them processed. Next time the agent checks, it only sees new content. This prevents reprocessing and keeps the agent's context fresh.
# Get raw markdown for a single bookmark
curl https://keep.md/api/items/a1b2c3/content \
-H "Authorization: Bearer $KEEP_API_KEY"
# Returns plain text markdown — the full extracted page
The fastest path is the agent skill — one command installs it:
npx playbooks add skill keep.md/docs
Once installed, your OpenClaw agent can search and read your bookmarks during any conversation. The skill registers keep's CLI commands as tools the agent can call.
For more control, set up a cron job that pulls your bookmark feed and writes it to the agent's context files:
#!/bin/bash
# keep-sync.sh — runs every 4 hours via cron
# Pulls unprocessed bookmarks and appends to today's context
KEEP_API_KEY="your-key-here"
TODAY=$(date +%Y-%m-%d)
CONTEXT_FILE="$HOME/.openclaw/workspace/memory/bookmarks-$TODAY.md"
# Fetch unprocessed items
FEED=$(curl -s "https://keep.md/api/feed?limit=20&content=1" \
-H "Authorization: Bearer $KEEP_API_KEY")
COUNT=$(echo "$FEED" | jq '.count')
[ "$COUNT" -eq 0 ] && exit 0
# Append to today's context file
echo "$FEED" | jq -r '.items[] |
"## " + .title + "\n" +
"URL: " + .url + "\n" +
"Saved: " + (.createdAt | todate) + "\n\n" +
.contentMarkdown + "\n\n---\n"' >> "$CONTEXT_FILE"
# Mark as processed
IDS=$(echo "$FEED" | jq -c '[.items[].id]')
curl -s -X POST https://keep.md/api/items/mark-processed \
-H "Authorization: Bearer $KEEP_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"ids\": $IDS}" > /dev/null
echo "Synced $COUNT bookmarks to $CONTEXT_FILE"
Cron entry:
0 */4 * * * /bin/bash ~/scripts/keep-sync.sh >> ~/logs/keep-sync.log 2>&1
Now your agent reads today's bookmarks as part of its daily context. When you bookmark an interesting X thread at 10 PM, your agent has it as context by the 2 AM sync.
For n8n users, the integration is a 3-node workflow:
https://keep.md/api/feed?limit=20&content=1 with Bearer auth headerA common pattern: n8n pulls the feed → sends each bookmark's markdown to Claude for a 2-sentence summary → posts the summaries to a Slack channel → marks the items processed. You get a curated, summarized research feed without ever opening a browser tab.
Bookmark competitor articles, industry reports, and thought-leader threads. Your research agent queries keep.md's API as its primary source when answering "what are competitors doing?" or "what's trending in [space]?" — drawing from content you've already vetted, not random web search results.
Bookmark interesting X threads as you scroll. keep.md syncs them automatically, extracts the full text (including quoted tweets and linked articles), and stores it as markdown. Your agent processes the feed nightly, extracting trends, tagging topics, and flagging content worth responding to. You get X intelligence without building a scraper or paying $5K/month for Pro API access.
Bookmark articles you want to reference when writing. When your content agent is drafting a blog post or newsletter, it searches keep.md for relevant saved articles, pulls the markdown, and cites real sources instead of generating vague references. Your content is grounded in material you've actually read and approved.
Save YouTube videos and keep.md extracts the transcript as markdown. Your agent can search across hours of video content by keyword — finding the exact segment where someone discussed a specific technique. No more rewatching entire videos to find the one minute that matters.
Set up RSS feeds and YouTube channels as background sources. keep.md automatically saves new content when it's published. Your agent processes the feed daily, flagging anything relevant to your current projects. Passive monitoring without manual bookmarking.
Based on the API documentation (March 2026):
/api/me). Monthly reset, not lifetime.The /api/me endpoint returns your current plan, link limit, and usage count — your agent can check its own budget before saving new items.
Before saving a batch of URLs, have your agent check:
GET /api/me → {"plan":"plus","linkLimit":500,"linkCount":42}
458 links remaining. Safe to proceed. If linkCount approaches linkLimit, the agent should alert you instead of hitting 429 errors.
/api/me curl to verify.npx playbooks add skill keep.md/docs) or set up the cron sync script.keep.md integration, memory architecture, async workflows, and more. Every guide tested on a real system. $9/month, cancel anytime.
Get The Library — $9/mo30-day money-back guarantee