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.4.1.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.4.1-py3-none-any.whl
(14.3 kB
view details)
File details
Details for the file edgecrab-0.4.1.tar.gz.
File metadata
- Download URL: edgecrab-0.4.1.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be4f1748350724fbde4cdefd5f9ddf0a087ace9d00d195022f1597d1c3eef731
|
|
| MD5 |
482434f8827bb10a51bb7e1cfff70f52
|
|
| BLAKE2b-256 |
6ee1a5a746845783e9a442885cd07518d2e3042d59e70ece25aa47fc48a5f21b
|
File details
Details for the file edgecrab-0.4.1-py3-none-any.whl.
File metadata
- Download URL: edgecrab-0.4.1-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb8458d2ec7d27faeb6750393e2ca215e276caeeaec40aa08f715115bee59530
|
|
| MD5 |
2457d12cbd602ac9dc524aa51077ea5e
|
|
| BLAKE2b-256 |
4eec3f28faf5c3f6e278e7c6379da56dce944fea2b6b5b00ea566e3f8fbc7f65
|