Updated for 2026
agent-twitter-client Alternatives
for AI Agents in 2026
agent-twitter-client is deprecated on npm and no longer maintained. If your agent’s tweets stopped going out, here is exactly what happened, and the three realistic ways to keep posting to X, with honest costs and risks for each.
7-day free trial · No credit card required · Cancel anytime
What Happened to agent-twitter-client
It was the ElizaOS ecosystem’s no-API-key Twitter client: log in with a username and password, call sendTweet, done. Four things ended that.
Deprecated on npm
The last release, v0.0.18, was published on December 29, 2024. The package now carries the npm deprecation notice "Package no longer supported." No fixes are coming, no matter how many GitHub issues pile up.
ElizaOS itself moved to the official X API
The current @elizaos/plugin-twitter authenticates with X API v2 keys (TWITTER_API_KEY, secrets, and access tokens), not username and password login. The no-API-key approach is no longer the framework's own path.
X keeps breaking credential login
The package worked by logging in with your real credentials and calling X's internal endpoints. Every time X changes those endpoints or tightens the login flow, sendTweet dies. That is why bots stopped overnight with login errors and challenge screens.
Your account carries the risk
Automated credential login and scraping breach X's terms of service. Locked and restricted accounts were a common report even while the package was maintained. On an account you care about, that risk is the real cost of "free."
The 3 Real Options in 2026
Ranked by reliability and account safety for an agent that posts to X.
OpenTweet
A flat-rate posting API and hosted MCP server for X. Your agent authenticates with an ot_ API key, OpenTweet holds the official X OAuth tokens and refreshes them for you, and scheduling, threads, and analytics come built in. No X developer account, no password in your env vars.
Key Features
- REST API: POST https://opentweet.io/api/v1/posts with a Bearer ot_ key
- Hosted MCP server at mcp.opentweet.io/mcp with ~36 tools (create_tweet, create_thread, batch_schedule, analytics)
- Scheduling, threads, evergreen queue, and X Articles built in, no cron to run
- Official X OAuth managed for you, no X developer account needed
Pricing
Pro $11.99/mo, Advanced $29/mo, Agency $49/mo, 7-day free trial
Best For
Agents and automations that post to an account you actually care about and want predictable cost with zero token babysitting.
Pros
- Flat monthly price no matter how much your agent posts
- Account-safe: official OAuth, never your X password
- Works with ElizaOS, LangGraph, Claude, or anything that can send an HTTP request
- Scheduling and analytics included instead of DIY
Cons
- X/Twitter only, no other platforms
- Posting and own-account analytics only: it does not scrape arbitrary timelines or search all of X
- Paid after the 7-day trial
Official X API (pay-per-use)
The first-party option. Since February 6, 2026 new X developers are on pay-per-use pricing by default, and the current @elizaos/plugin-twitter targets this API with OAuth 1.0a keys. This is the framework-sanctioned migration path, and the only real option if your agent needs to read public X data at scale.
Key Features
- Full X API v2 surface: posting, timelines, search, mentions
- Works with @elizaos/plugin-twitter out of the box
- First-party rate limits, docs, and support
- XMCP, X's official hosted MCP server, sits on top of it and can post too
Pricing
Roughly $0.015 per post, $0.20 per post containing a link, about $0.005 per read
Best For
Agents that need to read timelines, search, or mentions at scale, and teams that accept metered billing plus developer-account overhead.
Pros
- Fully compliant with X terms
- The only real way to read public X data at scale
- Supported by X itself, will not vanish overnight
Cons
- Requires an X developer account and app setup
- Metered cost is hard to predict, and posts containing a link cost $0.20 each
- You manage OAuth 1.0a signing and token storage yourself
- No scheduling: you build your own queue and cron
Community forks (@0xindie/agent-twitter-client and others)
Forks like @0xindie/agent-twitter-client keep the original Scraper interface alive: username and password login, no API key. They work until X changes something, and they carry the exact account risk that got the original package abandoned.
Key Features
- Near drop-in replacement for the original Scraper API
- No API key and no monthly fee
- Keeps read and scrape abilities (timelines, search, profiles)
- Some forks add proxy support and cookie persistence
Pricing
Free (open-source npm packages)
Best For
Hobby projects and burner accounts where getting locked out is an acceptable outcome.
Pros
- Free
- Smallest possible code change coming from agent-twitter-client
- Can still read public data without an API key
Cons
- Credential-login scraping breaches X's terms: accounts get locked or banned
- Breaks without warning whenever X changes internal endpoints or the login flow
- Maintenance varies fork to fork, and several are already stale
- You hand your X password to third-party code
The Migration Is About Ten Lines
If your agent only calls sendTweet, swapping to OpenTweet is a single fetch. Your X password comes out of the env vars, and an ot_ key goes in.
// agent-twitter-client (deprecated)
import { Scraper } from "agent-twitter-client";
const scraper = new Scraper();
await scraper.login(
process.env.TWITTER_USERNAME,
process.env.TWITTER_PASSWORD,
process.env.TWITTER_EMAIL
);
await scraper.sendTweet("Hello from my agent!");
// Real credentials in env vars.
// Breaks when X changes internal endpoints.// OpenTweet (official OAuth, flat rate)
await fetch("https://opentweet.io/api/v1/posts", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.OPENTWEET_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
text: "Hello from my agent!",
publish_now: true,
}),
});
// No password anywhere. No developer account.Swap publish_now for a scheduled_date in ISO 8601 format and the same call schedules instead of posting, no cron on your side. MCP-based agents skip the HTTP entirely: point them at https://mcp.opentweet.io/mcp and they get create_tweet, create_thread, schedule_tweet, and about 33 more tools. Full reference in the API docs and MCP docs.
Side-by-Side Comparison
How the three paths stack up for a posting agent.
| Feature | OpenTweet | Official X API | Community forks |
|---|---|---|---|
| Cost | $11.99/mo flat | $0.015/post, $0.20/link post | Free |
| Auth | ot_ API key | Dev account + OAuth 1.0a keys | Your username + password |
| Account safety | Official OAuth | Official OAuth | ToS breach, lock risk |
| X developer account | Not needed | Required | Not needed |
| Scheduling | Built in | Build your own | Build your own |
| Threads | One API call | Reply chains by hand | Reply chains by hand |
| Reads public X data | No | Yes ($0.005/read) | Yes, until it breaks |
| Reliability | Stable REST API | Stable, first party | Breaks when X changes |
| MCP server | Hosted, ~36 tools | XMCP (bills your API credits) | Community wrappers |
X API prices as of July 2026, see the pay-per-use breakdown and the cost calculator. OpenTweet pricing on the pricing page.
Why OpenTweet Is Our Top Pick for Agents
Built for agents
A REST API plus a hosted MCP server with ~36 tools. ElizaOS, LangGraph, Claude, a bash script with curl: if it can send an HTTP request or speak MCP, it can post.
Account-safe by design
Your X account connects once through the official OAuth flow. No password in env vars, no scraping internal endpoints, nothing that trips X’s automation defenses.
Flat rate, not metered
Pro is $11.99/mo however much your agent posts. On X’s pay-per-use, a daily posting agent that shares links can burn past that in a month.
No developer account
No X app review, no OAuth 1.0a signing, no token refresh code. You generate an ot_ key on the developer page and paste it into your agent.
Scheduling built in
schedule_tweet, batch_schedule, and an evergreen queue that recycles winners. agent-twitter-client never scheduled anything; you ran the cron. Now nobody does.
Threads, articles, analytics
Post a full thread in one call, publish long-form X Articles, and pull top posts and best-time analytics back into your agent’s context.
Frequently Asked Questions
Common questions about replacing agent-twitter-client
Give Your Agent a Posting API That Stays Up
One OAuth connection, one ot_ key, and your agent posts, schedules, and threads on X without touching your password or a developer account.