Tyler Seymour
ee9c89018e
feat: add folder support for bookmarks command
2025-12-31 15:20:36 -05:00
Peter Steinberger
fc77190929
chore: tighten lint rules and tests
2025-12-31 19:36:33 +01:00
Alex Hillman and Claude 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
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
Peter Steinberger
a94a5edc11
chore: align biome lint config and clean warnings
2025-12-03 16:09:44 +00:00
Peter Steinberger
9a14b71571
feat: add config defaults, Firefox cookies, and Sweetistics whoami
2025-12-03 15:39:10 +00:00
Peter Steinberger
a5db3333e0
Revert: keep both engine options, don't hardcode sweetistics
2025-12-02 20:19:34 +00:00
Peter Steinberger
0f6cc5c663
Add engine switch and Sweetistics endpoints for tweet reading
2025-12-02 14:53:35 +00:00
Peter Steinberger
850d59e68d
Add Sweetistics API posting support to bird
2025-12-02 12:36:54 +00:00
Peter Steinberger
df66ef0706
Add search/mentions commands and fix cookie decryption
...
- Added `search <query>` command to search tweets
- Added `mentions` command to find @clawdbot mentions
- Fixed Chrome cookie decryption to extract hex values correctly
- Added SearchTimeline query ID (may need updating as Twitter rotates these)
Note: Search endpoints may return 404 if query IDs are outdated
2025-12-02 12:14:22 +00:00
Peter Steinberger
4d40200b76
Update CreateTweet GraphQL query ID and features
...
- Updated queryId from znCVAd692dKBq9MgkEhKPQ to TAJw1rBsjAtdNgTdlo2oeg
- Added new required feature flags for Dec 2025 API version
- Added Grok-related features (analyze, share, translate, imagine)
- Added premium_content_api_read_enabled flag
Source: fa0311/TwitterInternalAPIDocument
2025-12-02 09:51:49 +00:00
Peter Steinberger
5ae8801b23
chore: reformat with 2-space indentation (biome)
2025-11-28 08:09:32 +01:00
Peter Steinberger
0f0bd5d680
Style: satisfy Biome lint suggestions
2025-11-28 08:08:55 +01:00
Peter Steinberger
5889044d7b
Improve tweet read reliability and test coverage
2025-11-28 08:07:44 +01:00
Peter Steinberger
90d22df717
Add read command to fetch tweet content by URL/ID
...
- New `read` command: twitter-cli read <url-or-id>
- Supports --json output flag
- Uses TweetDetail GraphQL API to fetch tweet text, author, stats
- Helpful for reading tweets before replying
2025-11-28 06:35:17 +00:00
Peter Steinberger
011476f607
Initial commit: twitter-cli for posting tweets via GraphQL API
...
Features:
- Post tweets and replies via Twitter GraphQL API
- Cookie extraction from Chrome (macOS)
- Env var and CLI argument authentication
- 19 passing tests with vitest
- Biome for linting
2025-11-28 06:35:17 +00:00