Configuration Reference
Node and Package Manager
.nvmrcpins the development baseline to Node24.14.1packageManagerpinsnpm@11.12.1- runtime verification scripts ensure local and CI execution stay aligned with repository policy
TypeScript
- primary authoring target: TypeScript
6.0.3 - Compatibility validation runs on Linux only against the latest stable TypeScript
5.xand6.xreleases. - Do not use TypeScript type assertions or casts anywhere in authored code; banned forms include
as,as unknown, angle-bracket casts, non-null assertions, and double assertions. - source packages compile under
NodeNextmodule settings
Operator and Adapter Configuration
Runtime configuration normalization reads:
GITHUB_OWNERGITHUB_REPOGITHUB_DEFAULT_BRANCHGITHUB_API_BASE_URLGITHUB_WEB_BASE_URLGITHUB_TOKEN_ENVDEVPLAT_STORAGE_ROOTDEVPLAT_ARTIFACT_DIRECTORYDEVPLAT_INDEX_DIRECTORYDEVPLAT_AUDIT_LOG_DIRECTORYDEVPLAT_WORKTREE_ROOTDEVPLAT_DEPLOYMENT_TARGETDEVPLAT_DOCKER_IMAGE_REPOSITORYDEVPLAT_DOCKER_IMAGE_TAGDEVPLAT_HELM_RELEASEDEVPLAT_HELM_NAMESPACEDEVPLAT_HELM_CHART_PATHDEVPLAT_STATE_MOUNT_PATHOPENCLAW_PLUGIN_IDOPENCLAW_GATEWAY_PORTDISCORD_API_BASE_URLDISCORD_APPLICATION_ID(required)DISCORD_CATEGORY_NAMEDISCORD_PUBLIC_KEY(required)DISCORD_BOT_TOKEN(required)DISCORD_DEFAULT_GUILD_IDDISCORD_SPEC_CHANNEL_IDDISCORD_IMPLEMENTATION_CHANNEL_IDDISCORD_PULL_REQUEST_CHANNEL_IDDISCORD_AUDIT_CHANNEL_IDDISCORD_PROJECT_MANAGEMENT_CHANNEL_IDDISCORD_GATEWAY_URLDISCORD_GATEWAY_INTENTSSONAR_ORGANIZATIONSONAR_PROJECT_KEY
The normalized repository runtime config exposes owner, repo, defaultBranch, and repositoryKey. GitHub API submission defaults to https://api.github.com, GitHub web links default to https://github.com, and the token is read from GITHUB_TOKEN unless GITHUB_TOKEN_ENV is overridden. Storage defaults to devplat-state with artifacts, indexes, and audit subdirectories at layout version 1. Worktrees default to devplat-state/worktrees, inherit the configured default branch, and use rebase-or-fast-forward sync. Deployment defaults target local Docker with ghcr.io/vannadii/devplat-openclaw-runtime:latest, Helm release devplat, namespace devplat, chart path deploy/helm/devplat, and state mount /var/lib/devplat. The OpenClaw gateway defaults to loopback token auth on port 18789. Only @vannadii/devplat-storage may directly read or write the runtime state directory.
The Helm chart exposes the Discord Gateway runtime through discordGateway.enabled, discordGateway.url, and discordGateway.intents. Those values render DISCORD_GATEWAY_ENABLED, DISCORD_GATEWAY_URL, and DISCORD_GATEWAY_INTENTS into the runtime container, so Kubernetes deployments can start the private outbound Discord worker without duplicating raw env blocks.
The normalized Discord runtime config also fixes:
- API version
v10 - interaction transport
gateway, so the runtime opens an outbound Discord Gateway session instead of requiring public inbound webhook hosting - Gateway URL: defaults to
wss://gateway.discord.gg/?v=10&encoding=json - Gateway intents: defaults to
0and can be overridden withDISCORD_GATEWAY_INTENTS - category name: defaults to
GITHUB_REPOfor multi-repository guild separation; OpenClaw test and live-lab runs set this totest - OAuth install scopes
botandapplications.commands - required guild/channel permissions for thread-aware control:
ViewChannel,SendMessages,CreatePublicThreads,CreatePrivateThreads,SendMessagesInThreads,ManageThreads, andReadMessageHistory
Missing required Discord credentials, invalid URLs, invalid gateway ports, and invalid deployment targets fail fast during config load. Normalized config can also be checked for structured validation issues before it is handed to integration services.
Recommended channel layout:
- spec parent channel for spec threads
- implementation parent channel for implementation threads
- pull-request parent channel for pull-request threads
- audit channel for operator-visible audit traffic
- project-management channel for non-mutating status queries that link back to the active bound threads
Generated Artifacts
- JSON schemas:
packages/*/schemas/*.schema.json - OpenClaw manifest:
packages/openclaw/openclaw.plugin.json - docs publication:
site/guide-docs/.vitepress/dist