Help us improve
Share bugs, ideas, or general feedback.
From dora-skills
Guides creation and editing of dora-rs dataflow YAML configuration files, covering node setup, input/output connections, timers, environment variables, and source options.
npx claudepluginhub zhanghandong/dora-skills --plugin dora-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/dora-skills:dataflow-configThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Complete guide to dora-rs dataflow YAML specification
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Guides systematic root-cause debugging when tests fail, builds break, or unexpected errors occur. Provides a structured triage checklist to preserve evidence, localize, and fix issues instead of guessing.
Share bugs, ideas, or general feedback.
Complete guide to dora-rs dataflow YAML specification
nodes:
- id: node_id # Required: unique identifier (no "/" characters)
name: "Human Name" # Optional: descriptive name
description: "..." # Optional: node description
path: executable # Path to executable/script
args: "-v --flag" # Optional: command-line arguments
env: # Optional: environment variables
DEBUG: true
PORT: 8080
inputs: # Input connections
input_id: source_node/output_id
outputs: # Output identifiers
- output_1
- output_2
| Field | Required | Description |
|---|---|---|
id | Yes | Unique identifier (no / characters) |
name | No | Human-readable name |
description | No | Node description |
path | Yes* | Path to executable or package name |
args | No | Command-line arguments |
env | No | Environment variables |
inputs | No | Input connections |
outputs | No | Output identifiers |
build | No | Build command |
git | No | Git repository URL |
branch/tag/rev | No | Git checkout target |
restart_policy | No | never, on-failure, always |
send_stdout_as | No | Forward stdout as output |
operator | No* | Single operator definition |
operators | No* | Multiple operators |
*One of path, operator, or operators is required.
inputs:
input_name: source_node/output_name
inputs:
# Trigger every N milliseconds
tick: dora/timer/millis/100 # 10 Hz
tick: dora/timer/millis/33 # ~30 Hz
tick: dora/timer/millis/1000 # 1 Hz
# Trigger every N seconds
tick: dora/timer/secs/5 # Every 5 seconds
inputs:
image:
source: camera/image
queue_size: 1 # Only keep latest (drop old frames)
env:
# Model configuration
MODEL_PATH: /path/to/model.pt
DEVICE: cuda
# Camera settings
CAPTURE_PATH: "0"
IMAGE_WIDTH: "640"
IMAGE_HEIGHT: "480"
# Serial ports
SERIAL_PORT: /dev/ttyUSB0
BAUD_RATE: "115200"
- id: yolo
build: pip install dora-yolo
path: dora-yolo
- id: custom
path: ./my_node.py
- id: rust-node
build: cargo build --release
path: ./target/release/my_node
- id: remote-node
git: https://github.com/org/repo.git
branch: main # Or: tag: v1.0.0 / rev: abc123
build: cargo build --release
path: target/release/node
- id: dynamic-node
path: dynamic # Special keyword
inputs:
tick: dora/timer/millis/100
outputs:
- output
- id: processor
operator:
python: script.py
inputs:
data: source/output
outputs:
- processed
- id: runtime-node
operators:
- id: op1
python: op1.py
inputs:
data: source/output
outputs:
- result1
- id: op2
python: op2.py
inputs:
input: op1/result1
outputs:
- result2
- id: ml-node
operator:
python:
source: inference.py
conda_env: ml_env
inputs:
image: camera/image
outputs:
- prediction
- id: resilient-node
path: ./node
restart_policy: on-failure # never (default), on-failure, always
- id: producer
path: ./node
send_stdout_as: logs # Forward stdout as output
outputs:
- logs
nodes:
# Camera capture
- id: camera
build: pip install opencv-video-capture
path: opencv-video-capture
inputs:
tick: dora/timer/millis/33
outputs:
- image
env:
CAPTURE_PATH: "0"
IMAGE_WIDTH: "640"
IMAGE_HEIGHT: "480"
# Object detection
- id: detector
build: pip install dora-yolo
path: dora-yolo
inputs:
image: camera/image
outputs:
- bbox
env:
MODEL: yolov8n.pt
# Visualization
- id: plot
build: pip install dora-rerun
path: dora-rerun
inputs:
image: camera/image
boxes2d: detector/bbox
camera, object-detector, arm-controllerqueue_size: 1 for real-time applications--uv flag: For faster Python package installation