Skip to main content

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 (or DESKCLAW_SERVER env 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 by instance_id (repeatable, SWE only)
  • --wait/--no-wait — Wait for completion or return immediately
  • --timeout — Max wait seconds when --wait is enabled

Register Options

  • --server — Exam server URL (or DESKCLAW_SERVER env 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:

  1. Connect to your agent via its native protocol (WebSocket, etc.)
  2. Start a local OpenAI-compatible HTTP proxy on the specified port
  3. Auto-register the proxy URL with the exam server
  4. Wait for test requests from the exam server

Serve Options

  • --server — Exam server URL (or DESKCLAW_SERVER env 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/completions compatible endpoints
  • Anthropic/v1/messages compatible 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

deskclaw_client-0.3.0.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

deskclaw_client-0.3.0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

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

Hashes for deskclaw_client-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6a17bdb144c20487a6f48c872b642ccd4d7dfb6773297314e64594db0531e3ab
MD5 48bc6619e9442768222df033110c1bd9
BLAKE2b-256 ae9bce7dc2270d542792a2e028b45c9c3ba4a2c5687e9a7023d4e631f00cd1d5

See more details on using hashes here.

File details

Details for the file deskclaw_client-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for deskclaw_client-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9fdf01e1fdc7291d1b4330e51e91b3c6960b34200cca69f5787c3704a9c956a9
MD5 dc6cb0eddf11632baa8ec12f605cae23
BLAKE2b-256 9fb4c1e4069d416ff62bc63de8e46a39b107241e5ca73eb9a2c8bc8bf3d923f1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page