
Core Plugins and tasks Process
CertifiedRun tasks as local subprocesses on the worker.
Core Plugins and tasks Process
Run tasks as local subprocesses on the worker.
Executes task commands using the host OS process APIs. The working directory is exposed as the {{workingDir}} template variable and the WORKING_DIR environment variable; input files and namespace files are materialized there before execution, and outputFiles must be written there to be captured.
When a task enables output directory support, the {{outputDir}} template variable and OUTPUT_DIR environment variable are also available as a dedicated location for output files — this is a separate mechanism from outputFiles.
Platform-agnostic (Linux/macOS/Windows). If the worker is interrupted, the process and all its descendants are killed. Kestra will re-queue the task execution when the worker restarts.
type: io.kestra.plugin.core.runner.ProcessExamples
Execute a Shell command.
id: new_shell
namespace: company.team
tasks:
- id: shell
type: io.kestra.plugin.scripts.shell.Commands
taskRunner:
type: io.kestra.plugin.core.runner.Process
commands:
- echo "Hello World"Install custom Python packages before executing a Python script. Note how we use the --break-system-packages flag to avoid conflicts with the system packages. Make sure to use this flag if you see errors similar to error: externally-managed-environment.
id: before_commands_example
namespace: company.team
inputs:
- id: url
type: URI
defaults: https://jsonplaceholder.typicode.com/todos/1
tasks:
- id: transform
type: io.kestra.plugin.scripts.python.Script
taskRunner:
type: io.kestra.plugin.core.runner.Process
beforeCommands:
- pip install kestra requests --break-system-packages
script: |
import requests
from kestra import Kestra
url = "{{ inputs.url }}"
response = requests.get(url)
print('Status Code:', response.status_code)
Kestra.outputs(response.json())
Pass input files to the task, execute a Shell command, then retrieve output files.
id: new_shell_with_file
namespace: company.team
inputs:
- id: file
type: FILE
tasks:
- id: shell
type: io.kestra.plugin.scripts.shell.Commands
inputFiles:
data.txt: "{{inputs.file}}"
outputFiles:
- out.txt
taskRunner:
type: io.kestra.plugin.core.runner.Process
commands:
- cp {{workingDir}}/data.txt {{workingDir}}/out.txtProperties
version Non-dynamicstring
Plugin Version
Defines the version of the plugin to use.
The version must follow the Semantic Versioning (SemVer) specification:
- A single-digit MAJOR version (e.g.,
1). - A MAJOR.MINOR version (e.g.,
1.1). - A MAJOR.MINOR.PATCH version, optionally with any qualifier
(e.g.,
1.1.2,1.1.0-SNAPSHOT).