Files
nixpkgs/docs/packages/kestractl.md
sascha.koenig 1925c91a38
Some checks failed
Update Nix Packages with nix-update / nix-update (push) Failing after 32m41s
chore: update docs
2026-03-16 10:28:25 +01:00

3.0 KiB

kestractl

CLI for the Kestra workflow orchestration platform.

Description

kestractl is the official command-line interface for Kestra, an open-source workflow orchestration platform. It allows you to interact with Kestra instances to manage flows, trigger executions, inspect namespaces, and automate orchestration tasks from the terminal.

Features

  • 🔄 Flow Management: Deploy, inspect, and delete flows
  • ▶️ Execution Control: Trigger and monitor workflow executions
  • 📁 Namespace Operations: Manage Kestra namespaces and their resources
  • 📂 Namespace Files: Upload and manage files in namespace storage
  • 🌐 Multi-Environment: Switch between dev, staging, and production contexts
  • Pre-built Binary: No compilation required — fetched directly from GitHub releases

Installation

Via Overlay

{pkgs, ...}: {
  environment.systemPackages = with pkgs; [
    kestractl
  ];
}

Direct Reference

{pkgs, ...}: {
  environment.systemPackages = with pkgs; [
    inputs.m3ta-nixpkgs.packages.${pkgs.system}.kestractl
  ];
}

Run Directly

nix run git+https://code.m3ta.dev/m3tam3re/nixpkgs#kestractl

Usage

Basic Commands

# Check version
kestractl version

# Show help
kestractl --help

# Connect to a Kestra instance
kestractl context set --api-url http://localhost:8080

# List flows in a namespace
kestractl flow list --namespace my.namespace

# Trigger a flow execution
kestractl execution create --namespace my.namespace --flow-id my-flow

# Monitor executions
kestractl execution list --namespace my.namespace

Configuration

kestractl uses a context system to manage connections to Kestra instances:

# Create a context for a local instance
kestractl context set local --api-url http://localhost:8080

# Create a context for a remote instance with auth
kestractl context set prod --api-url https://kestra.example.com --token <your-token>

# Switch active context
kestractl context use prod

Build Information

  • Version: 1.0.0
  • Language: Go (pre-built binary)
  • License: Apache 2.0
  • Source: GitHub

Platform Support

  • x86_64-linux
  • aarch64-linux

Package Structure

This package uses a sources.json + update.sh pattern for multi-platform binary fetching:

pkgs/kestractl/
├── default.nix    — reads version + hashes from sources.json
├── sources.json   — per-platform URLs and SRI hashes
└── update.sh      — fetches latest GitHub release, updates sources.json

Updates are handled by update.sh (called by the Gitea Actions nix-update workflow), which fetches the latest release from GitHub, downloads each platform's tarball, computes SRI hashes, and rewrites sources.json.