openclaw/scripts
..
clawdock
dev
docker
docs-i18n
e2e
fixtures
github
k8s
lib
mantis
perf
podman
pr-lib
pre-commit
proof
qa
repro
secrets
systemd
AGENTS.md
analyze-plugin-sdk-usage.ts
android-app-i18n.ts
android-pin-version.ts
android-release-signing.mjs
android-release-upload.sh
android-release.sh
android-screenshots.sh
android-sync-versioning.ts
android-version.ts
anthropic-prompt-probe.ts
apple-app-i18n.ts
audit-seams.mjs
auth-monitor.sh
bench-cli-startup.ts
bench-gateway-restart.ts
bench-gateway-startup.ts
bench-model.ts
bench-sqlite-state.ts
bench-test-changed.mjs
bench-web-fetch.ts
build-all.mjs
build-and-run-mac.sh
build-diffs-viewer-runtime.mjs
build-docs-list.mjs
build-stamp.d.mts
build-stamp.mjs
build_icon.sh
bundle-a2ui.mjs
bundle-a2ui.sh
bundled-plugin-assets.mjs
changed-lanes.mjs
changelog-to-html.sh
check-architecture-smells.mjs
check-changed.mjs
check-changelog-attributions.mjs
check-channel-agnostic-boundaries.mjs
check-cli-bootstrap-imports.mjs
check-cli-startup-memory.mjs
check-codex-app-server-protocol.ts
check-composite-action-input-interpolation.py
check-database-first-legacy-stores.mjs
check-deadcode-unused-files.mjs
check-dependency-pins.mjs
check-deprecated-api-usage.mjs
check-deprecated-jsdoc.mjs
check-docker-e2e-boundaries.mjs
check-docs-i18n-glossary.mjs
check-docs-mdx.mjs
check-duplicates.mjs
check-dynamic-import-warts.mjs
check-extension-package-tsc-boundary.mjs
check-extension-plugin-sdk-boundary.mjs
check-extension-wildcard-reexports.mjs
check-file-utils.ts
check-gateway-cpu-scenarios.mjs
check-gateway-watch-regression.mjs
check-import-cycles.ts
check-ingress-agent-owner-context.mjs
check-kysely-guardrails.mjs
check-live-cache.ts
check-madge-import-cycles.ts
check-media-download-helper-roundtrip.mjs
check-memory-fd-repro.mjs
check-no-conflict-markers.mjs
check-no-deprecated-channel-access.ts
check-no-extension-src-imports.ts
check-no-extension-test-core-imports.ts
check-no-monolithic-plugin-sdk-entry-imports.ts
check-no-pairing-store-group-auth.mjs
check-no-random-messaging-tmp.mjs
check-no-raw-channel-fetch.mjs
check-no-raw-http2-imports.mjs
check-no-raw-window-open.mjs
check-no-register-http-handler.mjs
check-no-runtime-action-load-config.mjs
check-openclaw-package-tarball.mjs
check-package-dist-imports.mjs
check-package-patches.mjs
check-pairing-account-scope.mjs
check-plugin-extension-import-boundary.mjs
check-plugin-gateway-gauntlet.mjs
check-plugin-npm-runtime-builds.mjs
check-plugin-sdk-exports.mjs
check-plugin-sdk-subpath-exports.mjs
check-plugin-sdk-wildcard-reexports.mjs
check-policy-config-coverage.ts
check-protocol-event-coverage.mjs
check-release-metadata-only.mjs
check-runtime-sidecar-loaders.mjs
check-sdk-package-extension-import-boundary.mjs
check-session-accessor-boundary.mjs
check-session-transcript-reader-boundary.mjs
check-src-extension-import-boundary.mjs
check-telegram-grammy-types-imports.mjs
check-temp-path-guardrails.ts
check-test-helper-extension-import-boundary.mjs
check-timed.mjs
check-ts-max-loc.ts
check-tsgo-core-boundary.mjs
check-web-fetch-provider-boundaries.mjs
check-web-search-provider-boundaries.mjs
check-webhook-auth-body-order.mjs
check-workflows.mjs
check.mjs
ci-changed-scope.d.mts
ci-changed-scope.mjs
ci-docker-login-ghcr.sh
ci-docker-pull-retry.sh
ci-hydrate-live-auth.sh
ci-hydrate-testbox-env.sh
ci-live-command-retry.sh
ci-run-timings.mjs
claude-auth-status.sh
CLAUDE.md
clawlog.sh
clawtributors-map.json
close-duplicate-prs-after-merge.mjs
codesign-mac-app.sh
codespell-dictionary.txt
codespell-ignore.txt
committer
control-ui-i18n-report.ts
control-ui-i18n.ts
control-ui-mock-dev.ts
copy-bundled-plugin-metadata.d.mts
copy-bundled-plugin-metadata.mjs
copy-export-html-templates.ts
copy-hook-metadata.ts
copy-plugin-sdk-root-alias.mjs
crabbox-untrusted-bootstrap.sh
crabbox-wrapper-providers.mjs
crabbox-wrapper.mjs
create-dmg.sh
deadcode-unused-files.allowlist.mjs
debug-claude-usage.ts
dependency-changes-report.mjs
dependency-ownership-surface-report.mjs
dependency-vulnerability-gate.mjs
diffs-shiki-curated.ts
docker-e2e-rerun.mjs
docker-e2e-timings.mjs
docker-e2e.mjs
docs-link-audit.d.mts
docs-link-audit.mjs
docs-list.js
docs-spellcheck.sh
docs-sync-publish.mjs
embedded-run-abort-leak.ts
ensure-cli-startup-build.mjs
ensure-extension-memory-build.mjs
ensure-playwright-chromium.mjs
firecrawl-compare.ts
format-docs.mjs
full-release-validation-at-sha.mjs
gateway-watch-tmux.d.mts
gateway-watch-tmux.mjs
generate-base-config-schema.ts
generate-bundled-channel-config-metadata.ts
generate-config-doc-baseline.ts
generate-dependency-release-evidence.mjs
generate-docs-map.mjs
generate-host-env-security-policy-swift.mjs
generate-kysely-types.mjs
generate-npm-shrinkwrap.mjs
generate-plugin-inventory-doc.mjs
generate-plugin-sdk-api-baseline.ts
generate-prompt-snapshots.ts
generate-runtime-sidecar-paths-baseline.ts
generate-secretref-credential-matrix.ts
gh-read
gh-read.ts
ghsa-patch.mjs
install-cli.sh
install.ps1
install.sh
ios-app-review-notes-pdf.swift
ios-app-store-connect-keychain-setup.sh
ios-configure-signing.sh
ios-release-archive.sh
ios-release-prepare.sh
ios-release-signing.mjs
ios-release-upload.sh
ios-run.sh
ios-screenshots.sh
ios-sync-versioning.ts
ios-team-id.sh
ios-validate-app-store-ipa.sh
ios-version.ts
ios-write-swift-filelist.mjs
ios-write-version-xcconfig.sh
kova-ci-summary.mjs
label-open-issues.ts
list-prod-store-packages.mjs
live-docker-normalize-config.ts
load-channel-config-surface.ts
make_appcast.sh
mcp-code-mode-gateway-e2e.ts
measure-rpc-rtt.mjs
mobile-reauth.sh
mobile-release-ref.ts
native-app-i18n.ts
notarize-mac-artifact.sh
npm-runner.d.mts
npm-runner.mjs
ocm-npm-workspace-deps.mjs
openclaw-cross-os-release-checks.ts
openclaw-npm-extended-stable-release.mjs
openclaw-npm-postpublish-verify.ts
openclaw-npm-prepublish-verify.ts
openclaw-npm-publish.sh
openclaw-npm-release-check.ts
openclaw-performance-source-summary.mjs
openclaw-prepack.ts
openclaw-release-clawhub-plan.ts
openclaw-release-clawhub-runtime-state.ts
package-changelog.mjs
package-mac-app.sh
package-mac-dist.sh
package-openclaw-for-docker.mjs
plan-release-workflow-matrix.mjs
plan-targeted-docker-lane-groups.mjs
plugin-boundary-report.ts
plugin-clawhub-publish.sh
plugin-clawhub-release-check.ts
plugin-clawhub-release-plan.ts
plugin-npm-publish.sh
plugin-npm-release-check.ts
plugin-npm-release-plan.ts
plugin-prerelease-liveish-matrix.mjs
plugin-release-pretag-pack-check.ts
plugin-sdk-surface-report.mjs
pnpm-runner.d.mts
pnpm-runner.mjs
postinstall-bundled-plugins.mjs
pr
pr-gates-lock.mjs
pr-merge
pr-prepare
pr-review
preinstall-package-manager-warning.mjs
prepare-codex-ci-auth.ts
prepare-codex-ci-config.ts
prepare-extension-package-boundary-artifacts.mjs
prepare-git-hooks.mjs
prepush-ci.sh
print-cli-backend-live-metadata.ts
process-warning-filter.mjs
profile-extension-memory.mjs
profile-tsgo.mjs
prompt-snapshot-files.ts
proof-cron-on-exit.mts
proof-telegram-bound.mjs
proof-telegram-getchat-bound.mjs
protocol-event-coverage.allowlist.json
protocol-gen-swift.ts
protocol-gen.ts
proxy-install-ca.mjs
prune-docker-plugin-dist.d.mts
prune-docker-plugin-dist.mjs
qa-coverage-report.ts
qa-e2e.ts
qa-lab-up.ts
qa-parity-report.ts
README.md
recover-orphaned-processes.sh
release-beta-smoke.ts
release-candidate-checklist.mjs
release-check.ts
release-fast-pretag-check.sh
release-preflight.mjs
release-verify-beta.ts
report-test-temp-creations.mjs
resolve-openclaw-package-candidate.mjs
resolve-upgrade-survivor-baselines.mjs
restart-mac.sh
root-dependency-ownership-audit.mjs
run-additional-boundary-checks.mjs
run-android-gradle.mjs
run-bundled-extension-oxlint.mjs
run-extension-channel-oxlint.mjs
run-node-watch-paths.mjs
run-node.d.mts
run-node.mjs
run-openclaw-podman.sh
run-opengrep.sh
run-oxlint-shards.mjs
run-oxlint.mjs
run-tsgo.mjs
run-vitest-profile.mjs
run-vitest.mjs
run-with-env.mjs
runtime-postbuild-shared.mjs
runtime-postbuild-stamp.mjs
runtime-postbuild.mjs
sandbox-browser-entrypoint.sh
sandbox-browser-setup.sh
sandbox-common-setup.sh
sandbox-setup.sh
setup-auth-system.sh
sparkle-build.ts
sqlite-vec-smoke.mjs
stage-bundled-plugin-runtime.d.mts
stage-bundled-plugin-runtime.mjs
sync-codex-app-server-protocol.ts
sync-codex-model-prompt-fixture.ts
sync-labels.ts
sync-moonshot-docs.ts
sync-native-a2ui.mjs
sync-openclaw-label-colors.mjs
sync-plugin-sdk-exports.mjs
sync-plugin-versions.ts
termux-auth-widget.sh
termux-quick-auth.sh
termux-sync-widget.sh
test-built-bundled-channel-entry-smoke.mjs
test-built-plugin-singleton.mjs
test-built-status-message-runtime.mjs
test-cleanup-docker.sh
test-cli-startup-bench-budget.mjs
test-docker-all.mjs
test-docker-all.sh
test-env-mutation-report.ts
test-extension-batch.mjs
test-extension.mjs
test-force.ts
test-group-report.mjs
test-hotspots.mjs
test-install-sh-docker.sh
test-install-sh-e2e-docker.sh
test-live-acp-bind-docker.sh
test-live-acp-spawn-defaults-docker.sh
test-live-build-docker.sh
test-live-cli-backend-docker.sh
test-live-codex-harness-docker.sh
test-live-gateway-models-docker.sh
test-live-models-docker.sh
test-live-shard.mjs
test-live-subagent-announce-docker.sh
test-live.mjs
test-perf-budget.mjs
test-projects-imports.mjs
test-projects-max.mjs
test-projects-serial.mjs
test-projects.mjs
test-projects.test-support.d.mts
test-projects.test-support.mjs
test-report-utils.mjs
test-shell-completion.ts
test-skip-inventory.ts
test-unit-fast-audit.mjs
test-update-cli-startup-bench.mjs
test-voicecall-closedloop.mjs
tool-display.ts
transitive-manifest-risk-report.mjs
ts-topology.ts
tsconfig.json
tsdown-build.mjs
ui.js
update-clawtributors.ts
update-clawtributors.types.ts
validate-plugin-init-provider-scaffold.ts
validate-release-publish-approval.mjs
verify-docker-attestations.mjs
verify-plugin-npm-published-runtime.mjs
verify-pr-hosted-gates.mjs
verify-stable-main-closeout.mjs
verify-template-cache-bound.mjs
verify.mjs
vitest-process-group.mjs
watch-node.d.mts
watch-node.mjs
windows-cmd-helpers.d.mts
windows-cmd-helpers.mjs
write-build-info.ts
write-cli-compat.ts
write-cli-startup-metadata.ts
write-official-channel-catalog.d.mts
write-official-channel-catalog.mjs
write-package-dist-inventory.ts
write-plugin-sdk-entry-dts.ts
zai-fallback-repro.ts

