CLI
Command-line interface reference for Tasked.
tasked-server serve
Start the HTTP server. The server runs the DAG execution engine, exposes the REST API, and serves Prometheus metrics.
| Flag | Default | Description |
|---|---|---|
--data-dir | tasked-data | Data directory for SQLite databases |
--port | 8080 | Port to listen on |
--host | 0.0.0.0 | Host to bind to |
--auth-mode <mode> | none | Authentication mode: none or api-key |
--api-key <key> | - | API key for api-key auth mode (also reads TASKED_API_KEY env var) |
--metrics-push-url <url> | - | Push Prometheus metrics to this URL every 30s |
# Start with defaults
tasked-server serve
# Custom port and data directory
tasked-server serve --port 3000 --data-dir /var/lib/tasked
# Bind to localhost only
tasked-server serve --host 127.0.0.1 --port 8080
# Enable API key authentication
tasked-server serve --auth-mode api-key --api-key my-secret-key
# Or use the environment variable
TASKED_API_KEY=my-secret-key tasked-server serve --auth-mode api-key
# Push metrics to a remote endpoint
tasked-server serve --metrics-push-url https://metrics.example.com/push
tasked-server run
Execute a flow from a JSON file and exit. This is the quickest way to run a workflow without starting the server. Also available as tasked run via the Homebrew install.
| Argument / Flag | Default | Description |
|---|---|---|
file | required | Path to a flow definition JSON file |
--queue | default | Queue to submit the flow to (created if it doesn't exist) |
--db | :memory: | SQLite database path (use :memory: for in-memory) |
--auto-approve | - | Skip all approval tasks without prompting (useful for CI/CD) |
--output <file> / -o | - | Write task outputs as JSON on completion. Use - for stdout. |
Exit codes: 0 on success (all tasks succeeded), 1 on failure (any task failed or flow was cancelled).
# Run a flow file
tasked run flow.json
# Run with a named queue
tasked-server run flow.json --queue builds
# Persist results to a database
tasked-server run flow.json --db results.db
# Auto-approve all approval tasks
tasked run flow.json --auto-approve
# Write outputs to a file
tasked run flow.json --output results.json
# Write outputs to stdout
tasked run flow.json -o -
tasked-server mcp
Start an MCP (Model Context Protocol) server on stdio. This allows AI agents like Claude to use Tasked as a tool for managing DAG workflows via JSON-RPC 2.0.
| Flag | Default | Description |
|---|---|---|
--data-dir | tasked-data | Data directory for SQLite databases |
# Start MCP server
tasked-server mcp --data-dir tasked-data
See the MCP Server guide for integration details and tool reference.
tasked export
Export a complete flow snapshot. The export includes flow metadata, all tasks with their configurations and dependencies, and optionally artifact data. Supports JSON and tar.gz archive formats. Useful for compliance archival and debugging.
| Argument / Flag | Default | Description |
|---|---|---|
flow_id | required | Flow ID to export |
--server | http://localhost:8080 | Server base URL |
--format <fmt> | json | Export format: json or tar (tar.gz archive with artifacts as separate files) |
--with-artifacts | - | Include artifact data in the export (JSON: inline base64, tar: separate files) |
--output <file> / -o | stdout | Output file (default: stdout) |
--api-key <key> | - | API key for authenticated servers (also reads TASKED_API_KEY env) |
# Export a flow to stdout
tasked export abc-123
# Export with artifacts to a file
tasked export abc-123 --with-artifacts --output export.json
# Export as tar.gz archive with artifacts
tasked export abc-123 --format tar --with-artifacts -o flow.tar.gz
# Export from an authenticated remote server
tasked export abc-123 --server https://tasked.example.com --api-key $KEY
Environment Variables
Log verbosity is controlled via the RUST_LOG environment variable. Tasked uses the tracing EnvFilter syntax.
| Mode | Default Level | Notes |
|---|---|---|
serve | tasked_server=info,tasked=info,tower_http=info | Verbose by default for request tracing |
run | warn | Quiet by default for clean CLI output |
mcp | warn | Logs go to stderr so stdout stays clean for JSON-RPC |
# Enable debug logging
RUST_LOG=debug tasked-server serve
# Trace-level logging for the engine only
RUST_LOG=tasked=trace tasked-server serve
# Debug a run command
RUST_LOG=debug tasked run flow.json