--- title: Twitter description: Official Twitter / X API client. --- Basic Twitter API methods for fetching users, tweets, and searching recent tweets. Includes support for plan-aware rate-limiting. - package: `@agentic/twitter` - exports: `class TwitterClient`, `namespace twitter` - env vars: `TWITTER_API_KEY`, `TWITTER_API_PLAN` - [source](https://github.com/transitive-bullshit/agentic/blob/main/packages/twitter/src/twitter-client.ts) - [twitter api docs](https://docs.x.com/x-api) ## Install ```bash npm npm install @agentic/twitter ``` ```bash yarn yarn add @agentic/twitter ``` ```bash pnpm pnpm add @agentic/twitter ``` ## Usage ```ts import { TwitterClient, createTwitterV2Client } from '@agentic/twitter' // Requires Nango connection ID and callback URL environment variables const rawClient = await createTwitterV2Client() const twitter = new TwitterClient({ client: rawClient }) const res = await twitter.createTweet({ text: 'hello, world' }) ``` This example uses [Nango](https://www.nango.dev) for OAuth support via the [createTwitterV2Client](https://github.com/transitive-bullshit/agentic/blob/main/packages/twitter/src/client.ts#L53) helper function, but you can pass any instance of the underlying [TwitterV2Client](https://github.com/twitterdev/twitter-api-typescript-sdk) to the `TwitterClient` constructor. All `TwitterClient` methods are automatically throttled based on your [Twitter API plan](https://docs.x.com/x-api/fundamentals/rate-limits). You can set the twitter plan by setting the `TWITTER_API_PLAN` environment variable or by passing the `twitterApiPlan` parameter to the `TwitterClient` constructor. This twitter client is pretty robust, taking into account my [learnings from building a Twitter bot which gained over 150k followers](https://transitivebullsh.it/chatgpt-twitter-bot-lessons).