A Python library for interacting with Grok AI through X's user account API.
Project description
GrokAiChat
A Python library for interacting with Grok AI through X's user account API. This project provides a clean interface for creating conversations, sending messages, and handling responses. Note: This uses the account user API, not the paid enterprise API. Grok AI is free for all X (Twitter) members.
Features
- 🤖 Full Grok API integration
- 📁 File upload support
- 💬 Conversation management
- 🛠️ Easy-to-use interface
Prerequisites
- Python 3.8 or higher
- A valid X (formerly Twitter) account
- Grok AI access (free for all X members)
- Your account's authentication tokens
Installation
-
Clone the repository:
git clone https://github.com/vibheksoni/GrokAiChat.git cd GrokAiChat
-
Install dependencies:
pip install -r requirements.txt
Configuration
-
Create a
.envfile in the project root:# Raw cookies string # Example: "cookie1=value1; cookie2=value2" COOKIES="" # CSRF token # Create a chat and send a message look at the headers of the request and check for the CSRF token X_CSRF_TOKEN="" # Bearer token # Create a chat and send a message look at the headers of the request and check for the Bearer token BEARER_TOKEN=""
-
To obtain your tokens:
- Log into X.com
- Open Developer Tools (F12)
- Create a Grok chat
- Find the tokens in the Network tab request headers
Account Requirements & Credentials
⚠️ IMPORTANT: You need:
- A standard X account (Grok AI is free for all X members)
- The following credentials from your account:
How to Get Your Credentials
-
Cookies:
- Log into X.com
- Open Developer Tools (F12) → Network tab
- Interact with Grok
- Find any request to x.com
- Copy the entire
cookieheader value
-
X-CSRF-Token:
- In the same Network tab
- Look for
x-csrf-tokenin request headers - It's usually a 32-character string
-
Bearer Token:
- Find any request header containing
authorization - Copy the token after "Bearer "
- Usually starts with "AAAA..."
- Find any request header containing
Store these in your .env file:
COOKIES="your_copied_cookie_string"
X_CSRF_TOKEN="your_csrf_token"
BEARER_TOKEN="your_bearer_token"
⚠️ Important Legal Warnings
- Terms of Service: This project may violate X's Terms of Service. Use at your own risk.
- Account Security:
- Never share your credentials
- Avoid excessive requests
- Use reasonable rate limits
- Compliance:
- This tool is for educational purposes only
- Commercial use may violate X's terms
- You are responsible for how you use this code
Rate Limiting
To avoid account flags:
- Limit requests to reasonable human speeds
- Add delays between messages
- Don't automate mass messaging
Quick Start
from grok import Grok, GrokMessages
from dotenv import load_dotenv
import os
load_dotenv()
grok = Grok(
os.getenv("BEARER_TOKEN"),
os.getenv("X_CSRF_TOKEN"),
os.getenv("COOKIES")
)
# Create a conversation
grok.create_conversation()
# Send a message
request = grok.create_message("grok-2")
grok.add_user_message(request, "Hello, Grok!")
response = grok.send(request)
# Parse and print response
messages = GrokMessages(response)
print(messages.get_full_message())
Advanced Usage
Check the examples/ directory for more advanced use cases:
- Basic chat interaction (
chat.py) - File attachments (
chatwithfiles.py) - Custom model parameters
- Response parsing
API Documentation
Main Classes
Grok: Main interface for API interactionsGrokMessages: Response parser and message handler
Full documentation is available in the code comments.
Contributing
- Fork the repository
- Create a feature branch
- Submit a pull request
Legal Notice
⚠️ Disclaimer: This project is for educational purposes only. Users are responsible for ensuring their usage complies with X's terms of service.
License
MIT License - See license file for details.
Author
Vibhek Soni
- Age: 19
- GitHub: @vibheksoni
- Project Link: GrokAiChat
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file grokaichat-0.1.0.tar.gz.
File metadata
- Download URL: grokaichat-0.1.0.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe3db06eb5651caf2dd37750d2623bd6bd332aebb31648464b3e6259bcf0365a
|
|
| MD5 |
9e4f34963d37c8f94411fdf76dc423aa
|
|
| BLAKE2b-256 |
3754e0c964c1b1cb8f1eb81a88cb2c269277dbcd69d2d5c4132a91745a41f366
|
File details
Details for the file GrokAiChat-0.1.0-py3-none-any.whl.
File metadata
- Download URL: GrokAiChat-0.1.0-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3cae522bd95fcea330bf6c4b66cdd105b90143c7b346f23af789c4d05163761c
|
|
| MD5 |
9663f3c41ead4cfdac338b71ca2ac8d3
|
|
| BLAKE2b-256 |
7266efa4bb4668b622347a104c82ff9723d1d79806ddbea5e62e6c1404d23af0
|