CLI command reference
Start the worker
Start a worker that polls for tasks from the server and executes them. Workers can run tasks locally, in Docker containers, or in Kubernetes pods.
hessian worker start [flags]Start a worker with default settings:
hessian worker startStart a worker with custom name:
hessian worker start --name my-workerStart a worker with custom queue group:
hessian worker start --queue_group my-queue-groupStart a worker with multiple runtimes:
hessian worker start --runtime python=/usr/bin/python3 --runtime node=/usr/bin/nodeStart a Kubernetes worker:
hessian worker start --type kubernetes --k8s-namespace hessian --k8s-runner-image hessian/runner:latest --k8s-default-image python:3.12-slim| Flag | Type | Description |
|---|---|---|
--concurrent_task_limit | int | Maximum number of tasks the worker can run concurrently (default 1) |
--heartbeat_interval | duration | Interval for sending heartbeat to the API (default 30s) |
-h, --help | “ | help for start |
--k8s-api-key-secret | string | K8s Secret reference for API key, in format secret-name:key-name (e.g., hessian-secrets:api-key) |
--k8s-cpu-limit | string | CPU limit for task pods (default “1000m”) |
--k8s-cpu-request | string | CPU request for task pods (default “100m”) |
--k8s-default-image | string | Default Python image for task pods (default “python:3.12-slim”) |
--k8s-job-ttl | int32 | TTL seconds after job finishes (default 24 hours) (default 86400) |
--k8s-kubeconfig | string | Path to kubeconfig (empty = auto-detect) |
--k8s-memory-limit | string | Memory limit for task pods (default “512Mi”) |
--k8s-memory-request | string | Memory request for task pods (default “128Mi”) |
--k8s-namespace | string | Kubernetes namespace for task pods (default “default”) |
--k8s-pod-api-url | string | API URL reachable from inside pods (e.g., http://host.minikube.internal:8080). Defaults to the worker’s —api_url. |
--k8s-pod-storage-url | string | Storage proxy URL reachable from inside pods (e.g., http://192.168.49.1:8000). Rewrites presigned URL hosts for self-hosted setups. |
--k8s-runner-image | string | Runner init container image (default “hessian/runner:latest”) |
--k8s-service-account | string | Service account for task pods |
--name | string | Name of the worker |
--poll_interval | duration | Interval for polling tasks from the API (default 5s) |
--queue_group | string | The ID of the queue group to register the worker with |
--runtime | stringArray | Runtime mapping in the form lang=/path/to/runtime (e.g python=/usr/bin/python3). It can be specified multiple times to register multiple runtimes, e.g —runtime python=/usr/bin/python3 —runtime node=/usr/bin/node |
-t, --type | string | Type of worker: local, docker, kubernetes, aws-lambda, gcp-cloud-run, azure-functions (default “local”) |
| Flag | Type | Description |
|---|---|---|
--api_url | string | API URL (overrides the active context) (default “http://localhost:8000”) |
--config | string | config file (default is $HOME/.hessian/config.yaml) |
--debug | “ | Enable debug logging |
-H, --header | strings | Add custom header(s) to requests (format: ‘Key: Value’). Can be repeated. |
--json | “ | Output in JSON format (overrides —output) |
--profile | string | Context profile to use (overrides current_context and HESSIAN_PROFILE) |