Plugin SDK Subpaths: Public and Private Entrypoints

Catalog of plugin SDK subpaths, distinguishing public exports from private local-only helpers. Essential for plugin developers and maintainers tracking the SDK surface.

Read this when

  • Choosing the right plugin-sdk subpath for a plugin import
  • Auditing bundled-plugin subpaths and helper surfaces

The plugin SDK exposes a narrow set of public subpaths, alongside bundled helpers that exist only inside the repository. Everything under openclaw/plugin-sdk/ falls into one of these two categories. This page documents both, and flags anything that is private to the local environment. Three files mark the dividing line:

  • scripts/lib/plugin-sdk-entrypoints.json: the maintained inventory of entrypoints that the build compiles.
  • scripts/lib/plugin-sdk-private-local-only-subpaths.json: internal subpaths that are kept out of the typed, documented SDK. Production entries stay available as JavaScript-only host runtime exports for separately published official plugins; test-only entries are not exported at all.
  • scripts/lib/plugin-sdk-entries.mts: derived metadata for public and private exports, supported bundled facades, and public surfaces owned by plugins.

Maintainers track the public export count through pnpm plugin-sdk:surface and the compatibility queue through pnpm plugins:boundary-report:summary.

For guidance on writing plugins, refer to Plugin SDK overview.

Plugin entry

SubpathKey exports
plugin-sdk/plugin-entrydefinePluginEntry
plugin-sdk/coredefineChannelPluginEntry, createChatChannelPlugin, createChannelPluginBase, defineSetupPluginEntry, buildChannelConfigSchema, buildJsonChannelConfigSchema, resolveTailscalePublishedHost
plugin-sdk/provider-entryPrivate-local after July 2026; defineSingleProviderPluginEntry
plugin-sdk/migrationPrivate-local after July 2026; Migration provider item helpers such as createMigrationItem, reason constants, item status markers, redaction helpers, and summarizeMigrationItems
plugin-sdk/migration-runtimePrivate-local after July 2026; Runtime migration helpers such as copyMigrationFileItem, resolvePlannedMigrationTargets, withCachedMigrationConfigRuntime, and writeMigrationReport
plugin-sdk/healthDoctor health-check registration, detection, repair, selection, severity, and finding types for bundled health consumers

Compatibility and private-local helpers

Only subpaths deprecated in a later window remain exported. The July 2026 aliases and unused subpaths were removed, and bundled-only helpers were dropped from the public package, now marked private-local below. The maintained list is scripts/lib/plugin-sdk-deprecated-public-subpaths.json; CI rejects bundled imports of these compatibility-only subpaths. The broad domain barrels plugin-sdk/agent-runtime, plugin-sdk/channel-lifecycle, plugin-sdk/conversation-runtime, plugin-sdk/hook-runtime, plugin-sdk/media-runtime, plugin-sdk/plugin-runtime, and plugin-sdk/security-runtime are also deprecated, with focused subpaths recommended instead.

OpenClaw's Vitest-backed test-helper subpaths are repo-local only and no longer package exports: agent-runtime-test-contracts, channel-contract-testing, channel-target-testing, channel-test-helpers, plugin-state-test-runtime, plugin-test-api, plugin-test-contracts, plugin-test-runtime, provider-http-test-mocks, provider-test-contracts, reply-payload-testing, sqlite-runtime-testing, test-env, test-fixtures, test-live, test-live-auth, test-media-generation, test-media-understanding, test-node-mocks, and testing. ssrf-runtime-internal is a JavaScript-only host runtime reserved for exact trusted local-service plugins; it is not a public plugin authoring API.

Bundled plugin helper subpaths

Bundled-only helper modules became private-local following the July 2026 cleanup. The package contract guardrails identify which bundled facades stay publicly supported until generic contracts take over. These facades are marked deprecated for fresh code; check the notes in each row below.

Channel subpaths