summary read_when title
Repository script entry points and compatibility notes
Looking for an existing script before adding a new one
Running repository checks, tests, docs, Docker, release, or GitHub helper scripts
Updating package scripts or CI workflow script references
Scripts Directory

Scripts Directory

The scripts/ directory contains repository tooling used by local development, CI, docs publishing, releases, Docker proof, and maintainer operations. Prefer the package-script entry points in package.json when one exists, then read the underlying script before running it directly.

Compatibility

Many scripts are stable paths referenced by package.json, GitHub Actions, docs, and maintainer runbooks. Do not move, rename, or regroup scripts only to improve taxonomy. A directory migration needs an explicit maintainer-approved compatibility plan for package scripts, workflows, docs snippets, and any raw script paths users may have copied.

This index is a discovery aid for the current flat layout. It does not define a new directory taxonomy.

Common Entry Points

Area Prefer Notes
Build pnpm build Runs scripts/build-all.mjs; use specific build scripts only when debugging a build stage.
Changed checks pnpm changed:lanes --json, pnpm check:changed Lane classification lives in scripts/changed-lanes.mjs; changed-file checks live in scripts/check-changed.mjs.
Docs pnpm docs:list, pnpm docs:check-mdx, pnpm docs:check-links Backed by scripts/docs-list.js, scripts/check-docs-mdx.mjs, and scripts/docs-link-audit.mjs.
Formatting docs pnpm format:docs:check Uses scripts/format-docs.mjs; use write mode only when intentionally formatting docs.
Lint pnpm lint, pnpm lint:core, pnpm lint:all Wrapper scripts keep oxlint behavior aligned with repo config.
Targeted tests pnpm test <path-or-filter> or node scripts/run-vitest.mjs <path-or-filter> Avoid bare vitest; it can start watch mode.
Changed tests pnpm test:changed Uses the repo's changed-test resolver instead of a broad Vitest run.
Docker proof pnpm test:docker:all, pnpm test:docker:rerun, pnpm test:docker:timings Use the planner/rerun helpers before launching broad Docker work.
Live proof pnpm test:live Live checks require the matching environment and credentials.
Release checks pnpm release:check, pnpm release:beta, pnpm release:candidate Release scripts are maintainer workflows; read release docs before use.
GitHub reads scripts/gh-read Uses a GitHub App read token when configured, leaving normal gh login for writes.
Commits scripts/committer "<message>" <files...> Preferred scoped commit helper for OpenClaw changes.
Remote proof node scripts/crabbox-wrapper.mjs ... Agent default for tests and heavy work; pre-warm by source trust, sync each run, reuse the lease.

