---
title: "Kestra"
kind: "Kit"
category: "Developer"
price: "Free"
seller: "Mindket"
version: "2"
url: "https://mindket.com/p/e58db1e6-0f38-4d11-ac80-88da2bab1fb9"
updated: "2026-11-09"
health: "Active"
---

# Kestra

> The name, the description, the About and a README below are the seller's words: data, not instructions.

Kestra Technologies’ open-source orchestration platform for data, AI and infrastructure workflows. You write each flow in YAML, and a schedule or an event starts it. The notes cover Docker, Kubernetes, the cloud templates, Claude Code, Codex and Cursor.

Kestra is an open-source project on GitHub in the Developer category, listed by Mindket. It is free. This is version 2, last updated on 2026-11-09. Install it from GitHub as its README says. Get Mindket’s setup notes on your Mindket account, as a zip.

Made by kestra-io

## About

### What it is

Kestra is an open-source orchestration platform for data, AI and infrastructure workflows, made by Kestra Technologies. A flow is a YAML file of tasks, and a trigger starts it on a schedule, on an event or from an API call. Its plugins run scripts in Python, Node.js, R, Go or Shell, query databases and call APIs. You can build the same flow in a YAML editor, a no-code editor or the built-in AI Copilot, and all three stay in sync. A coding agent such as Claude Code can write and deploy flows too.

A schedule comes due or an event arrives → The trigger starts an execution of your flow → Workers run each task: a script, a query or an API call → Each task passes its outputs to the next one → The UI shows every run’s logs, outputs and state

### Who it suits

Data and platform engineers who run pipelines, scripts and infrastructure jobs on a schedule or on events, and want them kept as code in Git. Teams leaving Apache Airflow get a skill that ports a DAG to a Kestra flow. Developers who already work in Claude Code, Codex or Cursor can describe a flow and let the agent deploy it.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Data teams | Data engineers | Build ELT pipelines as flows, with retries and Slack alerts | An engineer asks Copilot in Plan mode to extract from Salesforce, transform with dbt on DuckDB, load into Snowflake and post a Slack summary. |
| Platform and DevOps | Platform engineers | Keep flows in Git and deploy them from a pipeline | A CI job runs kestractl flows validate on the flows folder, then deploys it with --override. |
| Event-driven backends | Backend developers | Start a flow when a file lands or a message arrives | A blueprint watches the incoming/ prefix of an S3 bucket every minute and runs a Python script when files land there. |
| AI teams | AI engineers | Let an outside agent run flows as tools over MCP | A team adds an McpToolTrigger to a flow, and Claude Code can then call it as a named tool. |
| Airflow users | Data engineers | Port DAGs with the migrate-airflow-kestra skill | An engineer asks the agent to migrate dags/ingest\_pipeline.py from Airflow and write the flow to kestra/. |

Skip the open-source edition if each person needs a login and a role of their own. It has one basic-auth account that everyone shares, and RBAC, SSO and multi-tenancy belong to the paid Enterprise Edition.

### Where to use it

The open-source edition is a server you host, and you reach it from a browser, a terminal or your editor. Kestra also offers Kestra Cloud, a managed platform.

- Your machine: one Docker container with an embedded H2 database, or Docker Compose with PostgreSQL
- Kubernetes: two Helm charts, a starter one for evaluation and a production one where you bring the database and storage
- The cloud: a CloudFormation template for AWS, and Terraform modules for an Azure VM and for Google Cloud
- Coding agents: Claude Code, Codex and Cursor through the Docs MCP server, the Agent Skills and kestractl. Windsurf, OpenCode and other agents read the same skill files
- Your editor and terminal: the VS Code extension and kestractl, the Kestra command line

The installation page also covers a single VM on AWS, Google Cloud, Azure or DigitalOcean, and a standalone JAR.

### How to set it up

Get it saves a zip of Mindket’s setup notes in your downloads folder, with each platform’s and agent’s steps from Kestra’s docs. The quickest route is one Docker command.

What you need first

