feat(lists): add support for Twitter Lists

Add commands to fetch owned lists, list memberships, and list timelines:
- `bird lists` shows lists you own
- `bird lists --member-of` shows lists you're a member of
- `bird list-timeline <id-or-url>` fetches tweets from a list

Includes full --json and --json-full support for list timeline output.

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

Co-Authored-By: Claude Opus 4.5 <[email protected]>
This commit is contained in:
Harper Reed
2026-01-03 16:55:29 +01:00
committed by Peter Steinberger
co-authored by Claude Opus 4.5
parent 3db3aca0a0
commit 7818440d65
9 changed files with 1141 additions and 2 deletions
+5 -1
View File
@@ -1,5 +1,6 @@
import type { AbstractConstructor } from './twitter-client-base.js';
import { TwitterClientBase } from './twitter-client-base.js';
import { type TwitterClientListMethods, withLists } from './twitter-client-lists.js';
import { type TwitterClientMediaMethods, withMedia } from './twitter-client-media.js';
import { type TwitterClientPostingMethods, withPosting } from './twitter-client-posting.js';
import { type TwitterClientSearchMethods, withSearch } from './twitter-client-search.js';
@@ -8,6 +9,7 @@ import { type TwitterClientTweetDetailMethods, withTweetDetails } from './twitte
import { type TwitterClientUserMethods, withUsers } from './twitter-client-users.js';
type TwitterClientInstance = TwitterClientBase &
TwitterClientListMethods &
TwitterClientMediaMethods &
TwitterClientPostingMethods &
TwitterClientSearchMethods &
@@ -16,7 +18,7 @@ type TwitterClientInstance = TwitterClientBase &
TwitterClientUserMethods;
const MixedTwitterClient = withUsers(
withTimelines(withSearch(withTweetDetails(withPosting(withMedia(TwitterClientBase))))),
withLists(withTimelines(withSearch(withTweetDetails(withPosting(withMedia(TwitterClientBase)))))),
) as AbstractConstructor<TwitterClientInstance>;
export class TwitterClient extends MixedTwitterClient {}
@@ -25,10 +27,12 @@ export type {
CurrentUserResult,
FollowingResult,
GetTweetResult,
ListsResult,
SearchResult,
TweetData,
TweetResult,
TwitterClientOptions,
TwitterList,
TwitterUser,
UploadMediaResult,
} from './twitter-client-types.js';