169 Commits
Author SHA1 Message Date
Peter Steinberger 9d715fb3a6 feat: add following/followers query refresh + retry 2026-01-01 11:25:21 +01:00
Peter Steinberger 9b7dab7643 style: satisfy lint for quote depth 2026-01-01 10:48:34 +01:00
Peter Steinberger 48722d8462 chore: merge origin/main 2026-01-01 10:46:10 +01:00
Peter Steinberger 071953e9f4 feat: add quote depth option for quoted tweets 2026-01-01 10:45:15 +01:00
Peter Steinberger ce4906a502 fix: use query params string for bookmark folder 2026-01-01 10:00:35 +01:00
Peter Steinberger d1a3d1f289 chore: merge origin/main 2026-01-01 10:00:06 +01:00
Peter Steinberger e5599c7731 build: update query id updater for likes 2026-01-01 09:55:01 +01:00
Peter Steinberger 9660f9092d refactor: share timeline features for likes 2026-01-01 09:54:49 +01:00
Peter Steinberger e3aa7e7ca9 Merge pull request #7 from tylerseymour/bookmark-collection-selection
feat: add folder support for bookmarks command
2026-01-01 09:15:28 +01:00
swairshahandClaude Opus 4.5 676bff71f3 feat: add likes command
Add `bird likes` command to fetch the authenticated user's liked tweets,
similar to the existing bookmarks command.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
2025-12-31 14:02:08 -08:00
Alex HillmanandClaude Opus 4.5 c90d3f9ab4 Add native quote tweet support to TweetData
- Add quoted_status_result to GraphqlTweetResult type
- Add quotedTweet field to TweetData interface
- Extract and map quoted tweets in mapTweetResult()
- Works for getTweet, getBookmarks, search, etc.
- Document JSON output schema in README

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
2025-12-31 21:58:48 +00:00
Tyler Seymour ee9c89018e feat: add folder support for bookmarks command 2025-12-31 15:20:36 -05:00
thelockmeister 34f45fece7 feat: add following and followers commands
Add two new commands to list users:
- `bird following` - list users that you (or another user) follow
- `bird followers` - list users that follow you (or another user)

Both commands support:
- `--user <userId>` to query another user's following/followers
- `-n <count>` to limit results
- `--json` for structured output

Uses Twitter's GraphQL Following/Followers endpoints with proper
feature flags and query ID rotation support.
2026-01-01 09:06:17 +13:00
Peter Steinberger 2a2a3a7c59 chore: run oxlint type-aware in lint 2025-12-31 19:59:31 +01:00
Peter Steinberger 94de794588 chore: tighten biome rules further 2025-12-31 19:52:23 +01:00
Peter Steinberger fc77190929 chore: tighten lint rules and tests 2025-12-31 19:36:33 +01:00
Alex HillmanandClaude Opus 4.5 9c553e46bf feat: add bookmarks command
Add `bird bookmarks` command to fetch the authenticated user's bookmarked tweets.

- New `getBookmarks()` method in TwitterClient
- Uses graphql_timeline_v2_bookmark_timeline feature flag
- Supports `--count` and `--json` options
- Follows existing patterns for query ID rotation and retry logic

Usage:
  bird bookmarks           # Get your recent bookmarks
  bird bookmarks -n 50     # Get 50 bookmarks
  bird bookmarks --json    # Output as JSON

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
2025-12-30 22:44:52 +00:00
Peter Steinberger c495fb5078 refactor(cookies): use sweet-cookie 2025-12-27 13:23:39 +01:00
Peter Steinberger c16726e9d8 fix: narrow tweet results 2025-12-26 22:40:45 +01:00
Peter Steinberger a3d1ba29f7 test(cli): always print tweet URL 2025-12-26 22:04:08 +01:00
Peter Steinberger 1007d051e4 fix(tweet): fallback to statuses/update on 226 2025-12-26 21:57:36 +01:00
Peter Steinberger e8e98e641a refactor(auth)!: replace allow toggles with cookieSource 2025-12-26 21:28:27 +01:00
Peter Steinberger 1744f4cc24 feat(auth): allow selecting cookie source 2025-12-26 21:17:20 +01:00
Peter Steinberger b46b24a8c5 test: enforce coverage thresholds 2025-12-26 18:23:59 +01:00
Peter Steinberger a4686f90ee feat: add Safari cookie extraction 2025-12-26 17:51:41 +01:00
Peter Steinberger 02d12b4e87 refactor!: remove Sweetistics engine
bird is GraphQL-only; bump to 0.3.0
2025-12-26 17:41:43 +01:00
Peter Steinberger 0bf7190c95 feat(graphql): support video uploads 2025-12-26 15:27:35 +01:00
Peter Steinberger 3be2e3ae7e feat(graphql): upload media 2025-12-26 15:22:53 +01:00
Peter Steinberger dee304235b fix(engine): disable Sweetistics fallback when forcing graphql 2025-12-26 15:10:10 +01:00
Peter Steinberger 978d07f60f feat(graphql): runtime query-id refresh 2025-12-26 14:58:03 +01:00
Peter Steinberger c35e937b2a feat(cli): add plain/no-emoji/no-color + help 2025-12-26 14:14:31 +01:00
Peter Steinberger 4730267c2a fix(sweetistics): improve media upload errors 2025-12-26 13:10:54 +01:00
Peter Steinberger 8257d52532 fix(twitter): improve createTweet posting 2025-12-26 13:10:49 +01:00
Peter Steinberger 80a57c825f fix(graphql): keep query ids fresh 2025-12-26 13:10:43 +01:00
Peter Steinberger 6669ba9912 test(cli): validate mentions handle 2025-12-26 12:34:16 +01:00
Peter Steinberger 3df7969b16 feat(cli): mentions target user 2025-12-26 12:23:00 +01:00
Peter Steinberger 5613caa149 feat(cli): include git sha in --version 2025-12-26 12:12:16 +01:00
Peter Steinberger 9222908ab7 fix(cli): read version from file 2025-12-26 12:05:52 +01:00
Peter Steinberger 618d87ec72 fix(lint): satisfy biome 2025-12-26 10:30:54 +01:00
Peter Steinberger 3661f784cb fix: default engine auto with graphql primary 2025-12-25 14:00:35 +01:00
Peter Steinberger fdf099ff70 fix(twitter): refresh TweetDetail query ids 2025-12-20 11:56:30 +01:00
Peter Steinberger 8e4c5c8bd8 feat(cli): add shorthand read and timeouts 2025-12-20 11:29:17 +01:00
Peter Steinberger bc7139dff9 feat(twitter): improve graphql search and threads 2025-12-20 11:29:02 +01:00
Peter Steinberger f2855643f3 fix: force fresh sweetistics thread fetch 2025-12-05 23:39:06 +01:00
Peter Steinberger da22ef25d3 Add Sweetistics media uploads and CLI flags 2025-12-04 14:25:59 +00:00
Peter Steinberger 35c0f28997 Add Sweetistics request timeout and docs 2025-12-04 14:06:57 +00:00
Peter Steinberger 3e2d5641d7 fix: auto-detect firefox profile by default 2025-12-03 16:44:14 +00:00
Peter Steinberger 1c2f1d2789 fix: show actual credential source in whoami 2025-12-03 16:42:30 +00:00
Peter Steinberger 6ecfe57018 feat: allow disabling cookie sources and default to firefox/graphql 2025-12-03 16:31:55 +00:00
Peter Steinberger 33ef131b94 fix: improve Firefox cookie detection across platforms 2025-12-03 16:30:23 +00:00