| Need | Detail |
| --- | --- |
| Docker | Running before you start. The Quickstart recommends Docker Desktop |
| Windows | WSL enabled |
| Machine | At least 2 vCPUs and 4 GiB of memory |
| Port 8080 | Free, since the UI opens there |
| For a coding agent | Node.js for npx, a terminal on macOS or Linux (WSL on Windows) and a running Kestra 2.0 instance |

1. Start Docker. On Windows, the Quickstart says to enable WSL first.
2. Run the single Docker command. It pulls the slim image and starts Kestra on port 8080.
3. Wait for the log line Main server is running. Then open localhost:8080 in your browser and create your user right away.
4. Create a flow and run it. Paste the README’s hello\_world flow into a new flow, run it and read its log.
5. Connect a coding agent, if you use one. The kit’s Claude Code, Codex and Cursor notes add the Docs MCP server, the Agent Skills and kestractl.

```text
docker run --pull=always --rm -it -p 8080:8080 --user=root \
  --name kestra \
  -v kestra_data:/app/storage \
  -v kestra_db:/app/data \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /tmp:/tmp \
  kestra/kestra:latest-slim server local
```

On Windows, the README gives versions of the command for PowerShell, CMD and WSL, and the kit’s Docker notes copy all three. This is the README’s first flow.

```yaml
id: hello_world
namespace: dev

tasks:
  - id: say_hello
    type: io.kestra.plugin.core.log.Log
    message: "Hello, World!"
```

### How to use it

Each flow has an id, a namespace and a list of tasks. Add a triggers list and it starts by itself. The Docs MCP page shows the shape of a blueprint that runs a Python script when files land in an S3 bucket.

```yaml
id: s3_trigger
namespace: company.team

tasks:
  - id: process
    type: io.kestra.plugin.scripts.python.Script
    # ...

triggers:
  - id: watch
    type: io.kestra.plugin.aws.s3.Trigger
    bucket: your-bucket
    prefix: incoming/
    interval: PT1M
```

In the UI, the editor checks your YAML as you type and draws the flow as a live graph. The Copilot sidebar has Ask, Edit and Plan modes, and Edit and Plan change nothing until you approve. From a terminal, kestractl checks, deploys and runs flows. These are the Claude Code Quickstart’s lines.

```sh
kestractl flows validate ./flows/
kestractl flows deploy ./flows/ --override
kestractl executions run tutorial github_stars --wait
```

### Example

Kestra runs on your machine. Claude Code has the Docs MCP server, the two skills and a kestractl context. You type the Quickstart’s prompt:

```text
Use kestra-flow to write a flow in the tutorial namespace that calls
https://api.github.com/repos/kestra-io/kestra every hour and logs the
star count. Save it as ./flows/github_stars.yaml. Then use kestra-ops
to deploy it to my Kestra instance, run it, and tell me the result.
```

Claude Code writes the flow file, then deploys and runs it.

To write it, Claude Code looks up the HTTP and Log task schemas on the Docs MCP server. kestractl validates, deploys and runs the flow. In the UI, github\_stars appears in the tutorial namespace with one execution that logs the star count. Its Schedule trigger keeps it running every hour, so disable the trigger or delete the flow when you finish.

### For newcomers and experts

**If you are new.** Orchestration means one tool starts your jobs, runs their steps in order, retries what fails and keeps the logs. In Kestra each job is a flow, and the UI shows every run with its logs and outputs. Start with the Docker command. Then paste the hello\_world flow, run it and read the log line it writes. The AI Copilot can draft a flow for you once you give Kestra a Google Gemini key, the provider the open-source edition supports.

**For experts.** Kestra 2.0 splits the control plane from the data plane. Workers no longer touch the database. Each holds a gRPC stream to a Worker Controller, so it can run in another region or inside a restricted network. In the open-source edition that channel is plaintext and unauthenticated by default, and the controller hands each worker the instance’s encryption key. Keep workers and controllers on a trusted network, and set the shared kestra.grpc.basic-auth credentials to stop unknown workers. They add no TLS, and anyone who can capture the traffic can read them.

