limescape-plugin-sdk
The only contract between the Limescape AI Platform and node-type plugins in
limescape-ai-plugins.
Plugins import this package (plus their own declared dependencies) and never
the platform itself.
A node type
src/node-types/<code>/
├── node-type.yaml # manifest: the single source of metadata
├── node.py # async def execute(ctx, inp)
├── i18n/nl.json # translations (nl and en are required)
├── i18n/en.json
├── icon.svg # optional; otherwise a Lucide name in the manifest
├── README.md
└── tests/
├── test_node.py
└── golden/*.yaml # required when the plugin takes over a builtin type
from limescape_plugin_sdk import NodeContext, NodeInput
async def execute(ctx: NodeContext, inp: NodeInput):
response = await ctx.http.request("GET", inp.require_param("endpoint_url"))
response.raise_for_status()
yield {inp.output_key: response.json()}
inp.paramsis flattened and{{ variables }}are resolved; keys are the field names from the manifest. A field withresolve_variables: falsekeeps its original value after variable validation, for plugins applying their own template renderer.- Yield a dict or a list of dicts; everything must be JSON-serialisable.
- Raising an exception produces
[{"error": "<message>"}], exactly like the builtin node types. - Only capabilities declared under
capabilities:are granted (logandtracealways are).
Tooling
limescape-plugin validate [--check-imports] # manifests, code, i18n, icons
limescape-plugin compat [--against <previous meta archive>]
limescape-plugin requirements # merged requirements for the lock
limescape-plugin build --version 1.4.2 --lock bundle.lock --wheels wheels/
limescape-plugin golden # replay golden cases
limescape-plugin schema # JSON Schema of node-type.yaml
limescape_plugin_sdk.testing provides FakeContext, run_node and the
golden-case runner for unit tests.
Versioning
Independent semver, not tied to the platform version. While the SDK is 0.x a
platform only runs bundles locked to the same minor version and not newer
than its own SDK (versioning.is_bundle_sdk_supported).
SDK 0.2 additions
Declare capabilities: [websearch] to call
await ctx.websearch.search(query, parameters={"num": 5}). The platform returns
the Google Custom Search JSON response and supplies its configured credentials;
plugins never receive the platform search key. FakeContext(websearch_responses=[...])
and golden cassettes support the same contract.
io.input_keys_validation defaults to platform. Set it to plugin only when
the node must choose between alternative legacy inputs; the plugin then checks
its selected keys. Required io.input_data keys are always platform-validated.
Switching this field back to platform is a breaking manifest change.
ctx.trace.event(name, data) creates a child event in the current node trace.
input_keys is available in inp.params; output routing remains in inp.output_key.
SDK 0.1 bundles do not run on an SDK 0.2 platform. Upgrade the platform and build all node types against 0.2 together before the first publication.
Licence
Copyright (c) 2026 TrueLime.
Licensed under the European Union Public Licence v. 1.2 (EUPL-1.2).
Release files for limescape-plugin-sdk 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| limescape_plugin_sdk-0.2.1.tar.gz | 40.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| limescape_plugin_sdk-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 83.2 kB
Release files / limescape_plugin_sdk-0.2.1.tar.gz
| Download URL | limescape_plugin_sdk-0.2.1.tar.gz |
|---|---|
| Size | 40.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0ce4af344f2cd14155d43fd70c56ce6cbad04b32ed4fe5c2b1e9f4b3cc5d39ee
|
|
BLAKE2b-256 checksum How to use checksums |
9cb883fc5ad8f2b5c1ec23206dd8aae2b59dea246c4b60929087332596723cc6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|
Release files / limescape_plugin_sdk-0.2.1-py3-none-any.whl
| Download URL | limescape_plugin_sdk-0.2.1-py3-none-any.whl |
|---|---|
| Size | 42.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2e5d36dde4454d963146b17a77d230ba3a799f6f368d57b21807bd4702762f75
|
|
BLAKE2b-256 checksum How to use checksums |
6f2eb9e98e11b71b682c73ad3bfc08e3012a49654be91ba0761a0215dc88f76f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.5
|