SubpathKey exports
plugin-sdk/channel-coredefineChannelPluginEntry, defineSetupPluginEntry, createChatChannelPlugin, createChannelPluginBase, createChannelConfigUiHints
plugin-sdk/json-schema-runtimePrivate-local after July 2026; Cached JSON Schema validation helper for plugin-owned schemas
plugin-sdk/channel-setupdefineChannelSetupContract, channel-owned setup field/input types, createOptionalChannelSetupSurface, createOptionalChannelSetupAdapter, createOptionalChannelSetupWizard, plus DEFAULT_ACCOUNT_ID, createTopLevelChannelDmPolicy, setSetupChannelEnabled, splitSetupEntries
plugin-sdk/channel-dm-policycreateChannelDmPolicy for account-aware setup policy descriptors
plugin-sdk/setupShared setup wizard helpers, setup translator, allowlist prompts, setup status builders
plugin-sdk/setup-runtimedefineChannelSetupContract, createSetupTranslator, createPatchedAccountSetupAdapter, createEnvPatchedAccountSetupAdapter, createSetupInputPresenceValidator, noteChannelLookupFailure, noteChannelLookupSummary, promptResolvedAllowFrom, splitSetupEntries, createAllowlistSetupWizardProxy, createDelegatedSetupWizardProxy
plugin-sdk/setup-toolsformatCliCommand, detectBinary, extractArchive, resolveBrewExecutable, formatDocsLink, CONFIG_DIR
plugin-sdk/archiveextractArchive, readArchiveEntry, archive limits and entry kinds
plugin-sdk/root-walkwalkRootDirectory, root-walk options and entries
plugin-sdk/secret-filecreateSecretFileAtomic, synchronous and asynchronous secret reads
plugin-sdk/account-coreMulti-account config/action-gate helpers, default-account fallback helpers
plugin-sdk/account-idDEFAULT_ACCOUNT_ID, account-id normalization helpers
plugin-sdk/account-resolutionAccount lookup + default-fallback helpers
plugin-sdk/account-helpersNarrow account-list/account-action helpers
plugin-sdk/access-groupsPrivate-local after July 2026; Access-group allowlist parsing and redacted group diagnostics helpers
plugin-sdk/channel-pairingcreateChannelPairingController
plugin-sdk/channel-reply-pipelineDeprecated compatibility facade. Use plugin-sdk/channel-outbound.
plugin-sdk/channel-config-helperscreateHybridChannelConfigAdapter, resolveChannelDmAccess, resolveChannelDmAllowFrom, resolveChannelDmPolicy, normalizeChannelDmPolicy, normalizeLegacyDmAliases
plugin-sdk/channel-config-schemaShared channel config schema primitives, plus Zod and direct JSON/TypeBox builders
plugin-sdk/bundled-channel-config-schemaPrivate-local after July 2026; Bundled OpenClaw channel config schemas for maintained bundled plugins only
plugin-sdk/chat-channel-idsPrivate-local after July 2026; BUNDLED_CHAT_CHANNEL_IDS, BUNDLED_CHAT_CHANNEL_ENVELOPE_PREFIXES, ChatChannelId. Canonical bundled/official chat channel ids and formatter labels/aliases for plugins that need to recognize envelope-prefixed text without hardcoding their own table.
plugin-sdk/channel-policyresolveChannelGroupRequireMention
plugin-sdk/channel-ingress-runtimeExperimental high-level channel ingress runtime resolver, implicit-mention policy resolver, and route fact builders for migrated channel receive paths. Prefer this over assembling effective allowlists, command allowlists, and legacy projections in each plugin. See Channel ingress API.
plugin-sdk/channel-lifecycleDeprecated compatibility facade. Use plugin-sdk/channel-outbound.
plugin-sdk/channel-outboundMessage lifecycle contracts plus reply pipeline options, receipts, live preview/streaming, lifecycle helpers, outbound identity, payload planning, durable sends, and message-send context helpers. See Channel outbound API.
plugin-sdk/channel-messageDeprecated compatibility alias for plugin-sdk/channel-outbound.
plugin-sdk/inbound-envelopeShared inbound route + envelope builder helpers
plugin-sdk/inbound-event-deliveryProcess-local correlation between active inbound events and successful channel sends
plugin-sdk/inbound-reply-dispatchDeprecated compatibility shim for dispatchInboundReplyWithBase; its compatibility-ledger gate is the next Plugin SDK major, not a calendar date. Use plugin-sdk/channel-inbound for inbound runners and plugin-sdk/channel-outbound for message delivery helpers.
plugin-sdk/messaging-targetsDeprecated target parsing alias; use plugin-sdk/channel-targets
plugin-sdk/outbound-mediaPrivate-local after July 2026; Shared outbound media loading and hosted-media state helpers
plugin-sdk/poll-runtimePrivate-local after July 2026; Narrow poll normalization helpers
plugin-sdk/thread-bindings-runtimePrivate-local after July 2026; Thread-binding lifecycle and adapter helpers
plugin-sdk/agent-media-payloadDeprecated compatibility facade for legacy Media* payload projection. Pass ordered facts through MsgContext.media / toInboundMediaFacts(...); import local-root policy from plugin-sdk/media-local-roots.
plugin-sdk/conversation-runtimeDeprecated broad barrel for conversation/thread binding, pairing, and configured-binding helpers; prefer focused binding subpaths such as plugin-sdk/thread-bindings-runtime and plugin-sdk/session-binding-runtime
plugin-sdk/runtime-group-policyRuntime group-policy resolution helpers
plugin-sdk/channel-statusShared channel status snapshot/summary helpers
plugin-sdk/channel-config-primitivesNarrow channel config-schema primitives
plugin-sdk/channel-config-writesPrivate-local after July 2026; Channel config-write authorization helpers
plugin-sdk/channel-plugin-commonShared channel plugin prelude exports
plugin-sdk/allowlist-config-editAllowlist config edit/read helpers
plugin-sdk/direct-dm-guard-policyPrivate-local after July 2026; Narrow direct-DM pre-crypto guard policy helpers
plugin-sdk/discordDeprecated Discord compatibility facade for published @openclaw/discord@2026.3.13 and tracked owner compatibility; new plugins should use generic channel SDK subpaths
plugin-sdk/telegram-accountDeprecated Telegram account-resolution compatibility facade for tracked owner compatibility; new plugins should use injected runtime helpers or generic channel SDK subpaths
plugin-sdk/interactive-runtimeSemantic message presentation, delivery, and legacy interactive reply helpers. See Message Presentation
plugin-sdk/question-gateway-runtimeResolve runtime-authored ask_user choices through the Gateway from channel interaction handlers
plugin-sdk/channel-inboundShared inbound helpers for event classification, context building, formatting, roots, debounce, mention matching, mention-policy, and inbound logging
plugin-sdk/channel-inbound-debounceNarrow inbound debounce helpers
plugin-sdk/channel-mention-gatingPrivate-local after July 2026; Narrow mention-policy, mention marker, and mention text helpers without the broader inbound runtime surface
plugin-sdk/channel-streaming-configConfig readers for dependency-light channel streaming (getChannelStreamingConfigObject, resolveChannelStreamingNativeTransport), used by doctor contract closures and other control-plane paths that must avoid loading the reply pipeline
plugin-sdk/channel-send-resultTypes for reply results
plugin-sdk/channel-actionsHelpers for channel message actions, plus deprecated native schema helpers retained for plugin compatibility
plugin-sdk/channel-routePrivate-local after July 2026; Shared route normalization, parser-driven target resolution, thread-id stringification, dedupe/compact route keys, parsed-target types, and route/target comparison helpers
plugin-sdk/channel-targetsPrivate-local after July 2026; Target parsing helpers; callers comparing routes should use plugin-sdk/channel-route
plugin-sdk/channel-contractTypes for channel contracts
plugin-sdk/channel-feedbackWiring for feedback and reactions