Script Families

  • check-*.mjs / check-*.ts: guardrails for architecture, docs, package contents, boundaries, workflows, and generated artifacts.
  • run-*.mjs: wrappers around repo runtimes or tools, such as Node, Vitest, oxlint, tsgo, and environment setup.
  • test-*.mjs / test-*.sh / test-*.ts: test planners, Docker lanes, live checks, and focused validation helpers.
  • docs-* and check-docs-*: docs listing, link auditing, MDX checks, spellcheck, sync, and i18n glossary checks.
  • release-*, openclaw-npm-*, and plugin-*-release-*: release preparation, package verification, and publishing helpers.
  • docker-*, test-docker-*, and test-live-*-docker.sh: Docker E2E planning, rerun, timing, and live/package lane helpers.
  • gh-read*, label-*, sync-labels.ts, and PR helpers: GitHub read, labeling, and maintainer workflow support.
  • generate-*, write-*, copy-*, and sync-*: generated docs, metadata, package surfaces, and build artifact support.
  • lib/: shared helpers imported by script entry points.

Maintenance Rules

  • Read scripts/AGENTS.md before changing scripts.
  • Keep package scripts, generators, generated-artifact checks, docs references, and workflow references aligned when touching a script path.
  • Prefer existing wrappers instead of introducing a raw tool invocation.
  • Add or update focused tests under test/scripts/ when changing script behavior.

See also Scripts for public-facing script guidance.