This is a small installable skill for turning X bookmarks into Linear inbox work.
The website page is documentation. The useful part is the source folder:
That folder contains the SKILL.md file an agent can read and a bundled Node script that can run from cron.
What it does
- Authenticates against the X API with OAuth 2.0.
- Reads your own bookmarks with
GET /2/users/:id/bookmarks. - Creates one Linear issue per new bookmark.
- Leaves each issue in Team Triage when Linear Triage is enabled.
- Stores processed tweet IDs in local JSON so the same bookmark is not sent twice.
- Stores Linear issue identifiers and URLs for captured bookmarks.
- Leaves X bookmarks untouched in v1.
Install
Install the curated public source files into your local skills directory.
For OpenClaw-style repositories, keep the same folder shape and point the tool at the installed SKILL.md.
Configure
Create an X API app with OAuth 2.0 enabled. Configure the callback URL you want to use for local authorization.
Set these environment variables:
Optional:
The X OAuth scopes are:
Authorize X
From the copied skill folder:
Open the printed URL, approve access, and copy the returned code and state values from your callback URL.
Then exchange it:
Run the sync
Preview what would happen without creating Linear issues:
For the daily job:
For a warmer daily job that stops once it sees a bookmark already in local state:
To reduce the maximum paid reads on the daily job:
To inspect more than one page:
For the first backlog clear:
If you want a bounded first run:
For a safe backlog preview:
Commands and flags
Options:
--pages all|<n>controls how many pages to fetch.--page-size <1-100>controls how many bookmarks to request per page.--dry-runprints planned issues without calling Linear or saving processed state.--stop-after-seenstops paging after the first already-processed bookmark.
State file
The default state file is:
It stores:
- X OAuth token data.
- Processed tweet IDs.
- Captured tweet URLs.
- Linear issue identifiers and URLs when issues are created.
Dry runs do not mark bookmarks as processed.
Cron
Linear output
The script creates a raw capture issue.
The title is short:
The description includes:
- Source marker
- X URL
- Author
- Tweet text
- Tweet ID
- Posted date when available
The script intentionally does not use an LLM in v1. It gets the bookmark into the inbox first. A person or agent can process the item later.
Follow-up workflow
The next skill should process these raw Linear Triage items with Hermes, Codex, or another agent heartbeat.
That agent can score captures, ask clarifying questions, and turn the strongest bookmarks into documentation, implementation, research, or product-direction tasks.
Cost notes
As of May 9, 2026, the X API pricing docs describe pay-as-you-go credits and Owned Reads pricing. The bookmark endpoint is an owned read for your own account data.
Using the current $0.001 owned-read resource price:
- 500 returned bookmarks is about
$0.50. - One daily page of 100 bookmarks is up to about
$0.10/day. - A daily first-page sync is roughly
$3/monthat the full 100-bookmark page size.
The script keeps bookmarks on X in v1. Deleting after sync might reduce future reads, but it requires bookmark.write, adds destructive behavior, and should be a separate opt-in version.