Channel compatibility subpaths in later windows stay public only until their registry dates. July aliases, including direct-DM access, reply-options, pairing paths, and channel runtime splinters, have been dropped; bundled-only helpers are now private-local.

Provider subpaths

SubpathKey exports
plugin-sdk/provider-entryRestricted to private use after July 2026; defineSingleProviderPluginEntry
plugin-sdk/provider-setupRestricted to private use after July 2026; Curated setup utilities for local and self-hosted providers
plugin-sdk/cli-backendRestricted to private use after July 2026; CLI backend defaults plus watchdog constants
plugin-sdk/provider-auth-runtimeRestricted to private use after July 2026; Provider auth runtime utilities: OAuth loopback flow, token exchange, auth persistence, and API-key resolution
plugin-sdk/provider-oauth-runtimeRestricted to private use after July 2026; Generic provider OAuth callback types, callback-page rendering, PKCE/state helpers, authorization-input parsing, token-expiry helpers, and abort helpers
plugin-sdk/provider-auth-api-keyRestricted to private use after July 2026; API-key onboarding/profile-write helpers like upsertApiKeyProfile
plugin-sdk/provider-auth-resultRestricted to private use after July 2026; Standard OAuth auth-result builder
plugin-sdk/provider-env-varsRestricted to private use after July 2026; Provider auth env-var lookup helpers
plugin-sdk/provider-authcreateProviderApiKeyAuthMethod, ensureApiKeyFromOptionEnvOrPrompt, upsertAuthProfile, upsertApiKeyProfile, writeOAuthCredentials, OpenAI Codex auth-import helpers, deprecated resolveOpenClawAgentDir compatibility export
plugin-sdk/provider-model-sharedRestricted to private use after July 2026; ProviderReplayFamily, buildProviderReplayFamilyHooks, resolveFamilyForwardCompatModel, selectPreferredLocalModelId, normalizeModelCompat, parseModelRef, shared replay-policy builders, provider-endpoint helpers, and shared model-id normalization helpers
plugin-sdk/provider-catalog-live-runtimeRestricted to private use after July 2026; Live provider model catalog helpers for guarded /models-style discovery: buildLiveModelProviderConfig, provider-owned projectRows, fetchLiveProviderModelRows, getCachedLiveProviderModelRows, fetchLiveProviderModelIds, LiveModelCatalogHttpError, clearLiveCatalogCacheForTests, TTL cache, and static fallback
plugin-sdk/provider-catalog-runtimeProvider catalog augmentation runtime hook and plugin-provider registry seams for contract tests
plugin-sdk/provider-catalog-sharedRestricted to private use after July 2026; findCatalogTemplate, buildSingleProviderApiKeyCatalog, buildManifestModelProviderConfig, supportsNativeStreamingUsageCompat, applyProviderNativeStreamingUsageCompat
plugin-sdk/provider-httpRestricted to private use after July 2026; Generic provider HTTP/endpoint capability helpers, provider HTTP errors, and audio transcription multipart form helpers
plugin-sdk/provider-web-fetch-contractRestricted to private use after July 2026; Narrow web-fetch config/selection contract helpers such as enablePluginInConfig and WebFetchProviderPlugin
plugin-sdk/provider-web-fetchRestricted to private use after July 2026; Web-fetch provider registration/cache helpers
plugin-sdk/provider-web-search-config-contractRestricted to private use after July 2026; Narrow web-search config/credential helpers for providers that do not need plugin-enable wiring
plugin-sdk/provider-web-search-contractRestricted to private use after July 2026; Narrow web-search config/credential contract helpers such as createWebSearchProviderContractFields, enablePluginInConfig, resolveProviderWebSearchPluginConfig, and scoped credential setters/getters
plugin-sdk/provider-web-searchRestricted to private use after July 2026; Web-search provider registration/cache/runtime helpers
plugin-sdk/embedding-providersRestricted to private use after July 2026; General embedding provider types and read helpers, including EmbeddingProviderAdapter, getEmbeddingProvider(...), and listEmbeddingProviders(...); plugins register providers through api.registerEmbeddingProvider(...) so manifest ownership is enforced
plugin-sdk/provider-toolsRestricted to private use after July 2026; ProviderToolCompatFamily, buildProviderToolCompatFamilyHooks, and DeepSeek/Gemini/OpenAI schema cleanup + diagnostics
plugin-sdk/provider-usagePrivate-local after July 2026; Provider usage snapshot types, shared usage fetch helpers, and provider fetchers such as fetchClaudeUsage
plugin-sdk/provider-streamPrivate-local after July 2026; ProviderStreamFamily, buildProviderStreamFamilyHooks, composeProviderStreamWrappers, stream wrapper types, plain-text tool-call compat, and shared Anthropic/Google/Kilocode/MiniMax/Moonshot/OpenAI/OpenRouter/Z.AI wrapper helpers
plugin-sdk/provider-stream-sharedPrivate-local after July 2026; Public shared provider stream wrapper helpers including composeProviderStreamWrappers, createOpenAICompatibleCompletionsThinkingOffWrapper, createPlainTextToolCallCompatWrapper, createPayloadPatchStreamWrapper, createToolStreamWrapper, normalizeOpenAICompatibleReasoningPayload, setQwenChatTemplateThinking, and Anthropic/DeepSeek/OpenAI-compatible stream utilities
plugin-sdk/provider-transport-runtimePrivate-local after July 2026; Native provider transport helpers such as guarded fetch, tool-result text extraction, transport message transforms, and writable transport event streams
plugin-sdk/provider-onboardPrivate-local after July 2026; Onboarding config patch helpers
plugin-sdk/global-singletonPrivate-local after July 2026; Process-local singleton/map/cache helpers
plugin-sdk/group-activationPrivate-local after July 2026; Narrow group activation mode and command parsing helpers

