Skip to main content
Most of what you build on Noorle is composition, not engineering. You bind capabilities to an agent or a gateway, point them at the systems you already run, and the platform handles execution, approvals, and the audit trail. This tab covers the part that needs code: writing a plugin — a WebAssembly component that runs inside the platform sandbox and exposes its exported functions as tools.

Start with what you don’t have to write

Every capability an agent or gateway can call is one of three kinds: Reach for a plugin when the work is computation you own — a transformation, a proprietary algorithm, or several calls collapsed into one tool — and no builtin or connector covers it. When to build a plugin walks the decision.

Three ways to get a plugin into your account

All three end at the same place: a validated component, stored, and activated as a version of a capability you can bind.

Write it

Scaffold with the Noorle CLI, build to a component, upload the archive. Rust, Python, JavaScript, TypeScript, or Go.

Upload a component

Already have a .wasm component? Upload it directly, with an optional .wit file for tool descriptions.

Generate it

Plugins → New plugin → Build with AI in the Portal, or bind the Plugin Builder capability and let an agent do it. Generated plugins are Rust.

The plugin section

How plugins run

Component Model, the .npack archive, admission validation, and what the sandbox does and does not give you.

Quickstart

Scaffold, build, upload, activate.

Project structure

What the scaffolded project contains and which file drives what.

Languages

Toolchain, layout, and build command for Rust, Python, JavaScript, TypeScript, and Go.

noorle.yaml reference

The keys the platform reads.

Permissions

Network hosts, storage mounts, environment variables, credentials, and resource limits.

Publishing and versions

Upload paths, size limits, the dormant-then-activate model, and rollback.

Once it exists

A plugin is a capability like any other. It gets a platform-assigned tool namespace, it is bound to agents and gateways the same way builtins are, and its calls go through the same approval gate and land in the same audit trail.