Skip to content

Plugins

Plugins extend Kitlig with new operations, new "Open With" targets, and extra settings. They install from repositories with a click, and a workflow you build can become one (see Workflows).

The Plugins dialog

Open the burger menu and choose Plugins.... Three tabs:

  • Installed (N): what you have.
  • Browse: what's available from your repositories.
  • Repositories: where plugins come from.

What plugins add

  • Operations. Plugin operations appear in the regular Pipelines browser. Filter to them with the provider checkbox "Local (Plugins)".
  • Open With handlers. Extra entries on the asset right-click's "Open With" menu, beyond your configured external apps.
  • Settings fields. A "Plugins" section appears in Settings when an enabled plugin declares settings of its own.

Some repositories also ship preset packs: bundles of operation presets rather than code, installed with Install Presets.

Installing

  1. Open the Browse tab. Plugins are grouped by repository.
  2. Click Install on the one you want.
  3. Check the Installed tab: each card shows the name, category, version, an "Enabled" checkbox, Update and Uninstall buttons, and the operation ids the plugin contributes.

Restart notes

Some plugin changes show a "restart recommended" note on the card. The plugin isn't fully wired in until you restart Kitlig. Quit from the tray (remember, closing the window only hides it) and relaunch.

Disable a plugin by unticking "Enabled" instead of uninstalling; its operations vanish from the browser but your copy stays for later.

Repositories

A repository is a published index of plugins. Kitlig seeds one by default, the official repository at https://github.com/vltmedia/Kitly---Official-Plugins.

Add more on the Repositories tab, by GitHub URL or by a direct index.json link. That's how a studio shares internal tools: publish an index, have every artist add the URL once, and updates flow through the Update button.

Install what you trust

Plugins run code on your machine. Stick to the official repository and sources you trust, the same judgment you'd apply to any DCC script or extension.

Operations that ask questions

A plugin operation can stop to ask the user something while it runs. Its execute function receives an ask function next to inputs, sourceFiles, outputDir and settings:

async execute({ inputs, ask, progress }) {
  await progress('Checking the part list')
  const answers = await ask({
    title: 'Which footprint?',
    message: 'Two footprints match this part.',
    questions: [
      { key: 'footprint', label: 'Footprint', type: 'select', required: true,
        options: [{ value: 'SOIC-8', label: 'SOIC-8' }, { value: 'TSSOP-8', label: 'TSSOP-8' }] },
      { key: 'note', label: 'Note', type: 'textarea' }
    ]
  })
  // answers.footprint, answers.note
}

The job shows the question on its row in the Jobs panel and on its node in a workflow, and ask resolves with the answers once someone presses Answer. Question types are text, textarea, number, boolean, select, multiSelect and json, with the same options, min, max, default and required fields as operation parameters, plus an optional help line. Add previewAssetIds to show images beside the questions. If the job is cancelled while waiting, ask rejects. progress(phase, pct) updates the row's live phase text.

Opening files in other apps

A plugin can hand a file to one of the apps from Settings ▸ External Apps: context.openInApp('kicad', absolutePath) launches it (or 'default' for the OS association), and context.listExternalApps() returns the registry so a plugin can check whether an app has a path before offering a button. When the app isn't configured, openInApp throws with a message that names the Settings page. Show that to the user rather than guessing where the program lives.

From workflow to plugin

Any workflow can be exported as a plugin folder (Export..., then Plugin folder...). The result installs like any other plugin and registers the graph as a regular operation, prompts and inputs included. Build the graph once, ship it to the whole team as a one-click tool.