A unified Python interface to interact with popular coding agents.
Project description
Blocks Control SDK
A unified Python interface to interact with popular coding agents.
Think of it like litellm, but for coding agents
Supported Agents
- Claude Code - Anthropic's Claude
- Gemini CLI - Google's Gemini
- Codex CLI - OpenAI's Codex
- Cursor CLI - Cursor's AI agent
- OpenCode - OpenCode CLI agent
- Kimi CLI - Kimi's AI agent
Installation
pip install blocks-control-sdk
You must also have the dependent agent packages installed to use a specific agent.
npm i -g @anthropic-ai/claude-code # For Claude Code
npm i -g @google/gemini-cli # For Gemini CLI
npm i -g @openai/codex-cli # For Codex CLI
npm i -g @anthropic-ai/cursor-cli # For Cursor CLI (if applicable)
Usage
Async Streaming
import asyncio
from blocks_control_sdk import ClaudeCode
async def main():
agent = ClaudeCode()
async for message in agent.stream("Write a python script to print 'Hello, World!'"):
if isinstance(message, tuple):
tool_name, args = message
print(f"Tool call: {tool_name} with args {args}")
else:
print(message.content)
if __name__ == "__main__":
asyncio.run(main())
Sync with Callbacks
from blocks_control_sdk import Codex
agent = Codex()
def on_message(notification):
print(notification.message.content)
agent.register_notification(agent.notifications.NOTIFY_MESSAGE_V2, on_message)
agent.query("Write a python script to print 'Hello, World!'")
All Agents
from blocks_control_sdk import ClaudeCode, Codex, GeminiCLI, CursorCLI, OpenCode, KimiCLI
# Claude
claude = ClaudeCode()
# Gemini
gemini = GeminiCLI()
# Codex
codex = Codex()
# Cursor
cursor = CursorCLI()
# OpenCode
opencode = OpenCode()
# Kimi
kimi = KimiCLI()
Environment Variables
export ANTHROPIC_API_KEY="your-key" # For Claude
export GEMINI_API_KEY="your-key" # For Gemini
export OPENAI_API_KEY="your-key" # For Codex
export CURSOR_API_KEY="your-key" # For Cursor
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
blocks_control_sdk-0.2.0rc5.tar.gz
(132.4 kB
view details)
File details
Details for the file blocks_control_sdk-0.2.0rc5.tar.gz.
File metadata
- Download URL: blocks_control_sdk-0.2.0rc5.tar.gz
- Upload date:
- Size: 132.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e155689302567130b32bd3b687e873e80ba5a0c871d7616ba8824bb73cdab804
|
|
| MD5 |
3a7b578d3a864df6cfe044207b317a71
|
|
| BLAKE2b-256 |
118f4df0d413482bf7bba52f796bea3f256a61acd2e87055bafa03c54b7cc5e1
|