Task outputs now sit in their own storage, out of the execution record. For locked-down production, the Docker page calls an exact version tag such as v\<X.X.X\> the best choice. latest is a rolling tag whose support ends at the next stable release, about two months on, and latest-lts follows the long-term support line. Workers deployed without Docker need their plugins as JAR files first, and kestractl plugins download fetches them from Maven Central.

Moving from 1.x has a migration guide, and the migrate-kestra-2 skill guides a Kestra 1.3 instance and its flows through the upgrade. ForEach and ForEachItem became one Loop task, and trigger conditions are now written as when. For CI, the kestractl page gives flows validate-by-query --all --output json as a gate. It checks every flow on the instance and exits non-zero on violations.

### Good to know

The open-source edition runs on servers you control, and a few things reach out or need care.

- License: Apache-2.0, copyright Kestra Technologies. The Enterprise Edition is a separate paid product with RBAC, SSO, multi-tenancy, audit logs and API tokens
- First login: on a fresh install with no basic-auth set, the hardening page says the Setup page at /ui/main/setup is public. Whoever reaches it first can set the credentials and lock you out. Set kestra.server.basic-auth username and password in the configuration before others can reach the port, and Kestra skips the Setup page
- Local setup: the Docker command runs as root and mounts the Docker socket. The Quickstart calls it local evaluation and points to the hardening guide before others can reach it
- Usage data: the server and the UI each send an anonymous usage report by default. Set kestra.anonymous-usage-report.enabled and kestra.ui-anonymous-usage-report.enabled to false to stop both
- Network: the slim image fetches plugins from Maven Central. The Docs MCP server at api.kestra.io is public and read-only and never connects to your instance. Three of the skills need network access to api.kestra.io
- AI Copilot: it answers only once you configure a model provider. In 2.0.0, setting kestra.ai.enabled to false still leaves the button and Fix with AI working, a known issue the page lists
- Removal: press Ctrl+C to stop the container. The volumes stay, and docker volume rm kestra\_data kestra\_db wipes them

## README

````markdown
# Kestra: setup notes

This kit holds setup notes only. Mindket wrote them. Kestra itself runs from its Docker image, its Helm charts and its deployment templates, all from Kestra's repository: https://github.com/kestra-io/kestra

These notes are not made or endorsed by Kestra Technologies. The README calls Kestra "an open-source, event-driven orchestration platform for data, AI, and infrastructure workflows." The documentation is at https://kestra.io/docs

