← 全部工具

kernoeb/xummary

热度 75 更新于 AI 与 Agent

Your X timeline, read once a day instead of scrolled all day. A Rust CLI and a SwiftUI app that turn For You + Following into one LLM briefing.

githubauto-collected

安装

暂未验证可直接使用的安装命令,请查看项目官方文档或 Release。

xummary

Your X timeline, read once a day instead of scrolled all day.

xummary pulls a few pages of your For You and Following feeds, sends them to Claude, and gives you one grouped briefing of what actually happened. No feed, no infinite scroll, no rage bait — a page you read and close.

<p align="center" <img src="docs/screenshot.png" alt="The Xummary window showing a briefing: three sections, each one story, with @handles picked out in the accent colour" width="700" </p

Two front ends, one engine:

| | | | --- | --- | | cli/ | a Rust terminal app | | macos/ | a SwiftUI window that runs the CLI and renders it |

In the terminal

## ZEVENT 2026 occupe la timeline

Le ZEVENT domine la journée, entre extraits drôles et agacement.
@Palomarlena et @Tu_le_C relaient des séquences de stream, et
@FrenchRapUS annonce un maillot dédicacé par Messi.

## GPT-6 Astra et Perplexity

@perplexity_ai a mis GPT-6 Astra à disposition dans Perplexity
Computer pour les abonnés Pro et Max.

## Also
  • un client Spotify natif a passé 3 200 étoiles GitHub, via @paolino
  • @JLMelenchon revendique 12 000 personnes à la Braderie de Lille

## Install

You need [Rust](https://rustup.rs), the [`claude`
CLI](https://claude.com/claude-code) already logged in, and a Chromium-family
browser logged into x.com.

git clone https://github.com/kernoeb/xummary cd xummary/cli cargo build --release rm -f ~/.local/bin/xummary # replacing in place breaks the signature cp target/release/xummary ~/.local/bin/


Then, for the macOS app:

cd ../macos ./build.sh open Xummary.app


## Use

xummary # both feeds, 10 pages each, last 24 hours xummary --hours 48 xummary --lang English # the default is French xummary --print # plain stdout, pipe it anywhere


Full options in [`cli/README.md`](cli/README.md).

## How it works

1. **Session** — decrypts `auth_token` and `ct0` from your browser's cookie
   database. On macOS the AES key comes from the *"&lt;Browser&gt; Safe Storage"*
   keychain entry, so the first run asks for permission.
2. **Fetch** — calls X's web GraphQL API (`HomeTimeline` and
   `HomeLatestTimeline`) with the bearer token x.com ships to every browser.
3. **Filter** — drops anything older than `--hours`, dedupes across the two
   feeds, keeps the 600 most recent posts.

the answer back.

Both feeds are fetched at the same time, and paging stops as soon as a page falls outside the window. Fetching takes about 8 seconds; the summary is the rest, and varies. Every run ends by reporting its own breakdown — 600 posts · fetch 9s · wait 4s · total 41s — where wait is the time to the first token.