Documentation Index
Fetch the complete documentation index at: https://docs.wednesdayai.dev/llms.txt
Use this file to discover all available pages before exploring further.
Plugin SDK
The plugin SDK is the stable API surface for WednesdayAI extensions. Plugins import fromopenclaw/plugin-sdk — never from core internals.
Installation
The SDK is available as a peer dependency. Add it to your plugin’sdevDependencies or peerDependencies:
openclaw to dependencies — it must be the version installed by the gateway, not a separate copy.
Importing from the SDK
openclaw/src/... or relative paths into core. Those are internal APIs that can change without notice.
Core types
ChannelPlugin<TAccount>
The contract for channel adapter plugins:
ToolDefinition
Define a tool the agent can call:
HookContext
Passed to hook handlers:
Schema rules
WednesdayAI uses@sinclair/typebox for tool input schemas. Pin to exact version 0.34.48:
- No
Type.Union,anyOf,oneOf, orallOfin tool input schemas - Use
Type.Optional(...)instead of... | null - Use
stringEnum/optionalStringEnum(Type.Unsafe) for string enumerations - No
anyin SDK exports — all exported types must be fully typed
Plugin manifest
Each plugin package must have an"openclaw" key in package.json:
Runtime and dependencies
- No
workspace:*independencies— your plugin must install cleanly withnpm install --omit=dev. - Runtime deps go in
dependencies; everything else indevDependenciesorpeerDependencies. - Extensions under
extensions/in the repo are workspace packages with their ownpackage.json. They are excluded from the root Oxlint config — manage your own linting.
Extending the SDK surface
When you need a type or contract that is not yet exported fromplugin-sdk:
- Do not import it from core internals — that creates a hard coupling.
- Open an issue or PR to add it to
src/plugin-sdk/with proper documentation. - Keep exports typed and documented. No
any.