Plugin Developer Guide

Package Configuration

How package.json tells Kazibee to load and run your plugin.

"name"

Your plugin's package name (can be anything, e.g. my-plugin)

"type"

Must be "module"

"main"

Sandbox entry point: "./src/index.ts"

"command"

Optional CLI commands: "./src/command.ts"

"kazibee"

Optional config: permissions and setup

Complete example:

my-plugin/package.json

{

"name": "my-plugin",

"version": "1.0.0",

"type": "module",

"main": "./src/index.ts",

"command": "./src/command.ts",

"kazibee": {

"permissions": "./permissions.json",

"setup": "./setup.ts"

}

}

Setup scripts

The optional setup field points to a script that runs once at install or link time, before permission prompting. The script receives an env object and can set key-value pairs that become SYSTEM-level environment variables for the tool.

SYSTEM values have the lowest priority and are overridable by GLOBAL, ENV, and LOCAL sources. Use setup scripts to provide sensible defaults that users can override.

my-plugin/setup.ts

export default async (env: Record<string, string>) => {

env.DATABASE_URL = "sqlite://local.db";

env.DEFAULT_TIMEOUT = "5000";

};

The setup script runs in the host process (not the sandbox). Existing env values are passed in so the script can modify or extend them on subsequent installs.

Kazibee

Bounded AI execution. Free and open source.