Event-Driven Declarative Orchestrator
Get started with Kestra in 4 minutes.
Kestra for VS Code
Author, run, and inspect Kestra flows in VS Code: live validation, {{ }} autocompletion, run from the editor with live logs, topology preview, and documentation, all backed by the Kestra instance you connect to.
Features
- Live validation as you type: the connected instance's validate endpoint runs on each edit and surfaces the same errors as
flow validate.
{{ }} autocompletion for Pebble expressions: context variables, functions, filters, and the flow's own input and task ids.
- Instance-aware schema: task and property autocompletion plus structural validation from your instance's installed plugin versions, not a generic all-plugins schema.
- Missing required fields: inline suggestions for the required properties a task still needs.
- Run from the editor: validate, deploy, and execute the open flow on the connected instance, with live logs and per-task status.
- Topology preview: the flow's graph rendered from the YAML as you edit, with live task states during a run.
- Documentation: the Kestra docs and plugin reference beside the editor, following the cursor.
Requirements
Setup
Set the URL of your Kestra instance, and a tenant if it is multi-tenant:
"kestra.api.url": "http://localhost:8080/api/v1",
"kestra.api.tenant": "main"
On a secured instance you are prompted for credentials on the first request. It supports basic auth (username and password), an Enterprise Edition API token (sent as a Bearer token), and a legacy JWT session token. Use the Kestra: Sign in command to set or change credentials, and Kestra: Sign out to clear them.
Usage
Schema and autocompletion
The flow schema is downloaded from the instance set in kestra.api.url, so it matches that instance's installed plugin versions. It is cached per instance and re-downloaded when the URL or tenant changes. A property valid in latest but missing on your instance is therefore flagged. The Download Kestra schema command forces a refresh, for example after installing a plugin.
The schema attaches to any open YAML detected as a flow (it declares id, namespace, and tasks or triggers). To restrict it to a specific folder instead, set up a file mapping.
Running a flow
On a flow file, run Kestra: Save and run flow from the command palette, the play button in the editor title bar, or Ctrl+Alt+R (Cmd+Alt+R on macOS). The extension validates the flow, deploys the current editor content to the instance, prompts for any declared inputs, starts an execution, and streams its logs with a link to the execution page.
To deploy the buffer without executing it, use Kestra: Save flow to Kestra (the save button in the editor title bar).
By default the run opens in a panel with a status badge, a log-level filter, and collapsible per-task logs. Set kestra.run.output to logs to use a native output channel instead.
Topology preview
On a flow file, run Kestra: Preview flow topology (or the graph button in the editor title bar) to open the flow's graph beside the editor. The graph is generated by the connected instance from the current buffer and refreshes as you type. Clicking a task node jumps to its YAML, and the rotate button flips the layout between vertical and horizontal. While a run streams, task nodes color with their live state.
Documentation
The Open Kestra documentation action opens the Kestra docs beside the editor, matching the docs tab in the Kestra UI: search, breadcrumb navigation across plugins and their tasks, and content versioned to the connected instance. Placing the cursor on a task shows that plugin's documentation with its examples, properties, and outputs.
Configuration
kestra.api.url: URL of your Kestra instance.
kestra.api.tenant: Tenant id for multi-tenant instances. Leave empty for instances that do not use tenant-scoped API routes.
kestra.run.output: Where to show a flow run, the styled panel (default) or the native logs output channel.
kestra.run.logLevel: Minimum log level streamed when running a flow. Defaults to INFO.
kestra.schema.match-path: Restrict the schema to files under a path, for example _flows.
Contributing
See CONTRIBUTING.md for building, packaging, and releasing the extension.
Stay up to date
We release new versions every month. Give the main repository a star to stay up to date with the latest releases and get notified about future updates.
