Lightweight CLI client for registering bots with a DeskClaw exam server and triggering evaluation runs.
Project description
deskclaw-client
Lightweight CLI client for registering bots with a DeskClaw exam server and triggering evaluation runs.
Installation
pip install deskclaw-client
Quick Start
# Register your bot with the exam server
deskclaw-client register \
--server http://EXAM_SERVER_IP:8420 \
--name my-bot \
--url http://localhost:8080/v1/chat/completions
# Trigger a test run (waits for completion by default)
deskclaw-client run --server http://EXAM_SERVER_IP:8420 --name my-bot
# Trigger only selected tests
deskclaw-client run --server http://EXAM_SERVER_IP:8420 --name my-bot --suite swe-bench --test-id SWE-LITE
# Trigger only selected SWE instances
deskclaw-client run --server http://EXAM_SERVER_IP:8420 --name my-bot --suite swe-bench --test-id SWE-LITE --swe-instance-id astropy__astropy-14995
# Check run status
deskclaw-client status --server http://EXAM_SERVER_IP:8420 --name my-bot
# List all registered bots
deskclaw-client list --server http://EXAM_SERVER_IP:8420
Environment Variable
Set DESKCLAW_SERVER to avoid repeating the server URL:
export DESKCLAW_SERVER=http://EXAM_SERVER_IP:8420
deskclaw-client register --name my-bot --url http://localhost:8080/v1/chat/completions
deskclaw-client run --name my-bot
Commands
| Command | Description |
|---|---|
register |
Register a bot with the exam server |
run |
Trigger a test run for your bot (supports suite/test/instance filters) |
status |
Check the status of test runs |
list |
List all registered bots |
serve |
Start a local HTTP proxy for non-HTTP agents |
bridges |
List available bridge types |
Run Options
--server— Exam server URL (orDESKCLAW_SERVERenv var)--name— Registered bot name--suite— Run only this benchmark suite--test-id— Run only specified test IDs (repeatable)--swe-instance-id— Filter SWE-bench byinstance_id(repeatable, SWE only)--wait/--no-wait— Wait for completion or return immediately--timeout— Max wait seconds when--waitis enabled
Register Options
--server— Exam server URL (orDESKCLAW_SERVERenv var)--name— Unique bot name--url— Your bot's HTTP API endpoint--protocol— API protocol:openai(default),anthropic,custom--capabilities— Comma-separated capabilities (e.g.text_generation,tool_use,multi_turn)--auth— Bearer auth token (if your bot requires authentication)
Bridge Mode (Non-HTTP Agents)
If your agent doesn't expose an HTTP API (e.g. it uses WebSocket, Socket, or stdio), use serve to start a local HTTP proxy that bridges between the exam server and your agent's native protocol.
deskclaw-client serve \
--server http://EXAM_SERVER_IP:8420 \
--name my-openclaw \
--bridge openclaw \
--target ws://localhost:18789 \
--port 9090 \
--token <your-agent-token>
This single command will:
- Connect to your agent via its native protocol (WebSocket, etc.)
- Start a local OpenAI-compatible HTTP proxy on the specified port
- Auto-register the proxy URL with the exam server
- Wait for test requests from the exam server
Serve Options
--server— Exam server URL (orDESKCLAW_SERVERenv var)--name— Bot name to register--bridge— Bridge type (e.g.openclaw)--target— Agent native address (e.g.ws://localhost:18789)--port— Local proxy port (default: 9090)--host— Local proxy bind address (default: 0.0.0.0)--token— Agent auth token (bridge-specific)--capabilities— Comma-separated capabilities-v/--verbose— Enable debug logging
Available Bridges
| Bridge | Transport | Description |
|---|---|---|
openclaw |
WebSocket | OpenClaw agents via native WebSocket protocol |
Run deskclaw-client bridges to list all available bridges.
Supported Protocols
- OpenAI —
/v1/chat/completionscompatible endpoints - Anthropic —
/v1/messagescompatible endpoints - Custom — Any HTTP endpoint (configure via exam server)
- Bridge — Non-HTTP agents via
deskclaw-client serve
License
MIT
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
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 deskclaw_client-0.3.0.tar.gz.
File metadata
- Download URL: deskclaw_client-0.3.0.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a17bdb144c20487a6f48c872b642ccd4d7dfb6773297314e64594db0531e3ab
|
|
| MD5 |
48bc6619e9442768222df033110c1bd9
|
|
| BLAKE2b-256 |
ae9bce7dc2270d542792a2e028b45c9c3ba4a2c5687e9a7023d4e631f00cd1d5
|
File details
Details for the file deskclaw_client-0.3.0-py3-none-any.whl.
File metadata
- Download URL: deskclaw_client-0.3.0-py3-none-any.whl
- Upload date:
- Size: 13.8 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 |
9fdf01e1fdc7291d1b4330e51e91b3c6960b34200cca69f5787c3704a9c956a9
|
|
| MD5 |
dc6cb0eddf11632baa8ec12f605cae23
|
|
| BLAKE2b-256 |
9fb4c1e4069d416ff62bc63de8e46a39b107241e5ca73eb9a2c8bc8bf3d923f1
|