Provider usage snapshots typically report one or more quota windows, each carrying a label, percent used, and an optional reset time. When a provider exposes balance or account-state text instead of resettable quota windows, it should return summary with an empty windows array rather than inventing percentages. OpenClaw shows that summary text in status output; reserve error for cases where the usage endpoint failed or provided no usable usage data.

Auth and security subpaths

SubpathKey exports
plugin-sdk/command-authDeprecated broad command authorization surface (resolveControlCommandGate, command registry helpers including dynamic argument menu formatting, sender-authorization helpers); use channel ingress/runtime authorization or command-status helpers
plugin-sdk/command-statusCommand/help message builders such as buildCommandsMessagePaginated and buildHelpMessage
plugin-sdk/approval-auth-runtimeApprover resolution and same-chat action-auth helpers
plugin-sdk/approval-client-runtimeNative exec approval profile/filter helpers
plugin-sdk/approval-delivery-runtimeNative approval capability/delivery adapters
plugin-sdk/approval-gateway-runtimeShared approval gateway resolver
plugin-sdk/approval-reference-runtimePrivate-local after July 2026; Deterministic durable-locator helper for transport-limited approval callbacks
plugin-sdk/approval-handler-adapter-runtimeLightweight native approval adapter loading helpers for hot channel entrypoints
plugin-sdk/approval-handler-runtimeBroader approval handler runtime helpers; prefer the narrower adapter/gateway seams when they are enough
plugin-sdk/approval-native-runtimeNative approval target, account-binding, route-gate, forwarding fallback, and local native exec prompt suppression helpers
plugin-sdk/approval-reaction-runtimePrivate-local after July 2026; Hardcoded approval reaction bindings, reaction prompt payloads, reaction target stores, reaction hint text helpers, and compatibility export for local native exec prompt suppression
plugin-sdk/approval-reply-runtimeExec/plugin approval reply payload helpers
plugin-sdk/approval-runtimeExec/plugin approval payload helpers, approval-capability builders, approval auth/profile helpers, native approval routing/runtime helpers, and structured approval display helpers such as formatApprovalDisplayPath
plugin-sdk/command-auth-nativeNative command auth, dynamic argument menu formatting, and native session-target helpers
plugin-sdk/command-detectionShared command detection helpers
plugin-sdk/command-primitives-runtimeLightweight command text predicates for hot channel paths
plugin-sdk/command-surfacePrivate-local after July 2026; Command-body normalization and command-surface helpers
plugin-sdk/allow-fromAllow-from parsing, normalization, resolution, and matching helpers
plugin-sdk/provider-auth-login-flow-runtimePrivate-local after July 2026; Lazy provider auth login flow helpers for private channel and Web UI device-code pairing
plugin-sdk/channel-secret-basic-runtimeNarrow secret-contract exports and target-registry builders for non-TTS channel/plugin secret surfaces
plugin-sdk/channel-secret-tts-runtimePrivate-local after July 2026; Narrow nested channel TTS secret assignment helpers
plugin-sdk/secret-ref-runtimeNarrow SecretRef typing, resolution, setup-plan construction, and setup CLI scaffolding for plugin-owned secret providers
plugin-sdk/security-runtimeDeprecated broad barrel for trust, DM gating, root-bounded file/path helpers including create-only writes, sync/async atomic file replacement, sibling temp writes, cross-device move fallback, private file-store helpers, symlink-parent guards, external-content, sensitive text redaction, constant-time secret comparison, and secret-collection helpers; prefer focused security/SSRF/secret subpaths
plugin-sdk/ssrf-policyHost allowlist and private-network SSRF policy helpers
plugin-sdk/ssrf-dispatcherPrivate-local after July 2026; Narrow pinned-dispatcher helpers without the broad infra runtime surface
plugin-sdk/ssrf-runtimePinned-dispatcher, SSRF-guarded fetch, SSRF error, SSRF policy helpers, and loopback/private host classification
plugin-sdk/secret-inputSecret input parsing helpers
plugin-sdk/webhook-ingressWebhook request/target helpers and raw websocket/body coercion
plugin-sdk/webhook-request-guardsRequest body size/timeout helpers, canonical Gateway browser-origin acceptance via resolveAcceptedBrowserOrigin, and runDetachedWebhookWork for tracked post-ack processing

Use isLoopbackHost(host) when a plugin needs to allow connections solely from the local host. This option recognizes localhost, IPv4 loopback literals spanning 127.0.0.0/8, ::1, bracketed IPv6, and IPv4-mapped IPv6 loopback literals. Instead of checking text prefixes, it parses the IP literals themselves, meaning a DNS name like 127.0.0.1.evil.com won't be treated as loopback. Reserve isPrivateOrLoopbackHost(host) for cases where private-network hosts, including RFC 1918 addresses, are acceptable as well.

Runtime and storage subpaths

