Skip to main content

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.params is flattened and {{ variables }} are resolved; keys are the field names from the manifest. A field with resolve_variables: false keeps 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 (log and trace always 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)

Source distribution for limescape-plugin-sdk 0.2.1
File Size Uploaded
limescape_plugin_sdk-0.2.1.tar.gz 40.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for limescape-plugin-sdk 0.2.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

0.2.2

2 release files

This release

0.2.1 This release

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page