Skill2.8k repo starsupdated 5d ago
twitter-reader
The twitter-reader skill enables read-only access to Twitter/X financial discussions and news by leveraging opencli, a CLI tool that reuses an existing Chrome browser session without requiring API keys. Use this skill to search market discussions, monitor analyst tweets, track sentiment, and research financial news on X when you need real-time social media data for investment analysis or market research.
Install in Claude Code
Copygit clone --depth 1 https://github.com/himself65/finance-skills /tmp/twitter-reader && cp -r /tmp/twitter-reader/plugins/social-readers/skills/twitter-reader ~/.claude/skills/twitter-readerThen start a new Claude Code session; the skill loads automatically.
Definition
SKILL.md
# Twitter Skill (Read-Only)
Reads Twitter/X for financial research using [opencli](https://github.com/jackwener/opencli), a universal CLI tool that bridges web services to the terminal via browser session reuse.
**This skill is read-only.** It is designed for financial research: searching market discussions, reading analyst tweets, tracking sentiment, and monitoring financial news on Twitter/X. It does NOT support posting, liking, retweeting, replying, or any write operations.
**Important**: opencli reuses your existing Chrome login session — no API keys or cookie extraction needed. Just be logged into x.com in Chrome and have the Browser Bridge extension installed.
---
## Step 1: Ensure opencli Is Installed and Ready
**Current environment status:**
```
!`(command -v opencli && opencli doctor 2>&1 | head -5 && echo "READY" || echo "SETUP_NEEDED") 2>/dev/null || echo "NOT_INSTALLED"`
```
If the status above shows `READY`, skip to Step 2. If `NOT_INSTALLED`, install first:
```bash
# Install opencli globally
npm install -g @jackwener/opencli
```
If `SETUP_NEEDED`, guide the user through setup:
### Setup
opencli requires Node.js >= 21 and a Chrome browser with the Browser Bridge extension:
1. **Install the Browser Bridge extension:**
- Download the latest `opencli-extension-v{version}.zip` from the [GitHub Releases page](https://github.com/jackwener/opencli/releases)
- Unzip it, open `chrome://extensions` in Chrome, and enable **Developer mode**
- Click **Load unpacked** and select the unzipped folder
2. **Login to x.com** in Chrome — opencli reuses your existing browser session
3. **Verify connectivity:**
```bash
opencli doctor
```
This auto-starts the daemon, verifies the extension is connected, and checks session health.
### Common setup issues
| Symptom | Fix |
|---------|-----|
| `Extension not connected` | Install Browser Bridge extension in Chrome and ensure it's enabled |
| `Daemon not running` | Run `opencli doctor` — it auto-starts the daemon |
| `No session for twitter.com` | Login to x.com in Chrome, then retry |
| `CSRF token missing` | Refresh x.com in Chrome to regenerate the ct0 cookie |
---
## Step 2: Identify What the User Needs
Match the user's request to one of the read commands below, then use the corresponding command from `references/commands.md`.
| User Request | Command | Key Flags |
|---|---|---|
| Setup check | `opencli doctor` | — |
| Home feed / timeline | `opencli twitter timeline` | `--type for-you\|following`, `--limit N` (default 20) |
| Search tweets | `opencli twitter search "QUERY"` | `--filter top\|live`, `--limit N` (default 15) |
| Trending topics | `opencli twitter trending` | `--limit N` (default 20) |
| Bookmarks | `opencli twitter bookmarks` | `--limit N` (default 20) |
| Recent tweets from a user | `opencli twitter tweets USERNAME` | `--limit N` (default 20) |
| View a specific thread | `opencli twitter thread TWEET_ID` | `--limit N` (default 50) |
| Twitter article | `opencli twitter article TWEET_ID` | — |
| User profile | `opencli twitter profile USERNAME` | — (defaults to logged-in user) |
| Followers | `opencli twitter followers USERNAME` | `--limit N` (default 50) |
| Following | `opencli twitter following USERNAME` | `--limit N` (default 50) |
| Notifications | `opencli twitter notifications` | `--limit N` (default 20) |
---
## Step 3: Execute the Command
### General pattern
```bash
# Use -f json or -f yaml for structured output
opencli twitter timeline -f json --limit 20
opencli twitter timeline --type following --limit 20
# Recent tweets from a specific user
opencli twitter tweets elonmusk --limit 20 -f json
# Searching for financial topics
opencli twitter search "$AAPL earnings" --filter live --limit 10 -f json
opencli twitter search "Fed rate decision" --limit 20 -f yaml
# Trending topics
opencli twitter trending --limit 20 -f json
```
### Key rules
1. **Check setup first** — run `opencli doctor` before any other command if unsure about connectivity
2. **Use `-f json` or `-f yaml`** for structured output when processing data programmatically
3. **Use `-f csv`** when the user wants spreadsheet-compatible output
4. **Use `--limit N`** to control result count — start with 10-20 unless the user asks for more
5. **For search, use `--filter`** — `top` (default) for relevance, `live` for latest tweets
6. **NEVER execute write operations** — this skill is read-only; do not post, like, retweet, reply, quote, follow, or delete
### Output format flag (`-f`)
| Format | Flag | Best for |
|---|---|---|
| Table | `-f table` (default) | Human-readable terminal output |
| JSON | `-f json` | Programmatic processing, LLM context |
| YAML | `-f yaml` | Structured output, readable |
| Markdown | `-f md` | Documentation, reports |
| CSV | `-f csv` | Spreadsheet export |
### Output columns
Tweet-listing commands (`timeline`, `search`, `thread`) include: `id`, `author`, `text`, `created_at`, `likes`, `retweets`, `replies`, `views`, `url`, `has_media`, `media_urls`.
`tweets` (per-user posts) also includes `is_retweet`.
`bookmarks` columns: `author`, `text`, `likes`, `retweets`, `bookmarks`, `url`.
`trending` columns: `rank`, `topic`, `tweets`, `category`.
Profile (`profile`) columns: `screen_name`, `name`, `bio`, `location`, `url`, `followers`, `following`, `tweets`, `likes`, `verified`, `created_at`.
`followers` / `following` columns: `screen_name`, `name`, `bio`, `followers`.
`notifications` columns: `id`, `action`, `author`, `text`, `url`.
---
## Step 4: Present the Results
After fetching data, present it clearly for financial research:
1. **Summarize key content** — highlight the most relevant tweets for the user's financial research
2. **Include attribution** — show @username, tweet text, and engagement metrics (likes, views)
3. **Provide tweet URLs** when the user might want to read the full thread
4. **For search results**, group by relevance and highlight key themes, sentiment, or market signals
5. **