Use X from Raycast: browse your home timeline, mentions, bookmarks, and bookmark folders; inspect post analytics and engagement; publish rich posts and threads; moderate replies; and send explicitly confirmed direct messages. The same core capabilities are available from Raycast AI.
The extension uses OAuth 2.0 Authorization Code Flow with PKCE. Its X client ID is built in, so you do not need to create an X developer app or paste API credentials into Raycast.
The first command that contacts X opens the X authorization page. After approval, Raycast stores the access and refresh tokens securely. Existing users will be asked to authorize once after upgrading because tokens issued to the former client are cleared automatically.
The extension requests only the permissions needed by its commands:
Use the Logout action in a post's action panel to disconnect your account. This clears the saved X tokens and the extension's read cache.
Lists load up to 20 posts per page. Additional pages are fetched only when you scroll for more results, and successful reads are cached for two minutes to avoid repeating billed X API requests. The details pane follows the extension preference by default and can be toggled at any time with Option-D from the action panel.
The composer supports:
Each post in a thread can have its own media. Polls cannot be combined with media or a quote post. X currently restricts quote_tweet_id creation to Enterprise API access, so self-serve accounts will receive X's plan error when attempting a quote post.
Media uses X's chunked v2 initialize, append, finalize, and processing-status flow. The extension validates X's upload limits before sending anything: 5 MB per image, 15 MB for GIFs, and 512 MB for video. Drafts retain local media paths, while the file contents are uploaded only when you publish.
My Posts & Analytics requests user-context metrics for posts from the last 30 days. Depending on what X returns for a post and its media, the details pane shows:
Every post action panel can open the users who liked or reposted it and the posts that quote it. It can also add or remove a bookmark, quote or reply to the post, and hide or unhide a reply. X only permits reply moderation in conversations started by the authenticated user.
The Bookmarks command lists all saved posts. Bookmark Folders lists existing X bookmark folders and the posts inside each folder; the current X API exposes folder lookup but not folder creation or moving bookmarks between folders. X returns only post IDs for a folder, so opening a folder page uses one additional batch lookup for its post details. Unavailable posts are skipped without discarding the folder's continuation token.
Send Direct Message accepts usernames or numeric user IDs. One recipient sends a 1:1 DM; multiple recipients create a group conversation. A message can contain text, one image, one GIF, one video, or text plus one attachment.
Raycast shows the resolved recipients and exact message in a confirmation dialog before sending. The AI tool requires explicit numeric recipient IDs and must not be used for unsolicited, bulk, or recurring outreach. Only message recipients who have clearly indicated that they want to hear from you. X may still reject delivery based on a recipient's privacy settings.
The extension provides tools to:
Most read tools return at most one page per call and expose continuation tokens instead of fetching more automatically. Personal-history search, personal connection search, and follow verification are exceptions: they paginate internally within explicit limits. Personal-history search fetches up to 100 authored posts per page and searches through X's available user timeline, excluding reposts. X exposes at most the 3,200 most recent posts through that timeline, so this is not guaranteed to cover accounts with more history. Personal connection search inspects up to 10,000 following profiles and searches up to 10,000 followers only when following has no match. Every AI write uses Raycast's native confirmation UI, with destructive styling for post deletion. Engagement and moderation tools operate on one explicitly identified post and are not intended for bulk, scheduled, or autonomous interaction.
For example, ask @twitter Does @participant follow @raycast? or @twitter List @participant's followers. The get-user-connections tool returns up to 20 profiles per page from the requested account. The check-follow-relationship tool resolves both exact handles and scans the source account's following, matching by user ID. It stops on a match, a complete list, or the page budget (default 10 pages of up to 1,000 users; set maxPages from 1 to 10 to lower the budget). Profile lookups and uncached pages consume API reads; successful reads use the same two-minute cache. Only a complete, error-free scan without a match produces not_following. Access errors, partial responses, repeated pagination tokens, and exhausted page budgets produce unverified, with a reason and scan counts. In CSV output, these remain unverified, never no. This is a read-only check and cannot bypass protected-account restrictions. These two new capabilities are available through Raycast AI; the Search User command still searches your own connections.
All in-extension network operations use the official X API v2 through OAuth user context. Because X API v2 does not offer a general user-search endpoint, Search User combines exact username lookup with local matching across the authenticated user's following and followers. Endpoint availability and billing depend on X's current developer platform and the access attached to the extension's X application. If X rejects a request, the extension displays the error details returned by the API; rate-limited requests wait for the documented reset only when the delay is short enough to be useful.
OAuth tokens are handled by Raycast's OAuth client. The first launch after this update asks you to authorize the new media, bookmark-write, reply-moderation, and DM scopes. Post and thread drafts store text and local media paths in Raycast LocalStorage on the device; media bytes are sent to X only when you publish.