SubpathKey exports
plugin-sdk/runtimeRuntime, logging, and backup utilities, plus plugin install-path warnings and process helpers
plugin-sdk/runtime-envCompact runtime environment, logger, timeout, retry, and backoff utilities
plugin-sdk/browser-configPrivate-local after July 2026; Supported browser config facade for normalized profiles and defaults, CDP URL parsing, and browser-control auth utilities
plugin-sdk/agent-harness-task-runtimePrivate-local after July 2026; Generic task lifecycle and completion delivery utilities for harness-backed agents using a host-issued task scope
plugin-sdk/agent-harness-runtimeAgent-harness runtime utilities. acquireSessionWriteLock, resolveSessionWriteLockAcquireTimeoutMs, resolveSessionWriteLockOptions, and SessionWriteLockAcquireTimeoutConfig are deprecated no-op compatibility exports slated for removal in the 2026.10 release train. They no longer block or create lock sidecars; harnesses should rely on OpenClaw's per-session lane plus the durable writer claim and in-transaction fence.
plugin-sdk/codex-mcp-projectionPrivate-local after July 2026; Bundled Codex helper for mapping user MCP server config into Codex thread config; not for third-party plugins
plugin-sdk/native-hook-relay-runtimePrivate-local bundled runtime helper for retained native direct-child hook policy; not for third-party plugins
plugin-sdk/codex-session-transcript-runtimePrivate-local bundled Codex helper for serializing transcript-mirror writes; not for third-party plugins
plugin-sdk/channel-runtime-contextGeneric channel runtime-context registration and lookup utilities
plugin-sdk/runtime-storecreatePluginRuntimeStore
plugin-sdk/plugin-command-runtimeRegistry-generation-bound native plugin command candidates, terminal catalog decisions, and exact selected dispatch execution
plugin-sdk/plugin-runtimeDeprecated broad barrel for plugin command, hook, HTTP, and interactive helpers; prefer focused plugin runtime subpaths
plugin-sdk/hook-runtimeDeprecated broad barrel for webhook and internal hook pipeline helpers; prefer focused hook and plugin runtime subpaths
plugin-sdk/lazy-runtimeLazy runtime import and binding utilities such as createLazyRuntimeModule, createLazyRuntimeMethod, and createLazyRuntimeSurface
plugin-sdk/process-runtimePrivate-local after July 2026; Process exec utilities
plugin-sdk/node-hostPrivate-local after July 2026; Node-host executable resolution and PTY resume utilities
plugin-sdk/cli-argvDependency-light root-option parsing for CLI metadata, including getRootOptionAwareCommandPath and consumeRootOptionToken
plugin-sdk/cli-runtimePrivate-local after July 2026; Deprecated broad barrel for CLI formatting, wait, version, argument-invocation, and lazy command-group helpers; prefer focused CLI and runtime subpaths
plugin-sdk/qa-runner-runtimePrivate-local after July 2026; Supported facade exposing plugin QA scenarios through the CLI command surface
plugin-sdk/tts-runtimePrivate-local after July 2026; Supported facade for text-to-speech config schemas and runtime utilities
plugin-sdk/gateway-method-runtimeReserved Gateway method dispatch helper for plugin HTTP routes that declare contracts.gatewayMethodDispatch: ["authenticated-request"]
plugin-sdk/gateway-runtimeGateway client, event-loop-ready client start helper, gateway CLI RPC, gateway protocol errors, advertised LAN host resolution, and channel-status patch utilities
plugin-sdk/config-contractsFocused config surface for plugin config shapes such as OpenClawConfig and channel and provider config types, plus the dependency-light runtime helper resolveGatewayPublicOrigin(cfg) which returns the normalized gateway.publicOrigin (bare http(s) origin, optional reverse-proxy path, no query or hash) or undefined when unset, for building links back to the Gateway
plugin-sdk/plugin-config-runtimeDeprecated compatibility facade for runtime plugin-config helpers; new plugins use api.pluginConfig plus focused config contracts, snapshots, and mutation utilities
plugin-sdk/config-mutationTransactional config mutation utilities such as mutateConfigFile, replaceConfigFile, and logConfigUpdated
plugin-sdk/message-tool-delivery-hintsPrivate-local after July 2026; Shared message-tool delivery metadata hint strings
plugin-sdk/runtime-config-snapshotCurrent process config snapshot utilities such as getRuntimeConfig, getRuntimeConfigSnapshot, and test snapshot setters
plugin-sdk/text-autolink-runtimePrivate-local after July 2026; File-reference autolink detection without the broad text barrel
plugin-sdk/reply-runtimeShared inbound and reply runtime utilities, chunking, dispatch, heartbeat, reply planner
plugin-sdk/reply-dispatch-runtimeNarrow reply dispatch and finalize and conversation-label utilities
plugin-sdk/reply-historyShared short-window reply-history utilities. New message-turn code should use createChannelHistoryWindow; lower-level map utilities remain deprecated compatibility exports only
plugin-sdk/reply-referencePrivate-local after July 2026; createReplyReferencePlanner
plugin-sdk/reply-chunkingNarrow text and markdown chunking utilities
plugin-sdk/agent-scope-runtimeFocused agent ID, directory, default-agent, and session-agent scope resolution utilities for dependency-light control-plane and migration paths
plugin-sdk/session-store-runtimeSession workflow utilities (getSessionEntry, listSessionEntries, patchSessionEntry, upsertSessionEntry), repair and lifecycle helpers (deleteSessionEntry, cleanupSessionLifecycleArtifacts, resolveSessionStoreBackupPaths), marker helpers for transitional sessionFile values, bounded recent user/assistant transcript text reads keyed by session identity, session store path and session-key helpers, and updated-at reads, with no broad config writes or maintenance imports
plugin-sdk/session-catalogExternal session catalog contracts, projections, adoption helpers, and history import
plugin-sdk/session-discussionExternal session discussion provider contracts, registration, and canonical Control UI session path building
plugin-sdk/session-transcript-runtimePrivate-local after July 2026; Transcript identity, bounded raw and visible cursors, scoped target/read/write helpers, visible message-entry projection, update publishing, write locks, and transcript memory hit keys
plugin-sdk/sqlite-runtimePrivate-local after July 2026; Focused SQLite agent-schema, path, and transaction helpers for first-party runtime, without database lifecycle controls
plugin-sdk/cron-store-runtimePrivate-local after July 2026; Cron store path/load/save helpers
plugin-sdk/state-pathsState/OAuth dir path helpers
plugin-sdk/plugin-state-runtimePrivate-local after July 2026; Plugin-scoped keyed-state and BLOB contracts plus connection pragma, verified WAL maintenance, and atomic STRICT-schema migration helpers. Plugin-state leases were removed; use SQLite transactions and keyed stores instead
plugin-sdk/routingRoute/session-key/account binding helpers such as resolveAgentRoute, buildAgentSessionKey, and resolveDefaultAgentBoundAccountId
plugin-sdk/status-helpersShared channel/account status summary helpers, runtime-state defaults, and issue metadata helpers
plugin-sdk/target-resolver-runtimePrivate-local after July 2026; Shared target resolver helpers
plugin-sdk/string-normalization-runtimePrivate-local after July 2026; Slug/string normalization helpers
plugin-sdk/request-urlPrivate-local after July 2026; Extract string URLs from fetch/request-like inputs
plugin-sdk/run-commandTimed command runner with normalized stdout/stderr results
plugin-sdk/param-readersCommon tool/CLI param readers
plugin-sdk/tool-pluginDefine a simple typed agent-tool plugin and expose static metadata for manifest generation
plugin-sdk/tool-payloadPrivate-local after July 2026; Extract normalized payloads from tool result objects
plugin-sdk/tool-resultsTyped text and JSON agent tool result builders
plugin-sdk/tool-sendExtract canonical send target fields from tool args
plugin-sdk/sandboxPrivate-local after July 2026; Sandbox backend types and SSH/OpenShell command helpers, including fail-fast exec command preflight
plugin-sdk/temp-pathShared temp-download path helpers and private secure temp workspaces
plugin-sdk/logging-coreSubsystem logger and redaction helpers
plugin-sdk/markdown-table-runtimePrivate-local after July 2026; Markdown table mode and conversion helpers
plugin-sdk/model-session-runtimeModel/session override helpers such as applyModelOverrideToSessionEntry and resolveAgentMaxConcurrent
plugin-sdk/talk-config-runtimePrivate-local after July 2026; Talk provider config resolution helpers
plugin-sdk/json-storeSmall JSON state read/write helpers
plugin-sdk/json-unsafe-integersPrivate-local after July 2026; JSON parsing helpers that preserve unsafe integer literals as strings
plugin-sdk/file-lockPrivate-local after July 2026; Owner-scoped re-entrant file-lock helpers plus Doctor-safe reclaim of definitely stale, unchanged retired lock sidecars. Nested acquisitions share a refcount only when callers pass the same logical-operation reentrantOwner; ownerless or different-owner calls contend normally
plugin-sdk/persistent-dedupeDisk-backed dedupe cache helpers
plugin-sdk/ingress-effect-onceDurable claim/commit guard for non-idempotent ingress side effects
plugin-sdk/acp-runtimePrivate-local after July 2026; ACP runtime/session and reply-dispatch helpers
plugin-sdk/acp-runtime-backendPrivate-local after July 2026; Lightweight ACP backend registration and reply-dispatch helpers for startup-loaded plugins
plugin-sdk/acp-binding-resolve-runtimePrivate-local after July 2026; Read-only ACP binding resolution without lifecycle startup imports
plugin-sdk/boolean-paramLoose boolean param reader
plugin-sdk/dangerous-name-runtimePrivate-local after July 2026; Dangerous-name matching resolution helpers
plugin-sdk/device-bootstrapDevice bootstrap and pairing token helpers, including BOOTSTRAP_HANDOFF_OPERATOR_SCOPES
plugin-sdk/extension-sharedShared passive-channel, status, and ambient proxy helper primitives
plugin-sdk/models-provider-runtime/models command/provider reply helpers
plugin-sdk/skill-commands-runtimeSkill command listing helpers
plugin-sdk/native-command-registryNative command registry/build/serialize helpers
plugin-sdk/agent-harnessExperimental trusted-plugin surface for low-level agent harnesses: harness types, active-run steer/abort helpers, OpenClaw tool bridge helpers, runtime-plan tool policy helpers, terminal outcome classification, tool progress formatting/detail helpers, and attempt result utilities
plugin-sdk/async-lock-runtimePrivate-local after July 2026; Process-local async lock helper for small runtime state files
plugin-sdk/channel-activity-runtimePrivate-local after July 2026; Channel activity telemetry helper
plugin-sdk/concurrency-runtimePrivate-local after July 2026; Bounded async task concurrency helper
plugin-sdk/dedupe-runtimeHelpers for dedupe caches that live in memory or persist to disk
plugin-sdk/delivery-queue-runtimeRestricted to private use after July 2026; utility for draining outbound messages awaiting delivery
plugin-sdk/file-access-runtimeRestricted to private use after July 2026; safe handling of local files, temp roots, media source paths, and directory durability
plugin-sdk/heartbeat-runtimeRestricted to private use after July 2026; helpers for heartbeat wake-ups, events, and visibility
plugin-sdk/expect-runtimeRestricted to private use after July 2026; assertion utility for required values to enforce provable runtime invariants
plugin-sdk/number-runtimeRestricted to private use after July 2026; utility for coercing numbers
plugin-sdk/secure-random-runtimeRestricted to private use after July 2026; helpers for secure tokens and UUIDs
plugin-sdk/system-event-runtimeRestricted to private use after July 2026; narrow helpers for enqueueing and peeking system events
plugin-sdk/transport-ready-runtimeRestricted to private use after July 2026; helper that waits for transport readiness
plugin-sdk/exec-approvals-runtimeRestricted to private use after July 2026; exec approval policy file helpers that avoid the broad infra-runtime barrel
plugin-sdk/infra-runtimeCompatibility shim marked deprecated; rely on injected runtime APIs or documented typed-public subpaths instead
plugin-sdk/collection-runtimeHelpers for small bounded caches
plugin-sdk/diagnostic-runtimeHelpers for diagnostic flags, events, trace contexts, and normalizing low-cardinality dimensions
plugin-sdk/error-runtimeHelpers for error graphs, formatting, coercing unknown values, and shared error classification, along with PlatformMessageNotDispatchedError and isApprovalNotFoundError
plugin-sdk/fetch-runtimeRestricted to private use after July 2026; helpers for wrapped fetch, proxy handling, EnvHttpProxyAgent options, and pinned lookups
plugin-sdk/runtime-fetchRestricted to private use after July 2026; runtime fetch that respects dispatchers without importing proxy or guarded-fetch modules
plugin-sdk/inline-image-data-url-runtimeRestricted to private use after July 2026; sanitizer for inline image data URLs and signature sniffing helpers that skip the broad media runtime surface
plugin-sdk/response-limit-runtimeRestricted to private use after July 2026; response-body readers bounded by bytes, idle time, and deadlines, without pulling in the broad media runtime surface
plugin-sdk/session-binding-runtimeRestricted to private use after July 2026; current conversation binding state without configured binding routing or pairing stores
plugin-sdk/context-visibility-runtimeRestricted to private use after July 2026; context visibility resolution and supplemental context filtering that avoid broad config or security imports
plugin-sdk/string-coerce-runtimeNarrow coercion and normalization helpers for primitive records and strings, without markdown or logging imports
plugin-sdk/html-entity-runtimeRestricted to private use after July 2026; single-pass decoding of semicolon-terminated HTML5 entities without broad text utilities
plugin-sdk/text-utility-runtimeRestricted to private use after July 2026; low-level text and path helpers, including HTML escaping for five entities
plugin-sdk/widget-htmlDetection of complete documents, size validation, and tool input errors for self-contained HTML widgets
plugin-sdk/host-runtimeRestricted to private use after July 2026; helpers for normalizing hostnames and SCP hosts
plugin-sdk/retry-runtimeRestricted to private use after July 2026; helpers for retry configuration and the retry runner
plugin-sdk/agent-runtimeDeprecated broad barrel for agent directory, identity, and workspace helpers, including resolveAgentDir, resolveDefaultAgentDir, and the deprecated resolveOpenClawAgentDir compatibility export; choose focused agent or runtime subpaths instead
plugin-sdk/directory-runtimeDirectory queries and dedup backed by configuration
plugin-sdk/keyed-async-queueRestricted to private use after July 2026; KeyedAsyncQueue

