Skip to main content

Twitter Langchain Toolkit

Project description

Twitter (X) Langchain Toolkit

Twitter integration with Langchain to enable agentic workflows using the core primitives defined in cdp-agentkit-core.

This toolkit contains tools that enable an LLM agent to interact with Twitter. The toolkit provides a wrapper around the Twitter (X) API, allowing agents to perform social operations like posting text.

Setup

Prerequisites

Installation

pip install twitter-langchain

Environment Setup

Set the following environment variables:

export OPENAI_API_KEY=<your-openai-api-key>
export TWITTER_API_KEY=<your-api-key>
export TWITTER_API_SECRET=<your-api-secret>
export TWITTER_ACCESS_TOKEN=<your-access-token>
export TWITTER_ACCESS_TOKEN_SECRET=<your-access-token-secret>
export TWITTER_BEARER_TOKEN=<your-bearer-token>

Usage

Basic Setup

from twitter_langchain import (
    TwitterApiWrapper,
    TwitterToolkit
)

# Initialize TwitterApiwrapper
twitter_api_wrapper = TwitterApiWrapper()

# Create TwitterToolkit from the api wrapper
twitter_toolkit = TwitterToolkit.from_twitter_api_wrapper(twitter_api_wrapper)

View available tools:

tools = twitter_toolkit.get_tools()
for tool in tools:
    print(tool.name)

The toolkit provides the following tools:

  1. account_details - Get the authenticated account details
  2. account_mentions - Get mentions for the account
  3. post_tweet - Post a tweet to the account
  4. post_tweet_reply - Post a reply to a tweet on Twitter

Using with an Agent

import uuid

from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage
from langgraph.prebuilt import create_react_agent

llm = ChatOpenAI(model="gpt-4o-mini")

# Create agent
agent_executor = create_react_agent(llm, tools)

# Example - post tweet
events = agent_executor.stream(
    {
        "messages": [
            HumanMessage(content=f"Please post 'hello, world! {uuid.uuid4().hex}' to twitter"),
        ],
    },
    stream_mode="values",
)

for event in events:
    event["messages"][-1].pretty_print()

Expected output:

================================ Human Message =================================
Please post 'hello, world! c4b8e3744c2e4345be9e0622b4c0a8aa' to twitter
================================== Ai Message ==================================
Tool Calls:
    post_tweet (call_xVx4BMCSlCmCcbEQG1yyebbq)
    Call ID: call_xVx4BMCSlCmCcbEQG1yyebbq
    Args:
        tweet: hello, world! c4b8e3744c2e4345be9e0622b4c0a8aa
================================= Tool Message =================================
Name: post_tweet
Successfully posted!
================================== Ai Message ==================================
The message "hello, world! c4b8e3744c2e4345be9e0622b4c0a8aa" has been successfully posted to Twitter!

Contributing

See CONTRIBUTING.md for detailed setup instructions and contribution guidelines.

Documentation

For detailed documentation, please visit:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

twitter_langchain-0.0.6.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

twitter_langchain-0.0.6-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file twitter_langchain-0.0.6.tar.gz.

File metadata

  • Download URL: twitter_langchain-0.0.6.tar.gz
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for twitter_langchain-0.0.6.tar.gz
Algorithm Hash digest
SHA256 f5994ad5a9f8a5f562c93956dc27cb7bc89f805e8b694f5011096d581c9d6bf1
MD5 921269e305b7e0494f3a0875d4bd99bf
BLAKE2b-256 85cb0198ab4192a6a69f04d9a2a1cc9a32514804a131340e1f6044b59039f439

See more details on using hashes here.

File details

Details for the file twitter_langchain-0.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for twitter_langchain-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 75553d3382dbfa3b40d3ab175b72003485173c87a81ac2e52406488a0258b791
MD5 c6e6e48e957bf3ddf99580250725c064
BLAKE2b-256 158f5b09001ee7973ebb4ef3a2a84d50d25596ed2fe149ff52c7c09ca76dcf00

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page