x-timeline-digest

Review·Scanned 2/18/2026

This skill fetches X timelines via the bird CLI, deduplicates and generates a JSON digest. It runs the bird command (bird home -n <N> --json) and reads/writes state at ~/.openclaw/state/x-timeline-digest.json.

from clawhub.ai·v4868128·20.8 KB·0 installs
Scanned from 1.0.0 at 4868128 · Transparency log ↗
$ vett add clawhub.ai/seandong/x-timeline-digestReview findings below

x-timeline-digest

Overview

This skill uses bird to read X/Twitter timelines and build a high-signal digest. Sources:

  • For You timeline
  • Following timeline What it does:
  1. Fetch recent tweets
  2. Filter incrementally (avoid reprocessing)
  3. Deduplicate (ID + near-duplicate text)
  4. Rank and trim
  5. Generate a Chinese digest
  6. Output a structured payload

Delivery (Telegram, email, etc.) is NOT handled here. Upstream OpenClaw workflows decide how to notify users.


Configuration

All config is read from: skills.entries["x-timeline-digest"].config

Config fields

NameTypeDefaultDescription
intervalHoursnumber6Interval window in hours
fetchLimitForYounumber100Tweets fetched from For You
fetchLimitFollowingnumber60Tweets fetched from Following
maxItemsPerDigestnumber25Max tweets in one digest
similarityThresholdnumber0.9Near-duplicate similarity threshold
statePathstring~/.openclaw/state/x-timeline-digest.jsonState file path

Dependencies

  • bird must be installed and available in PATH
  • bird must already be authenticated (cookie login)
  • Read-only usage

Usage

1. Basic (Raw JSON)

Run the digest generator to get a clean, deduplicated JSON payload:

node skills/x-timeline-digest/digest.js

2. Intelligent Digest (Recommended)

To generate the "Smart Brief" (Categorized, Summarized, Denoised):

  1. Run the script: node skills/x-timeline-digest/digest.js > digest.json
  2. Read the prompt template: read skills/x-timeline-digest/PROMPT.md
  3. Send the prompt to your LLM, injecting the content of digest.json where {{JSON_DATA}} is.

Note: The script automatically applies heuristic filtering (removes "gm", ads, short spam) before outputting JSON.

Bird Commands Used

For You timeline: bird home -n <N> --json Following timeline: bird home --following -n <N> --json

State Management

State is persisted to statePath.

State structure

{ "lastRunAt": "2026-02-01T00:00:00+08:00", "sentTweetIds": { "123456789": "2026-02-01T00:00:00+08:00" } }

Rules

  • Tweets already in sentTweetIds must not be included again
  • After a successful run:
  • Update lastRunAt
  • Add pushed tweet IDs to sentTweetIds
  • Keep IDs for at least 30 days

Processing Pipeline

  1. Fetch from For You and Following
  2. Incremental filter using lastRunAt
  3. Hard deduplication by tweet id
  4. Near-duplicate merge using text similarity
  5. Rank and trim to maxItemsPerDigest
  6. Summarize into Chinese digest

Output

The skill returns one JSON object: { "window": { "start": "2026-02-01T00:00:00+08:00", "end": "2026-02-01T06:00:00+08:00", "intervalHours": 6 }, "counts": { "forYouFetched": 100, "followingFetched": 60, "afterIncremental": 34, "afterDedup": 26, "final": 20 }, "digestText": "中文摘要内容", "items": [ { "id": "123456", "author": "@handle", "createdAt": "2026-02-01T02:15:00+08:00", "text": "tweet text", "url": "https://x.com/handle/status/123456", "sources": ["following"] } ] }