Skip to main content

IDE Plugins

Official editor plugins add language support for .wsl and .swsl files. Source and binaries: github.com/kuetix/ide-plugins.

Both plugins are language-support only — they do not execute workflows. Execution is handled by the kue CLI or the engine runtime.

Supported IDEs

IDE familyVersionsPlugin
JetBrains (IntelliJ IDEA, GoLand, WebStorm, PyCharm, PhpStorm, CLion, Rider, …)Any IntelliJ Platform 2023.3+ buildjetbrains-wsl
Visual Studio Code1.75+vs-code-wsl

The JetBrains plugin is built in two variants: a legacy build covering 2023.3 → 2025.1 and a separate 2025.2+ build (Java 21 / Kotlin 2.2). Both ship the same plugin version.

Features

FeatureJetBrainsVS Code
Syntax highlighting for .wsl and .swslyesyes
Keyword completionyesyes
Snippet completion (workflow, state, action, def, feature, solution, hierarchical calls)yesyes
Module / method completion from modules.jsonyesyes
Brace matching ({}, ())yesyes
Line (//) and block (/* */) comment togglingyesyes
Hash (#) line comments in .swslyesyes
Auto-closing pairs for brackets and quotesn/ayes
File-type iconsyesyes
Structure view (workflows and states)yes
Color settings pageyes

Neither plugin currently performs semantic validation or diagnostics — invalid syntax is caught when the workflow is parsed by kue or the engine.

Installation

JetBrains

The plugin builds as a .zip archive (e.g. jetbrains-wsl-1.4.1.zip).

  1. Download the archive from the latest release or build it locally.
  2. In your IDE: Settings → Plugins → ⚙ → Install Plugin from Disk…
  3. Select the .zip file and restart the IDE when prompted.

To build from source:

git clone https://github.com/kuetix/ide-plugins
cd ide-plugins/jetbrains-wsl
./gradlew buildPlugin
# Output: build/distributions/jetbrains-wsl-<version>.zip

For 2025.2+ builds use the variant Gradle files:

./2025-docker-build.sh
# Output: output/jetbrains-wsl-<version>.zip

Visual Studio Code

The plugin builds as a .vsix package (e.g. wsl-language-support-1.2.0.vsix).

  1. Download the .vsix from the latest release or build it locally.
  2. In VS Code: Extensions sidebar → menu → Install from VSIX…
  3. Select the .vsix file.

To build from source:

git clone https://github.com/kuetix/ide-plugins
cd ide-plugins/vs-code-wsl
npm install
npm run compile
npx vsce package
# Output: wsl-language-support-<version>.vsix

Module-aware completion (modules.json)

Both plugins resolve module and method names for completion by reading modules.json from your workspace. They look in, and merge, the following paths in order:

  1. <project root>/modules.json
  2. <project root>/workflows/modules.json
  3. <project root>/runtime/workflows/modules.json

Files are watched and merged automatically — later sources override earlier entries. If modules.json is missing or malformed the plugins fall back silently to keyword-only completion.

The file format is a map keyed by module path:

{
"auth/login": {
"info": {
"namespace": "auth",
"class": "Login",
"label": "Login",
"description": "User authentication"
},
"methods": [
{ "value": "authenticate", "label": "authenticate", "description": "Authenticate a user" },
{ "value": "logout", "label": "logout", "description": "End the user session" }
]
}
}

Once loaded, typing action in a state (or any action position in .swsl) suggests module paths; after a trailing ., it suggests methods for that module.

See the Modules reference for the canonical module concept.

Snippets

Selected prefixes available in .wsl files:

PrefixInserts
workflowWorkflow skeleton with start, a state, and end ok
stateNamed state with action and on success / on error
state-endTerminal state with end ok / end error
actionaction <path>.<method>() placeholder
constconst { … } block
on-success, on-errorTransition lines

Selected prefixes available in .swsl files:

PrefixInserts
swsl-workflow, swsl-feature, swsl-solutionWorkflow-type skeleton
swsl-defReusable def action with body
swsl-def-errorError handler def
swsl-flow, swsl-chainAction flow with -> chains and <- error binding
swsl-call-workflow, swsl-call-featureHierarchical call (workflow:, feature:)
$const, $contextConstant / context variable reference

Limitations

  • No semantic validation, "go to definition", rename refactoring, or find usages.
  • No formatter.
  • No language server — both plugins are pure in-IDE implementations and do not call out to kue, the MCP server, or any other process.
  • The IDE plugins are versioned independently of the engine; their version number does not track engine releases.