Python SDK for EdgeCrab — a Rust-native autonomous coding agent
Project description
edgecrab-sdk
Python SDK for EdgeCrab — a Rust-native autonomous coding agent.
Install
pip install edgecrab-sdk
Quick Start
from edgecrab import EdgeCrabClient
# Connect to a running EdgeCrab API server
client = EdgeCrabClient(
base_url="http://127.0.0.1:8642",
api_key="your-api-key", # optional
)
# Simple chat
reply = client.chat("Explain Rust ownership in 3 sentences")
print(reply)
# With system prompt
reply = client.chat(
"Refactor this function",
system="You are a senior Rust developer",
model="anthropic/claude-sonnet-4-20250514",
)
Async
import asyncio
from edgecrab import AsyncEdgeCrabClient
async def main():
async with AsyncEdgeCrabClient() as client:
reply = await client.chat("Hello!")
print(reply)
asyncio.run(main())
Agent API (recommended)
from edgecrab import Agent
agent = Agent(
model="anthropic/claude-sonnet-4-20250514",
system_prompt="You are a helpful coding assistant",
)
# Chat with automatic conversation history
reply = agent.chat("Explain Rust ownership")
print(reply)
# Continue the conversation
follow_up = agent.chat("Give me an example")
print(follow_up)
# Full run with result metadata
result = agent.run("Refactor this function")
print(result.response)
print(f"Turns: {result.turns_used}, Tokens: {result.usage.total_tokens}")
Streaming
from edgecrab import EdgeCrabClient, ChatMessage
with EdgeCrabClient() as client:
messages = [ChatMessage(role="user", content="Write a haiku about Rust")]
for chunk in client.stream_completion(messages=messages):
for choice in chunk.choices:
if choice.delta.content:
print(choice.delta.content, end="", flush=True)
print()
CLI
edgecrab chat "What is the meaning of life?"
edgecrab chat --model gpt-4 --system "Be concise" "Explain monads"
edgecrab chat --stream "Tell me a story"
edgecrab models
edgecrab health
Environment Variables
| Variable | Description |
|---|---|
EDGECRAB_BASE_URL |
API server URL (default: http://127.0.0.1:8642) |
EDGECRAB_API_KEY |
Bearer token for authentication |
API Reference
EdgeCrabClient
| Method | Description |
|---|---|
chat(message, *, model, system, temperature, max_tokens) |
Simple chat — returns string |
create_completion(messages, *, model, temperature, max_tokens, tools) |
Full completion — returns ChatCompletionResponse |
stream_completion(messages, *, model, temperature, max_tokens, tools) |
Streaming — yields StreamChunk |
list_models() |
List available models |
health() |
Health check |
AsyncEdgeCrabClient
Same API as EdgeCrabClient, but all methods are async.
Agent / AsyncAgent
| Method | Description |
|---|---|
chat(message) |
Send message, return reply. Maintains history. |
run(message, *, max_turns) |
Full conversation run — returns AgentResult |
add_message(role, content) |
Inject a message into history |
reset() |
Clear history, start new session |
get_messages() |
Get conversation history |
get_turn_count() |
Number of completed turns |
get_usage() |
Accumulated token usage |
list_models() |
List available models |
health() |
Check server health |
Links
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
edgecrab-0.6.0.tar.gz
(18.6 kB
view details)
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
edgecrab-0.6.0-py3-none-any.whl
(14.3 kB
view details)
File details
Details for the file edgecrab-0.6.0.tar.gz.
File metadata
- Download URL: edgecrab-0.6.0.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80076ef8947854252f2f6252c707e38bc8c359984e25d5273c62a77fa2037431
|
|
| MD5 |
08ad184a1979cecbc39e3a073d3e6318
|
|
| BLAKE2b-256 |
85bb084eac56f52cf471bc6f06fdc57800bec1acff254790a9f9231eb35d1d47
|
File details
Details for the file edgecrab-0.6.0-py3-none-any.whl.
File metadata
- Download URL: edgecrab-0.6.0-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a90db08a98c6d625f9519a4f8089c27d234fc84b8b62a9ebdb7cab5b8e66e90f
|
|
| MD5 |
012f03701a493e0e290284b074cf3119
|
|
| BLAKE2b-256 |
9723c752c942a9b5b58e3e1b66572bcb8f248610d3feef24f660cc06f9206dc4
|