Kestra Scripts Guide – Multi-Language Tasks and Runners
Kestra is language agnostic. Write your business logic in any language.
Run scripts in any language with Kestra
You can orchestrate custom business logic written in any language, and you can also build custom plugins in Java.
There are dedicated plugins for Python, R, Julia, Ruby, Node.js, Powershell and Shell. You can also run any language using the Shell plugin too.
By default, these tasks run in individual Docker containers (taskRunner type: io.kestra.plugin.scripts.runner.docker.Docker). You can overwrite that default behavior if you prefer that your scripts run in a local process (taskRunner type: io.kestra.plugin.core.runner.Process) instead.
If you use the Enterprise Edition, you can also run your scripts on dedicated remote workers by specifying a workerGroup property or using other Task Runner types for AWS, GCP, Azure, and Kubernetes.
The following pages dive into details of each task runner, supported programming languages, and how to manage dependencies.
Supported Programming Languages in Kestra
Kestra is language agnostic — you can use any programming language inside your workflows.
Commands vs Script Tasks in Kestra
Types of tasks for executing programming languages.
Inline Scripts in Docker – Write Code Directly in Tasks
Writing code directly inside your task.
Task Runners in Scripts – Control Execution Environment
Manage the environment your code is executed with Task Runners.
Build a Custom Docker Image for Script Tasks
Build a custom Docker image for your script tasks.
Install Dependencies at Runtime for Script Tasks
Install dependencies at runtime using beforeCommands.
Outputs and Metrics from Scripts – Send Data Back to Kestra
Send Outputs and Metrics back to Kestra.
Input and Output Files in Script Tasks
Manage Input and Output files with your scripts.
Logging from Scripts – Send Logs to Kestra
Send logs back to Kestra.
Bind Mount Scripts into Kestra – Run Local Code
Use bind-mount to execute locally stored scripts.
Git Clone Task – Fetch Repos for Script Workflows
Clone a Git repository and use the files in your tasks.
Working Directory Task – Share Files Across Scripts
Run multiple tasks in the same working directory sequentially.
Was this page helpful?