@framers/agentos-ext-channel-twitter

中文文档
0.1.6发布于 2026/11/11Apache-2.0TypeScriptCommonJS构建来源已验证近 30 天下载 2万

Twitter/X channel adapter for AgentOS — post tweets, reply, quote, thread, search trends, DMs, and engagement analytics via Twitter API v2.

原始使用文档
文档目录19 节
  1. Installation
  2. Usage
  3. Configuration
  4. Tools
  5. twitterPost
  6. twitterReply
  7. twitterQuote
  8. twitterLike
  9. twitterRetweet
  10. twitterSearch
  11. twitterTrending
  12. twitterTimeline
  13. twitterDm
  14. twitterAnalytics
  15. twitterSchedule
  16. twitterThread
  17. Channel adapter
  18. Notes
  19. License

Twitter channel

This pack gives an agent tweet posting, replies, quotes, threads, engagement, search, trends, direct messages, analytics and scheduling through twitter-api-v2.

Installation

npm install @framers/agentos-ext-channel-twitter

Peer dependency: @framers/agentos >=0.10.40.

Usage

import { AgentOS } from '@framers/agentos';

const agentos = await AgentOS.create({
  extensionManifest: {
    packs: [
      {
        package: '@framers/agentos-ext-channel-twitter',
        options: {
          bearerToken: process.env.TWITTER_BEARER_TOKEN,
          apiKey: process.env.TWITTER_API_KEY,
          apiSecret: process.env.TWITTER_API_SECRET,
          accessToken: process.env.TWITTER_ACCESS_TOKEN,
          accessSecret: process.env.TWITTER_ACCESS_SECRET,
        },
      },
    ],
  },
});

Configuration

OptionSecret idEnvironment variableRequiredDefault
bearerTokentwitter.bearerTokenTWITTER_BEARER_TOKEN, X_BEARER_TOKENYes, by manifestNone
apiKeytwitter.apiKeyTWITTER_API_KEY, X_API_KEY, X_CONSUMER_KEY, TWITTER_CONSUMER_KEYNoNone
apiSecrettwitter.apiSecretTWITTER_API_SECRET, X_API_SECRET, X_CONSUMER_SECRET, X_CONSUMER_SECRET_KEY, TWITTER_CONSUMER_SECRETNoNone
accessTokentwitter.accessTokenTWITTER_ACCESS_TOKEN, X_ACCESS_TOKENNoNone
accessSecrettwitter.accessSecretTWITTER_ACCESS_SECRET, X_ACCESS_SECRET, X_ACCESS_TOKEN_SECRET, TWITTER_ACCESS_TOKEN_SECRETNoNone
secretsAll credential secret ids aboveNoneNocontext.secrets, then {}

Credentials resolve from options, then secrets, then the listed environment variables in order. options.secrets takes precedence over context.secrets. Resolution uses nullish fallback, so an empty string blocks later values.

Tools

ToolWhat it does
twitterPostPost a tweet with optional media and a poll.
twitterReplyReply to an existing tweet.
twitterQuoteQuote an existing tweet with a comment.
twitterLikeLike or unlike a tweet.
twitterRetweetRetweet or undo a retweet.
twitterSearchSearch tweets with filters and sorting.
twitterTrendingGet trending topics for a location, defaulting to worldwide.
twitterTimelineGet the authenticated user's home timeline.
twitterDmSend or list direct messages.
twitterAnalyticsGet likes, retweets, replies and impressions for a tweet.
twitterScheduleSchedule a tweet for future posting.
twitterThreadPost tweet texts as sequential replies.

twitterPost

ParameterTypeRequiredDescription
textstringYesTweet text (max 280 characters)
mediaPathstringNoPath to media file to attach
pollOptionsstring[]NoPoll options (2 to 4 choices)
pollDurationMinutesnumberNoPoll duration in minutes (default 1440, a day)

twitterReply

ParameterTypeRequiredDescription
tweetIdstringYesID of the tweet to reply to
textstringYesReply text

twitterQuote

ParameterTypeRequiredDescription
tweetIdstringYesID of the tweet to quote
textstringYesYour quote comment

twitterLike

ParameterTypeRequiredDescription
tweetIdstringYesID of the tweet
unlikebooleanNoSet to true to unlike; default false

twitterRetweet