Capability and testing subpaths

SubpathKey exports
plugin-sdk/media-runtimeA deprecated broad media barrel that aggregates saveRemoteMedia, saveResponseMedia, readRemoteMediaBuffer, and the deprecated fetchRemoteMedia; switch to plugin-sdk/media-store, plugin-sdk/media-mime, plugin-sdk/outbound-media, and capability runtime subpaths, and when a URL needs to become OpenClaw media, rely on store helpers rather than buffer reads
plugin-sdk/media-local-rootsPurpose-built getAgentScopedMediaLocalRoots(...) and policy-aware getAgentScopedMediaLocalRootsForSources(...) utilities for reading plugin-owned local media
plugin-sdk/media-mimeTight MIME normalization, file-extension mapping, MIME detection, and media-kind utilities
plugin-sdk/media-storeTight media store utilities, for instance saveMediaBuffer and saveMediaStream
plugin-sdk/media-generation-runtimePrivate-local after July 2026; shared media-generation failover utilities, candidate selection, and missing-model messaging
plugin-sdk/media-understandingDeprecated compatibility facade for media-understanding provider types and utilities; new providers register via the injected plugin API and keep request helpers plugin-owned
plugin-sdk/text-chunkingOutbound text and offset-preserving range chunking, markdown chunking/render utilities, quote-aware HTML tag tokenization, markdown table conversion, directive-tag stripping, and safe-text utilities
plugin-sdk/speechPrivate-local after July 2026; speech provider types plus provider-facing directive, registry, validation, OpenAI-compatible TTS builder, and speech helper exports
plugin-sdk/speech-corePrivate-local after July 2026; shared speech provider types, registry, directive, normalization, and speech helper exports
plugin-sdk/speech-settingsLightweight TTS config resolution and normalization primitives without provider registries or synthesis runtime
plugin-sdk/realtime-transcriptionPrivate-local after July 2026; realtime transcription provider types, registry helpers, and shared WebSocket session helper
plugin-sdk/realtime-bootstrap-contextPrivate-local after July 2026; realtime profile bootstrap helper for bounded IDENTITY.md, USER.md, and SOUL.md context injection
plugin-sdk/realtime-voice-audio-queuePrivate-local JavaScript-only host runtime for bundled or separately published official plugins; narrow bounded audio queue seam for lazy realtime voice provider facades without importing the broader realtime voice runtime; not for third-party plugins
plugin-sdk/realtime-voice-activationPrivate-local; dependency-light realtime-voice activation-name helpers (normalize, match, word-count, sort) for doctor contract closures and other control-plane paths that must not load the realtime voice runtime
plugin-sdk/realtime-voicePrivate-local after July 2026; realtime voice provider types, registry helpers, shared audio-energy/speech-onset gates, and realtime voice behavior helpers, including the transport-independent session harness and output activity tracking. For official runtime consumers, sender-auth contract revision 1 forwards ingress-authenticated senderId and senderIsOwner unchanged; ingress owns authentication, and consumers requiring the handoff must fail closed on other revisions.
plugin-sdk/meeting-runtimeBrowser-meeting session runtime, realtime audio engines/transports, MeetingPlatformAdapter, browser/node control, agent-consult, voice-call delegation, setup checks, and SoX command helpers
plugin-sdk/image-generationPrivate-local after July 2026; image generation provider types plus image asset/data URL helpers and the OpenAI-compatible image provider builder
plugin-sdk/image-generation-corePrivate-local after July 2026; shared image-generation types, failover, auth, and registry helpers
plugin-sdk/music-generationPrivate-local after July 2026; music generation provider/request/result types
plugin-sdk/video-generationPrivate-local after July 2026; video generation provider/request/result types
plugin-sdk/video-generation-corePrivate-local after July 2026; shared video-generation types, failover helpers, provider lookup, and model-ref parsing
plugin-sdk/transcriptsPrivate-local after July 2026; shared transcript source provider types, registry helpers, meeting-provider bridge factory, session descriptors, and utterance metadata
plugin-sdk/webhook-targetsPrivate-local after July 2026; webhook target registry and route-install helpers
plugin-sdk/web-mediaShared remote/local media loading helpers
plugin-sdk/plugin-test-apiRepo-local minimal createTestPluginApi helper for direct plugin registration unit tests without importing repo test helper bridges
plugin-sdk/agent-runtime-test-contractsRepo-local native agent-runtime adapter contract fixtures for auth, delivery, fallback, tool-hook, prompt-overlay, schema, and transcript projection tests
plugin-sdk/channel-test-helpersRepo-local channel-oriented test helpers for generic actions/setup/status contracts, directory assertions, account startup lifecycle, send-config threading, runtime mocks, status issues, outbound delivery, and hook registration
plugin-sdk/channel-target-testingRepo-local shared target-resolution error-case suite for channel tests
plugin-sdk/channel-contract-testingRepo-local narrow channel contract test helpers without the broad testing barrel
plugin-sdk/plugin-test-contractsRepo-local plugin package, registration, public artifact, runtime API, and import side-effect contract helpers
plugin-sdk/plugin-state-test-runtimeRepo-local plugin state store, ingress queue, and state DB test helpers
plugin-sdk/provider-test-contractsRepo-local provider runtime, auth, discovery, onboard, catalog, wizard, media capability, replay policy, realtime STT live-audio, web-search/fetch, and stream contract helpers
plugin-sdk/provider-http-test-mocksPrivate-local after July 2026; repo-local opt-in Vitest HTTP/auth mocks for provider tests that exercise plugin-sdk/provider-http
plugin-sdk/reply-payload-testingRepo-local helpers for attaching metadata to reply payload fixtures
plugin-sdk/sqlite-runtime-testingRepo-local SQLite lifecycle helpers for first-party tests
plugin-sdk/test-stateRepo-local isolated OpenClaw state, config, workspace, environment, and auth-profile fixtures for plugin tests
plugin-sdk/test-fixturesRepo-local generic CLI runtime capture, direct-import smoke, sandbox context, skill writer, agent-message, system-event, module reload, bundled plugin path, terminal-text, chunking, auth-token, and typed-case fixtures
plugin-sdk/test-node-mocksRepo-local focused Node builtin mock helpers for use inside Vitest vi.mock("node:*") factories

