Twitter Client
The Twitter Client enables your agent to interact through Twitter, supporting both group chats and direct messages. Visit Elizaos Twitter/x client docs for more details.
Installation
Section titled βInstallationβ-
Install required packages:
Terminal window Terminal window Terminal window -
Configure environment variables:
Terminal window # Twitter API CredentialsTWITTER_USERNAME= # Your Twitter/X usernameTWITTER_PASSWORD= # Your Twitter/X passwordTWITTER_EMAIL= # Your Twitter/X emailTWITTER_2FA_SECRET= # Optional: 2FA secret for login# Twitter Client ConfigurationTWITTER_DRY_RUN=false # Set to true for testing without postingMAX_TWEET_LENGTH=280 # Default tweet length limitTWITTER_SEARCH_ENABLE=false # Enable search functionalityTWITTER_RETRY_LIMIT=5 # Login retry attemptsTWITTER_POLL_INTERVAL=120 # Poll interval in secondsTWITTER_TARGET_USERS= # Comma-separated list of target users# Post Generation SettingsTWITTER_ENABLE_POST_GENERATION=truePOST_INTERVAL_MIN=90 # Minimum interval between posts (minutes)POST_INTERVAL_MAX=180 # Maximum interval between posts (minutes)POST_IMMEDIATELY=false # Skip approval workflow# Action ProcessingENABLE_ACTION_PROCESSING=falseACTION_INTERVAL=5 # Action check interval (minutes)MAX_ACTIONS_PROCESSING=1 # Maximum concurrent actions# Spaces Configuration (Optional)TWITTER_SPACES_ENABLE=falseELEVENLABS_XI_API_KEY= # Required for TTS in Spaces# Approval Workflow (Optional)TWITTER_APPROVAL_DISCORD_BOT_TOKEN=TWITTER_APPROVAL_DISCORD_CHANNEL_ID=TWITTER_APPROVAL_CHECK_INTERVAL=300000 # 5 minutes in milliseconds
Basic Setup
Section titled βBasic Setupβimport { AgentBuilder, ModelProviderName } from "@iqai/agent";import TwitterClient from "@elizaos/client-twitter";import SqliteAdapter from "@elizaos/adapter-sqlite";
async function main() { const agent = new AgentBuilder() .withDatabase(SqliteAdapter) .withClient(TwitterClient) .withModelProvider( ModelProviderName.OPENAI, process.env.OPENAI_API_KEY ) .withCharacter({ name: "TwitterBot", bio: "A helpful Twitter assistant", username: "brain_bot" }) .build();
await agent.start();}
main().catch(console.error);