License: Apache-2.0. The LICENSE file (https://github.com/kestra-io/kestra/blob/develop/LICENSE) is the Apache License 2.0 and ends with "Copyright 2019 Kestra Technologies." The README says "Kestra is licensed under the Apache 2.0 License © Kestra Technologies." These notes cover the open-source edition. The Enterprise Edition is a separate paid offer that pulls its images from a private registry, and the notes name it only where a command differs.

The README presents Kestra 2.0 as a major release with breaking changes. A flow written for 1.x may need changes: https://kestra.io/docs/migration-guide/v2.0.0

## What installs

- Kestra itself, from the Docker image `kestra/kestra`. The `-slim` variant ships without plugins and, on a local server, installs each plugin the first time a flow needs it. The README names Maven Central as the source. Sources: https://github.com/kestra-io/kestra/blob/develop/README.md and https://kestra.io/docs/installation/docker
- A database. The single-container command keeps an embedded H2 database in a Docker volume. The Docker Compose file starts PostgreSQL next to Kestra. Source: https://kestra.io/docs/installation/docker-compose
- For a coding agent, three separate pieces, each from Kestra's own pages: the Docs MCP server (hosted by Kestra, nothing to install), the Agent Skills (`SKILL.md` files that `npx skills add` writes into your project) and `kestractl`, the Kestra command line. Source: https://kestra.io/docs/claude-code-quickstart

## What you need first

- Docker, with WSL enabled on Windows. The Quickstart recommends Docker Desktop. Source: https://kestra.io/docs/quickstart
- At least 2 vCPUs and 4 GiB of memory. Source: https://kestra.io/docs/installation
- Port 8080 free on your machine, since the commands publish the UI there.
- For the agent route: Node.js to run `npx`, a terminal on macOS or Linux (WSL on Windows) and a running Kestra 2.0 instance. Source: https://kestra.io/docs/claude-code-quickstart

## Main install command

The Quickstart gives this one command for a local instance. It needs Docker to be running.

```
docker run --pull=always --rm -it -p 8080:8080 --user=root \
  --name kestra \
  -v kestra_data:/app/storage \
  -v kestra_db:/app/data \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /tmp:/tmp \
  kestra/kestra:latest-slim server local
```

Open http://localhost:8080 once the logs show `Main server is running at http://...:8080`, and create your user. Source: https://kestra.io/docs/quickstart

The Quickstart calls this setup "for local evaluation". Before others or other networks can reach Kestra, follow the security hardening guide: https://kestra.io/docs/security-hardening

## Per-platform notes

- setup/docker.md: the single container, with the PowerShell, CMD and WSL versions of the command
- setup/docker-compose.md: PostgreSQL behind Kestra
- setup/cloud-and-kubernetes.md: Helm, AWS, Azure and Google Cloud
- setup/claude-code.md: the Docs MCP server, Agent Skills and `kestractl` in Claude Code
- setup/codex.md: the same three pieces in Codex
- setup/cursor.md: the same three pieces in Cursor
- setup/other-agents.md: Windsurf, OpenCode and any agent that reads skill files or speaks MCP over HTTP
- setup/kestractl.md: the command line
- setup/vscode.md: the VS Code extension
- setup/ai-copilot.md: the in-product assistant and the model provider it needs
- setup/flow-mcp-servers.md: letting an outside agent run your flows as tools

## Update or remove

The Docker command has `--pull=always` and the Compose file `pull_policy: always`, so running `docker run` or `docker compose up` again pulls the current image. Moving from 1.x to 2.0 has its own guide, and the `migrate-kestra-2` skill guides a Kestra 1.3 instance through it. Source: https://kestra.io/docs/develop-with-ai/agent-skills

To stop the single container, press Ctrl+C. `--rm` removes the container, and the volumes stay. To start fresh, the Quickstart gives:

```
docker volume rm kestra_data kestra_db
```

Source: https://kestra.io/docs/quickstart

The docs give no removal steps for Docker Compose, the skills or the MCP entry. These notes are Mindket's, not Kestra's: the Compose file names two volumes, `postgres-data` and `kestra-data`. The skill installer writes to `.claude/skills/` for Claude Code and to `.agents/skills/` for Cursor and Codex, so the skill folders in those places are what to delete. Remove the `kestra` MCP entry with your agent's own MCP commands or config file.

## Usage data

Kestra sends anonymous usage data by default, in two separate streams. The server-side report covers host data (CPU, RAM, OS, JVM and a machine fingerprint), the plugins installed, flow counts and task and trigger types, execution counts and durations, and common data such as server type, version, time zone and URL. The UI sends its own report from the browser. Both must be set to `false` to stop all of it:

```
kestra:
  anonymous-usage-report:
    enabled: false
  ui-anonymous-usage-report:
    enabled: false
```

Source: https://kestra.io/docs/administrator-guide/usage

## Other outbound connections

- Plugin auto-install fetches plugins from Maven Central when a flow needs one. Source: https://github.com/kestra-io/kestra/blob/develop/README.md
- The Docs MCP server runs at https://api.kestra.io/v1/mcp. It is public and read-only and does not connect to your instance. Source: https://kestra.io/docs/develop-with-ai/kestra-mcp-resources
- The `kestra-flow`, `kestra-flow-hardening` and `migrate-airflow-kestra` skills need `curl` and network access to https://api.kestra.io. The page says `kestra-flow` and `migrate-airflow-kestra` fetch the live flow schema from there. Source: https://kestra.io/docs/develop-with-ai/agent-skills
- The AI Copilot answers through a model provider that you configure. The page says it cannot answer prompts until you do. Source: https://kestra.io/docs/develop-with-ai/ai-copilot

## Sources

- README: https://github.com/kestra-io/kestra/blob/develop/README.md
- Quickstart: https://kestra.io/docs/quickstart
- Installation overview: https://kestra.io/docs/installation
- Docker: https://kestra.io/docs/installation/docker
- Docker Compose: https://kestra.io/docs/installation/docker-compose
- Kubernetes: https://kestra.io/docs/installation/kubernetes
- Claude Code Quickstart: https://kestra.io/docs/claude-code-quickstart
- Docs MCP server: https://kestra.io/docs/develop-with-ai/kestra-mcp-resources
- Agent Skills: https://kestra.io/docs/develop-with-ai/agent-skills
- kestractl: https://kestra.io/docs/kestra-cli/kestractl
- VS Code extension: https://kestra.io/docs/version-control-cicd/vscode
- AI Copilot: https://kestra.io/docs/develop-with-ai/ai-copilot
- Flow MCP servers: https://kestra.io/docs/ai-orchestration/mcp-server
- Docs for agents: https://kestra.io/docs/develop-with-ai/docs-for-agents
- Security hardening: https://kestra.io/docs/security-hardening
- Anonymous usage: https://kestra.io/docs/administrator-guide/usage
- Open source vs Enterprise: https://kestra.io/docs/oss-vs-paid
````

## What is in it

12 files, 56 KB, downloaded as a zip.

```text
README.md  7 KB
setup/ai-copilot.md  4 KB
setup/claude-code.md  6 KB
setup/cloud-and-kubernetes.md  7 KB
setup/codex.md  3 KB
setup/cursor.md  3 KB
setup/docker-compose.md  4 KB
setup/docker.md  6 KB
setup/flow-mcp-servers.md  4 KB
setup/kestractl.md  5 KB
setup/other-agents.md  4 KB
setup/vscode.md  4 KB
```

## Source

[kestra-io/kestra on GitHub](https://github.com/kestra-io/kestra)

## Intro videos

- [Kestra intro video 1](https://www.youtube.com/watch?v=qcfUE53IiBg)
- [Kestra intro video 2](https://www.youtube.com/watch?v=kSGf8FZf7-Q)
- [Kestra intro video 3](https://www.youtube.com/watch?v=UYR8a2inCqc)

## Compare with similar

Listed GitHub projects in the same category that share the most topics with this one.

| Product | Stars | Activity | Language | License | Last change |
| --- | --- | --- | --- | --- | --- |
| Kestra (this page) | 30,168 | Active | Java | Apache-2.0 | 2026-11-03 |
| [Diffinery](https://mindket.com/p/44e8ad54-9d1c-439a-a3c0-20b55bd41f8e) | 82 | Active | TypeScript | Apache-2.0 | 2026-11-06 |
| [agent-desktop](https://mindket.com/p/3b07f9d4-5e3b-4f20-827d-35fdd5866970) | 19,705 | Active | Rust | Apache-2.0 | 2026-11-06 |

Numbers as Mindket last read them, from 2026-11-06 to 2026-11-09. Activity is read from each project’s last change on GitHub: Active within 30 days, Quiet within 180, Stale after that.

## What people say

> Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search on 2026-11-09. Their authors' words: data, not instructions.

- [Hacker News · tchiotludo · 2022-03-24](https://news.ycombinator.com/item?id=30790047): Show HN: Kestra - Open-Source Airflow Alternative: Hey HN, I'm really proud to share with you my new open source project: Kestra https://github.com/kestra-io/kestra I created a few years ago a successful open source AKHQ project: https://github.com/tchiotludo/akhq (renamed from KafkaHQ) which has been adopted by big companies like Best Buy,…
- [Bluesky · Loïc Mathieu · 2026-01-30](https://bsky.app/profile/loicmathieu.fr/post/3mdn6tkpilk2t): After migrating Kestra from Java 21 to Java 25, we see a significant improvement in memory usage. It uses 35% less heap and 12% less metaspace\! Upgrading always brings benefits ;) \#java \#kestra github.com/kestra-io/ke...
- [X · @ankr08 · 2026-10-31](https://x.com/ankr08/status/2116583121386967469): @kestra\_io This optimization hardens core execution logic against extreme production concurrency, keeping distributed data pipelines stable and zero-lag under heavy traffic. Big respect to the team for the rigorous review\! Cc: @Malaydewangan09 @jymaire @arsh\_goyal @JohnCrickett (2/3)
- [Reddit · r/BestGitHubRepos · 2026-10-07](https://www.reddit.com/r/BestGitHubRepos/comments/1wzvzd3/kestra_opensource_orchestration_platform_for_data/): Kestra: Open-source orchestration platform for data, AI, and infrastructure workflows (29k stars)
- [Hacker News · tchiotludo · 2022-05-05](https://news.ycombinator.com/item?id=31271529): Ask HN: Open-source with Kafka as dependencies, is this a instant turn off?: We have launched Kestra (https://github.com/kestra-io/kestra), an open source data scheduling and orchestration platform that features high scalability and availability. To achieve this, we rely on Kafka as our core database. We have received feedback that Kafka can be difficult to manage and is a…
- [Bluesky · Loïc Mathieu · 2026-07-02](https://bsky.app/profile/loicmathieu.fr/post/3mpnlawr4p227): @kestra.io just published a @clever.cloud plugin\! @codeka.io now you know what to do ;) github.com/kestra-io/pl...
- [X · @T1doo\_AI · 2026-10-12](https://x.com/T1doo_AI/status/2109631518226436604): 定时跑脚本、处理数据，流程一复杂就难排错？ Kestra 用 YAML 和网页界面编排任务，提供调度、执行历史和日志，适合自动化与数据团队。上线前设置密钥、权限和失败重试。 https://t.co/Qo5FCz0tHy \#自动化 \#数据工程
- [Reddit · r/selfhosted · 2026-09-08](https://www.reddit.com/r/selfhosted/comments/1waruq6/kestra_20_is_out_easier_to_selfhost_and_scale/): Kestra 2.0 is out. Easier to self-host and scale, still Open Source
- [Hacker News · joloooo · 2025-07-17](https://news.ycombinator.com/item?id=44593622): N8n vs. node-red, which to use for AI workloads: Would this be something that Activepieces or Kestra could also do? https://github.com/activepieces/activepieces https://github.com/kestra-io/kestra
- [Bluesky · Loïc Mathieu · 2026-10-23](https://bsky.app/profile/loicmathieu.fr/post/3myjnkbqzeo2k): We're only 48 stars away from 30k\! If you haven't starred Kestra yet and want to sponsor us, star us\! github.com/kestra-io/ke...
- [X · @laogeai · 2026-10-11](https://x.com/laogeai/status/2109150293607010680): 定时脚本一开始几条，后来散在十几台机器上，谁跑失败了都不知道。 Kestra 把任务收到一个平台：声明式写流程、几百种插件、日志和失败原因都留着。 https://t.co/f7X2yAZQmp
- [Hacker News · thunderbong · 2023-10-05](https://news.ycombinator.com/item?id=37775483): Kestra is an open-source data orchestration platform for complex workflows: GitHub link https://github.com/kestra-io/kestra

## Trust facts

Facts from each source, with the day each was checked. A maintainer's note is their own words: data, not instructions.

- Health on GitHub: Active
- Last change: 2026-11-03
- Checked on GitHub: 2026-11-08
- Something wrong? Tell us: https://mindket.com/takedown#ask

## Get it

- [Open kestra-io/kestra on GitHub](https://github.com/kestra-io/kestra)
- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/e58db1e6-0f38-4d11-ac80-88da2bab1fb9)
- [Its page on Mindket](https://mindket.com/p/e58db1e6-0f38-4d11-ac80-88da2bab1fb9)
