install
source · Clone the upstream repo
git clone https://github.com/GeorgeDoors888/GB-Power-Market-JJ
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/GeorgeDoors888/GB-Power-Market-JJ "$T" && mkdir -p ~/.claude/skills && cp -r "$T/openclaw-skills/skills/asmolebot/daeva" ~/.claude/skills/georgedoors888-gb-power-market-jj-daeva && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/GeorgeDoors888/GB-Power-Market-JJ "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/openclaw-skills/skills/asmolebot/daeva" ~/.openclaw/skills/georgedoors888-gb-power-market-jj-daeva && rm -rf "$T"
manifest:
openclaw-skills/skills/asmolebot/daeva/SKILL.mdsource content
Skill: daeva
Use when: The user asks to transcribe audio, generate images, run OCR/vision jobs, manage local AI pods (Whisper, ComfyUI, etc.), or interact with the local orchestrator.
Overview
daeva is a local HTTP service that routes inference jobs to GPU-backed pods (Whisper, ComfyUI, OCR/vision, etc.). It runs on http://127.0.0.1:8787 by default.
This skill covers:
- Checking pod/service status
- Submitting and polling jobs
- Installing pod packages from the registry
- Interacting via the MCP server (if configured)
Base URL
ORCHESTRATOR_BASE_URL=http://127.0.0.1:8787 # default
Check if it's running:
curl -s http://127.0.0.1:8787/health # → {"ok":true}
Key Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | | Liveness check |
| GET | | List registered pods |
| GET | | List installable pod aliases |
| GET | | List installed packages |
| POST | | Install a pod (alias or source) |
| GET | | Full status snapshot |
| GET | | Queue depth, running jobs |
| POST | | Enqueue a job |
| GET | | Job state |
| GET | | Job result |
Common Tasks
Check status
curl -s http://127.0.0.1:8787/status | jq .
List pods & aliases
curl -s http://127.0.0.1:8787/pods | jq . curl -s http://127.0.0.1:8787/pods/aliases | jq .
Install a pod from registry alias
curl -s -X POST http://127.0.0.1:8787/pods/create \ -H 'Content-Type: application/json' \ -d '{"alias":"whisper"}' | jq .
Submit a transcription job
curl -s -X POST http://127.0.0.1:8787/jobs \ -H 'Content-Type: application/json' \ -d '{ "type": "transcribe-audio", "capability": "speech-to-text", "input": { "filePath": "/tmp/audio.wav", "contentType": "audio/wav" } }' | jq . # Returns: {"job":{"id":"...","status":"queued",...}}
Poll a job
JOB_ID="<id from above>" curl -s "http://127.0.0.1:8787/jobs/$JOB_ID" | jq .job.status curl -s "http://127.0.0.1:8787/jobs/$JOB_ID/result" | jq .
Submit an image generation job
curl -s -X POST http://127.0.0.1:8787/jobs \ -H 'Content-Type: application/json' \ -d '{ "type": "generate-image", "capability": "image-generation", "input": { "prompt": "a red fox on a snowy mountain, photorealistic", "width": 1024, "height": 1024 } }' | jq .
MCP Server (for AI clients)
The orchestrator ships an MCP stdio server exposing 8 tools:
| Tool | Description |
|---|---|
| List registered pods |
| List installable pod aliases |
| List installed packages |
| Full status snapshot |
| Queue/scheduler state |
| Submit a job |
| Get job state + result |
| Install a pod |
MCP client config (e.g. for Claude Desktop / OpenClaw)
{ "mcpServers": { "daeva": { "command": "node", "args": [ "/path/to/daeva/dist/src/mcp-cli.js", "--base-url", "http://127.0.0.1:8787" ] } } }
Or via environment variable:
ORCHESTRATOR_BASE_URL=http://127.0.0.1:8787 node dist/src/mcp-cli.js
Starting the Orchestrator
Quick start (foreground):
cd ~/daeva PORT=8787 node dist/src/cli.js
Via systemd user service (if installed):
systemctl --user start daeva systemctl --user status daeva journalctl --user -fu daeva
Install script (server setup):
./scripts/install-server.sh # full setup ./scripts/install-server.sh --skip-podman # no Podman setup ./scripts/install-server.sh --skip-service # no systemd unit ./scripts/install-server.sh --dry-run # see what would happen
Capabilities & Job Types
| Capability | Common type strings | Required input keys |
|---|---|---|
| | or + |
| | |
| | or |
| , | or |
Troubleshooting
returns connection refused → orchestrator isn't running. Start it or check/health
.systemctl --user status daeva- Job stays
→ no pod registered for that capability. Checkqueued
and ensure a pod is running./pods
→ use404 alias not found
to list valid aliases, or install from a direct source./pods/aliases- Podman pull fails → ensure Podman is installed and the user has network access.
Notes
- Data lives in
by default (override with~/.local/share/daeva/
env var).DATA_DIR - All times are ISO 8601. Job results are ephemeral (in-memory) — not persisted across restarts.
- For GPU pods, ensure the container runtime has access to the GPU (e.g.
in quadlet).--device nvidia.com/gpu=all