ParameterTypeRequiredDescription
tweetIdstringYesID of the tweet to retweet
undobooleanNoSet to true to unretweet; default false

twitterSearch

ParameterTypeRequiredDescription
querystringYesSearch query (supports Twitter search operators)
maxResultsnumberNoMax tweets to return (default 10, max 100)
sortOrderstring: recency, relevancyNoSort order

twitterTrending

ParameterTypeRequiredDescription
woeidnumberNoYahoo WOEID for location (1 = worldwide, 23424977 = US); default 1

twitterTimeline

ParameterTypeRequiredDescription
maxResultsnumberNoMax tweets to return (default 20, max 100)

twitterDm

ParameterTypeRequiredDescription
actionstring: send, listYesAction to perform
recipientIdstringNoUser ID to send DM to (required for send)
textstringNoMessage text (required for send)
maxResultsnumberNoMax DM events to return (for list); default 20

twitterAnalytics

ParameterTypeRequiredDescription
tweetIdstringYesID of the tweet to analyze

twitterSchedule

ParameterTypeRequiredDescription
textstringYesTweet text
scheduledAtstringYesISO 8601 timestamp for when to post
mediaPathstringNoOptional media file path

twitterThread

ParameterTypeRequiredDescription
tweetsstring[]; minimum 2 itemsYesArray of tweet texts (each max 280 characters). Posted as a sequential thread.

Channel adapter

The adapter registers platform twitter. Sending posts the first text block, uploads image and video blocks through the SDK, attaches poll options and converts poll duration from hours to minutes. It reads replyToMessageId for replies and ignores conversationId. Failed media uploads are skipped. Reactions call the like operation regardless of the supplied reaction.

Activation initializes API clients. Connection status follows the service's running state, with initialization errors exposed in connection information. The adapter stores handlers but emits no inbound events. Typing indicators do nothing.

Notes

A bearer token supplies the read client. Posting, engagement, media uploads, home timeline and direct messages require apiKey, apiSecret, accessToken and accessSecret together. The service also uses that write client for reads when no bearer token is set, although the manifest declares twitter.bearerToken required.

If neither bearerToken nor apiKey is set, activation attempts to load a stored Twitter access token through FileTokenStore from @framers/agentos/auth. Initialization throws if no read or write client can be created.

Write tools publish tweets, send messages or change likes and retweets. Threads post sequentially without rollback. recipientId is passed directly to the SDK's sendDmInConversation method. Timeline and direct-message listing requests are capped at 100 results; search forwards maxResults without a local cap and defaults to relevancy sorting.

Scheduling stores timers in memory without persistence or cancellation. A past timestamp posts immediately and ignores mediaPath. Future scheduled posts upload media at execution time and silently discard failures. Pack deactivation shuts down the service but does not clear scheduled timers.

License

Apache-2.0

版本与发布记录

@framers/agentos-ext-channel-twitter 共发布 7 个版本,首次发布于 2026/05/02;过去 12 个月发布了 7 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.6latest2026/11/114 天前
0.1.52026/11/0115 天前
0.1.42026/10/2125 天前
0.1.32026/10/121 个月前
0.1.22026/10/111 个月前
0.1.12026/10/081 个月前

关于 @framers/agentos-ext-channel-twitter 的常见问题

@framers/agentos-ext-channel-twitter 是什么?

Twitter/X channel adapter for AgentOS — post tweets, reply, quote, thread, search trends, DMs, and engagement analytics via Twitter API v2.

如何安装 @framers/agentos-ext-channel-twitter?

在项目目录运行 npm install @framers/agentos-ext-channel-twitter,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@framers/agentos(>=0.10.40)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@framers/agentos-ext-channel-twitter 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@framers/agentos-ext-channel-twitter 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@framers/agentos-ext-channel-twitter 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@framers/agentos-ext-channel-twitter 可以商用吗?

@framers/agentos-ext-channel-twitter 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@framers/agentos-ext-channel-twitter 的下载量有多少?

根据 npm 官方下载统计,@framers/agentos-ext-channel-twitter 在 2026/10/16 – 2026/11/14 这 30 天内被下载 20,234 次,日均约 674 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@framers/agentos-ext-channel-twitter 还在维护吗?

最新版本 0.1.6 发布于 2026/11/11(4 天前);至今共发布 7 个版本,其中过去 12 个月发布了 7 个;首次发布于 2026/05/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。