Memory subpaths

SubpathKey exports
plugin-sdk/memory-core-host-embedding-registryRestricted to private use after July 2026; helper registry for lightweight memory embedding providers
plugin-sdk/memory-core-host-engine-curatedRestricted to private use, focused on curated-memory annotation parsing for doctor and promotion paths
plugin-sdk/memory-core-host-engine-foundationCore exports for the memory host foundation engine
plugin-sdk/memory-core-host-engine-fsRestricted to private use, focused on filesystem and user-path helpers for doctor migrations
plugin-sdk/memory-core-host-engine-embeddingsRestricted to private use after July 2026; memory host embedding contracts, registry access, and generic batch/remote helpers. registerMemoryEmbeddingProvider on this surface is deprecated; use the generic embedding provider API for new providers.
plugin-sdk/memory-core-host-engine-sessionsRestricted to private use after July 2026; memory session transcript and query helpers
plugin-sdk/memory-core-host-engine-schemaRestricted to private use, focused on memory index schema and sqlite-vec helpers for doctor migrations
plugin-sdk/memory-core-host-engine-storageRestricted to private use after July 2026; memory host storage engine exports
plugin-sdk/memory-core-host-secretRestricted to private use after July 2026; memory host secret helpers
plugin-sdk/memory-core-host-statusRestricted to private use after July 2026; memory host status helpers
plugin-sdk/memory-core-host-runtime-cliRestricted to private use after July 2026; memory host CLI runtime helpers
plugin-sdk/memory-core-host-runtime-coreRestricted to private use after July 2026; memory host core runtime helpers
plugin-sdk/memory-core-host-runtime-filesRestricted to private use after July 2026; memory host file/runtime helpers
plugin-sdk/memory-host-coreDeprecated compatibility facade for vendor-neutral memory host helpers. New memory plugins use injected memory capabilities and host-prepared prompts; companion plugins still use the retained facade for public-artifact discovery until a focused read seam exists.
plugin-sdk/memory-host-eventsRestricted to private use after July 2026; vendor-neutral alias for memory host event journal helpers
plugin-sdk/memory-host-markdownRestricted to private use after July 2026; shared managed-markdown helpers for memory-adjacent plugins
plugin-sdk/memory-host-searchRestricted to private use after July 2026; active memory runtime facade for search-manager access

Reserved bundled-helper subpaths

Reserved bundled-helper SDK subpaths are narrow owner-specific surfaces for bundled plugin code. They are tracked in the SDK inventory so package builds and aliasing stay deterministic, but they are not general plugin authoring APIs. New reusable host contracts should use generic SDK subpaths such as plugin-sdk/gateway-runtime and plugin-sdk/ssrf-runtime.

SubpathOwner and purpose
plugin-sdk/codex-mcp-projectionRestricted to private use after July 2026; bundled Codex plugin helper for projecting user MCP server config into Codex app-server thread config (default-only package export)
plugin-sdk/codex-session-transcript-runtimeRestricted to private use; bundled Codex plugin helper for serializing transcript-mirror writes (default-only package export)
plugin-sdk/ssrf-runtime-internalRestricted to private use; host helper for configured loopback requests owned by bundled Ollama/browser and the exact official @openclaw/llama-cpp-provider package (default-only package export)
5,671 words · updated Aug 17, 2026