{"_id":"openclaw","_rev":"57-3d0f57adff3016cb192cb6e92699f846","name":"openclaw","dist-tags":{"latest":"2026.2.24","beta":"2026.2.24"},"versions":{"0.0.1":{"name":"openclaw","version":"0.0.1","license":"UNLICENSED","_id":"openclaw@0.0.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"dist":{"shasum":"e43bbf58e415c383a6cdec16767cf9c6d664ab2d","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-0.0.1.tgz","fileCount":3,"integrity":"sha512-RjBpKUdV8BeVBDWd3vJi4Okl7AwDwC/yKsP6tf89CQIH+B+M6J0SsxkyJqd5Kc/c4bZkJ7mWYSd4eYo4Jzc7mA==","signatures":[{"sig":"MEQCIA8meSmwgQkCNabtuR2MDp5YO2X+33sOUhhjStqyGsvnAiApMjqFXZYTiAtXEHKv6pZUhSFNpU6k+74GfLQlbAUcOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253},"main":"index.js","_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_npmVersion":"11.6.2","description":"Empty placeholder package.","directories":{},"_nodeVersion":"25.2.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/openclaw_0.0.1_1769684891958_0.6827988358865404","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29-beta.1":{"name":"openclaw","version":"2026.1.29-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"8bc876833d8a8f083cc697a8b3b4781a6db558ea","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29-beta.1.tgz","fileCount":9702,"integrity":"sha512-sBGTTAx1NnrW3KU2iJ5YaRsFvzCgS1iRtkG6YS4BEXRl09Gsr7PlhPnY0qRymEYDH20I42de1HjkIzzIfyONGg==","signatures":[{"sig":"MEYCIQCEJ/4qHPJ0HeVNCGSAsY+nCQmSevotU5YcWS+xNCLPJAIhAMO26wfcPAImuovIDvELSS8VOtrABje0WKjIIAEWhJ1G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49048047},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"d47b4e6f8127e698a9fa6263c0f6a0df93a88b40","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29-beta.1_1769739654510_0.759178542717051","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29-beta.2":{"name":"openclaw","version":"2026.1.29-beta.2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29-beta.2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"717bbf2d3d3b1ecdcfe41947ad50942b4e75515f","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29-beta.2.tgz","fileCount":9705,"integrity":"sha512-Cuvpp7U6wwH3pVvoHmb1QXq2G430CJSEonIlFTOUiqpVhvDL+HQJIeFsQQulvxWe9MssPl8jqs/XoLEk4hsOtg==","signatures":[{"sig":"MEUCIAwyLec4G905zUJCXLuqjy53FM5FimDf1iB9M/YdT9skAiEAivGRsfBTGBI0HbPN8egICzcDlmzr5/AOeiT+iUAoU+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49060454},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"02576615cb4c1382abf1d0aee10ed10f1f676e78","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29-beta.2_1769742130731_0.1327915321369042","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29-beta.3":{"name":"openclaw","version":"2026.1.29-beta.3","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29-beta.3","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"5050791395bb968ba8f82e2bbdf198ed3b2738cd","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29-beta.3.tgz","fileCount":9705,"integrity":"sha512-yCxhxAkHxIAPOmCo+pFNzHIgy/Q4k0FCoWCyaV6wOGk9WHdp0qqbH84rjvNSfl+QUuLB8p6nCPHUrF+5+0QQQQ==","signatures":[{"sig":"MEQCIEjaRvdGgbq0YuEU1vWSGbW3eYoVKReHW3JAblNvHKd8AiApV2ARy7fBlgpkWLL+dqe4KTrXvApSXSL6ocU9556nVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49062006},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"67918dc41bcf984a77c7b7ba8a9f4e3a41d10693","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29-beta.3_1769742691152_0.1027635873530699","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29-beta.4":{"name":"openclaw","version":"2026.1.29-beta.4","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29-beta.4","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"615496bc3835997b0fd872e879fa9535bc759cc9","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29-beta.4.tgz","fileCount":9705,"integrity":"sha512-eYoehRwQdc8mz0xJCjFj2EDzSp9/j1DlCssoo+ynUFSoFQ+5SfGQoC0cnuvh0hVZ6ucBO6N8k8aIWBE2LezLTw==","signatures":[{"sig":"MEYCIQClQlhvH6SuJP8YEpYdOrsJS5IjHBwhkJm8BX4BLneG3wIhANy2QwpY8c6GhB4SoL9lDUleGxfxSuIMFQ4U/8OPUGsk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49062160},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"9886fd1a5a3f1e07817865dbf4c1663a919749e3","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29-beta.4_1769743694500_0.7130137981931439","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29-beta.5":{"name":"openclaw","version":"2026.1.29-beta.5","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29-beta.5","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"8281760ee16c61740ee6f96fbeb468f641570ab2","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29-beta.5.tgz","fileCount":9705,"integrity":"sha512-Vc+fOM7l8tx5IV46qhhPt0BH0+hhbVxv1OlUz7gOcOBlVZOKzc+egEzFYkKmAEs35zxUndsLyTjK1vYuifoX4w==","signatures":[{"sig":"MEQCIHto5U6PAy1T5K1P0RzO/yV5iDXo0Zx/j7+gtcmROdr3AiBAkbfcvUukDHAdww+Px9xOgRgrhhriS3t9gniiEMD6LA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49062160},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"d9c81991b1c5a1f1253992307ca13947856e446d","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29-beta.5_1769744326647_0.6069148286784605","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29-beta.7":{"name":"openclaw","version":"2026.1.29-beta.7","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29-beta.7","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"523035651276b86e7ca15120924ed3dac847d18c","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29-beta.7.tgz","fileCount":9705,"integrity":"sha512-MhqUdP0vj8ET1F6Y+eLQTFNR3XEryGwxXmBdJkuGrA21OsgwGh86dmexdDXsXjPsk+m1p8tRh5I9sZIRPMJmOA==","signatures":[{"sig":"MEYCIQDyOE68nsISghtVhLrEX5bMrftLfnIicMW/wfyD46ThSwIhAJe5YF47umswioJXx890POTpGRwk/NK426vSII/fwbT0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49063902},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"151ddd624bd368e6f4345207c8ea7d9e6521a619","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29-beta.7_1769745777634_0.3037252153526999","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29":{"name":"openclaw","version":"2026.1.29","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"47ad1196e631d465cd81d99581586361006175c1","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29.tgz","fileCount":9706,"integrity":"sha512-CVUOAH83BCrlnD56I1JahGVpg0mjp4fjJPdJg9q6Pijn/YdOopsfdInDqSeIEZwGtu/+0w69/uJccY23C9I+vg==","signatures":[{"sig":"MEYCIQDT31invOKj/jhkYBt3XW45t7VAVnsec5VHkd8nQXi9wwIhALdbgc8iQ0AMaPIE6pKvGvu92Uaf8tB5T3DEJeCjyMsF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49196825},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"a5b4d22cbff07a1bfd01a41391b7e071e1d9074d","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29_1769748556706_0.3495488424310791","host":"s3://npm-registry-packages-npm-production"}},"2026.1.30":{"name":"openclaw","version":"2026.1.30","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.30","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"f2c44058732ededd68d291f1909c08f59410d58b","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.30.tgz","fileCount":4607,"integrity":"sha512-oHpsfvxCTDnRWcaG7M5cP4iLJQ0WnpTqN+3d+VbD/auMLi7mmXAOESVOLab0m457CKwvOxIYYsAlrOfqtzp5Lg==","signatures":[{"sig":"MEQCIHmCdyPFp/u26lb1QeLggJ1LDQAWGtGfHE8ZmxyS8oFCAiBJmTK+x2UEtt3IBroMBkmqvxU5hek9I36iYJgcRDbPKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33541027},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.7","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"76b5208b11eebf2071ad5a363666467417ea5792","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json --noEmit false && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.2","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.50.7","@mariozechner/pi-tui":"0.50.7","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.980.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.50.7","@mariozechner/pi-coding-agent":"0.50.7","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.27.0","ollama":"^0.6.3","oxlint":"^1.42.0","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.1.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260130.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.30_1769865117479_0.6224792586032684","host":"s3://npm-registry-packages-npm-production"}},"2026.2.1":{"name":"openclaw","version":"2026.2.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"00ceed7c412d99c74fc0ef65aa7261e581dfa8e6","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.1.tgz","fileCount":9449,"integrity":"sha512-SCGnsg/E9XPpYd1KCH+hvfQFTg+RLptBAAPbc+9e7PHn7aNzte7mcm+2W/kxn71Aie8jqwbZgWx9JdEPneiaLQ==","signatures":[{"sig":"MEQCIBtUnMtvFw1bT8YS2dfwdWO/Pqm1oxFFkjSkVI1HLL9cAiASTks3GFQsmEOskjoklXZw/S80FThlYG8gQIT8JBsxRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45108541},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","types":"./dist/index.d.ts","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"ed4529e24673fb19ea506bb04b2c6d3deed6a451","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware --tsconfig tsconfig.oxlint.json","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json --noEmit false && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --tsconfig tsconfig.oxlint.json --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.0","@mariozechner/pi-tui":"0.51.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.980.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.0","@mariozechner/pi-coding-agent":"0.51.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.27.0","ollama":"^0.6.3","oxlint":"^1.42.0","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260201.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.1_1770032727028_0.13363571781615335","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2":{"name":"openclaw","version":"2026.2.2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"b839be075e454777d7f748101a067281e199bd17","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.2.tgz","fileCount":6812,"integrity":"sha512-a+APDrAbwTXbVQG250hkLSb7Y/HckaAljhYPZu4GrVspiO65/Fhoe9COIYMKzCvL/LLKVUEvCUeB8dzKroZMhA==","signatures":[{"sig":"MEUCIQCN+Ck+G99aVXn8/3l0b2a36c7ZH5tYETBj5QWEVsJb3gIgDWji2aSbwPTbYZS//rU/hceZaMlr5N/A8vKKhfcWQiw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57383768},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"539a15e63fcc823256893ccde8bd421db14aba23","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.1","@mariozechner/pi-tui":"0.51.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.981.0","@larksuiteoapi/node-sdk":"^1.42.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.1","@mariozechner/pi-coding-agent":"0.51.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.1","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260202.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.2_1770166601255_0.7247287145377181","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-1":{"name":"openclaw","version":"2026.2.2-1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.2-1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"9107bc22eb4b22f0cada3050738de665e484518a","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.2-1.tgz","fileCount":8688,"integrity":"sha512-i2tdaBX/qJwSFNhoNIIAltjEWB2AkDsogC+Ctx2ZxobsLaDPjaTo2fzXkVTIAqNnhfPgpiYgVa22HvhzSYaPyg==","signatures":[{"sig":"MEQCIBYVgrNXcQfPAbiGUNcj/EF1rqgD+vnwN7LdsJreTZWuAiBV+R0IS7G35n30DBZcOJHjiZjoUcxt2tZbi/Rie1a/aQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64501370},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"e59eb814bdc4a756d2f78baf10f6263d65bada98","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.1","@mariozechner/pi-tui":"0.51.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.981.0","@larksuiteoapi/node-sdk":"^1.42.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.1","@mariozechner/pi-coding-agent":"0.51.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.1","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260202.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.2-1_1770168424619_0.15374555588561534","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-2":{"name":"openclaw","version":"2026.2.2-2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.2-2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"aa48ec6db89939c8950362ec6c9ad91a72b9d477","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.2-2.tgz","fileCount":8688,"integrity":"sha512-b4iz8NjggOwbcWFIJJ9ttnx1MdnZd3A1xt36BdZ7Z9mlTMJmvay5hGuo1lrtCQ+QDuXUvvOaiNvDpSpQS4O6fw==","signatures":[{"sig":"MEUCIQCbb4J2pkLzg89FddVJlIast8GM8AQIqiCxUUhFKpHJXAIgG6mFEPnSgm5h9Y/SJzJwBbFIxu5uJZBSH25+jPTqdDU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64502715},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"e895e85f5488f85e007940b46829d779b04b29f7","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.1","@mariozechner/pi-tui":"0.51.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.981.0","@larksuiteoapi/node-sdk":"^1.42.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.1","@mariozechner/pi-coding-agent":"0.51.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.1","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260202.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.2-2_1770168766816_0.2677156484503358","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-3":{"name":"openclaw","version":"2026.2.2-3","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.2-3","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"96cf3f6012da9c72e707d305392eca8a32386cf1","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.2-3.tgz","fileCount":8690,"integrity":"sha512-XDGV4mBJFpo1AZnjcJQtLLo70k0IRq+L/kujGhVrbFRLRfNueUbHxiaeELNx/umyFpWGgYwkatiysgv7+XGkkg==","signatures":[{"sig":"MEYCIQDoXpKxtpXAMWwBVrDuRc8DRZDt9pJ+z2yu7jcAAic2YwIhAJGF6duKdhRpjd7lq27JIIPKDlOjHLOKYheCGOWILAz+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64506969},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"9c5941ba466b86e3056b6743cd6d4fc554b13e8d","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.1","@mariozechner/pi-tui":"0.51.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.981.0","@larksuiteoapi/node-sdk":"^1.42.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.1","@mariozechner/pi-coding-agent":"0.51.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.1","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260202.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.2-3_1770170835272_0.3088894384430174","host":"s3://npm-registry-packages-npm-production"}},"2026.2.3":{"name":"openclaw","version":"2026.2.3","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.3","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"78190db0697a62becf8e33124d830f5d36ea5d76","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.3.tgz","fileCount":8700,"integrity":"sha512-nAYjR0sfZf85h6h9idqWvose0v4fQ+6ATk7uldNg3bQ8EzOpFrPzMCx75rGjAj9bsBFTmT9/9eMAIref+cxVIw==","signatures":[{"sig":"MEQCIBJ7qPBcpM/yfmXVQJBuLY/veIvVGYCf0W+zT0tCJ5dcAiBaVIZfxwsW4kc1yu8w3q7DoeEJuyS6tiJbDAEHeDQNAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64777989},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"e75e2b116f1eb71e24104e5023b601908227ae3f","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.8.0","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.5.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.3","@mariozechner/pi-tui":"0.51.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.981.0","@larksuiteoapi/node-sdk":"^1.42.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.3","@mariozechner/pi-coding-agent":"0.51.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.1","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260202.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.3_1770255506954_0.8608028792608646","host":"s3://npm-registry-packages-npm-production"}},"2026.2.3-1":{"name":"openclaw","version":"2026.2.3-1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.3-1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"e8b2a49ae5c47839e345d29d6fd9303783ad1e40","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.3-1.tgz","fileCount":8699,"integrity":"sha512-Zxn2LXFVdeSNBLoGZfDOK/JcmqJeeKQW69jBhKBpWYdJnWVep+WHvvwIFSfP6SLp1DqHOD1V2v/bKfx+t9lB0Q==","signatures":[{"sig":"MEQCIFTzDD1x1VGHXjiJGGT7weHZOiQCgNE74sANIMw8XdkbAiBhWM0MsyqdvZs6QlOU2xne5wtLhZH71A46kMnFqMvXLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64788307},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"d84eb46467d74e12e7fad63ee2a257ad1473fcd8","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.3","@mariozechner/pi-tui":"0.51.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.981.0","@larksuiteoapi/node-sdk":"^1.42.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.3","@mariozechner/pi-coding-agent":"0.51.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.1","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260202.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.3-1_1770278284801_0.10651700653872154","host":"s3://npm-registry-packages-npm-production"}},"2026.2.6":{"name":"openclaw","version":"2026.2.6","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.6","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"c3e7956824ffebf0518ffabcc67aca8868ce0926","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.6.tgz","fileCount":6798,"integrity":"sha512-QaITs2UmooG1vclLZl5CUpdaKjtcPnHtmFGGxZ0fSgMWcvlKQeRN8HtzVBIN2SPt9O3E0jepGW8m8I62BzKWAw==","signatures":[{"sig":"MEYCIQCfA5bSQBijbEPIkbxNq8qijCMmS0UUDTB60TgF5ueN/wIhAPGWYuoGhNPpSo9jLtYCzrYMIggXvTpmDNkNGyi7zSmj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57133892},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.8","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48","@hono/node-server>hono":"4.11.8"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"f831c48e56705184195b69ebbf662f785b032ae4","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs && pnpm lint:docs && pnpm docs:build","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","format:docs:fix":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.8","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.4","grammy":"^1.39.3","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.0.0-beta-20260130162700","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.52.7","@mariozechner/pi-tui":"0.52.7","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.985.0","@larksuiteoapi/node-sdk":"^1.58.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.7","@mariozechner/pi-coding-agent":"0.52.7","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.3","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.1","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260206.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.6_1770429046737_0.32384084426956394","host":"s3://npm-registry-packages-npm-production"}},"2026.2.6-1":{"name":"openclaw","version":"2026.2.6-1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.6-1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"a98001531fa0a92246aac22012faa402ba831138","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.6-1.tgz","fileCount":7843,"integrity":"sha512-gxthOnQmAdP11Rl34CRaBoyR0HKGXZHED9b41K/sCnszaVtYpLViUPWoYtnqKEuz4EY2fmZZmEe1SYJOiKCP7g==","signatures":[{"sig":"MEUCIQDgMZik2/LAYlRgUmNRt9t7XB0kDEc/Yh01LVpTbUB5pgIgXALAUyqT3FX8rQpNYRo5LIBFLnOwzn6Y4ndR3WKGW00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58594181},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.8","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48","@hono/node-server>hono":"4.11.8"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"aaddbdae52d71bff3a74fa28dd6597816e2d7592","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs && pnpm lint:docs && pnpm docs:build","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","format:docs:fix":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.8","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.4","grammy":"^1.39.3","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.0.0-beta-20260130162700","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.52.7","@mariozechner/pi-tui":"0.52.7","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.985.0","@larksuiteoapi/node-sdk":"^1.58.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.7","@mariozechner/pi-coding-agent":"0.52.7","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.3","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.1","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260206.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.6-1_1770447510520_0.7692618776607438","host":"s3://npm-registry-packages-npm-production"}},"2026.2.6-2":{"name":"openclaw","version":"2026.2.6-2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.6-2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"905bd0ce5ca4449ebc6febf3338ee0fc2eec360c","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.6-2.tgz","fileCount":7844,"integrity":"sha512-PfU4pJ6FH7mjfuzn0BeyhwWKK2q4lDo09HTxdEOoYhjzq2EGNDM3UHEETRA909BxzuOP73Sbrqi8WdNZ+Gmnxw==","signatures":[{"sig":"MEQCIHFw1c9P+tzKKxTxLlKAJ9/f54NwBwl2/aa/vbfIevG6AiBLvUjpTz9Mg/FgXK6luUWu530BHIO3qlR2oSSkpoIAeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58612649},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.8","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48","@hono/node-server>hono":"4.11.8"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"ad4dd0422ea46d21ad336151ca6f2a63119e80f1","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs && pnpm lint:docs && pnpm docs:build","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","format:docs:fix":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.8","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.4","grammy":"^1.39.3","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.0.0-beta-20260130162700","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.52.7","@mariozechner/pi-tui":"0.52.7","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.985.0","@larksuiteoapi/node-sdk":"^1.58.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.7","@mariozechner/pi-coding-agent":"0.52.7","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.3","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.1","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260206.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.6-2_1770453207505_0.893779154128781","host":"s3://npm-registry-packages-npm-production"}},"2026.2.6-3":{"name":"openclaw","version":"2026.2.6-3","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.6-3","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"a20984c39937f9645bd0cecafd87a701e8e63afb","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.6-3.tgz","fileCount":7844,"integrity":"sha512-NJiU09ZnBXUVI9FfDs4ahu+kq0rEm7tEHriDlw1WDdAWQyfr2fQY/Q8lC/DH76Ky+Xr2SxZ5kTJsJghGLq4PHQ==","signatures":[{"sig":"MEUCIBrI9h0zLvb3F9n+Thih7WSDTfmq5RZytR2J5A8IwlchAiEAz1GzHLQehYJfQx8VW7bcKCBeUt1OZT8PXu3mZZYT7/c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58613064},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.8","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48","@hono/node-server>hono":"4.11.8"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"9f703a44dc954349d4c9571cba2f16b7fb3d2adc","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs && pnpm lint:docs && pnpm docs:build","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","format:docs:fix":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.8","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.4","grammy":"^1.39.3","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.0.0-beta-20260130162700","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.52.7","@mariozechner/pi-tui":"0.52.7","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.985.0","@larksuiteoapi/node-sdk":"^1.58.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.7","@mariozechner/pi-coding-agent":"0.52.7","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.3","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.1","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260206.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.6-3_1770454007432_0.5522706524022851","host":"s3://npm-registry-packages-npm-production"}},"2026.2.9":{"name":"openclaw","version":"2026.2.9","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.9","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"11cf5e4f6afb02d765efaa18326a3ecfc3e20b55","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.9.tgz","fileCount":2786,"integrity":"sha512-kJbbIg98ikbZSvS/ypk3Btjha//Fg1sao/xqYrzyMNFNpZFVMcvZNVvMdjRLtccyYNCa5GAJ5nNxP7fzEnS0KQ==","signatures":[{"sig":"MEUCIFZ1V2DVBlBH29o5Vg8mqMKE0ksyCtbz2u9ndE2B8GYtAiEAi2wa0DZrmmdcY6ZHIMdv9l49mxvGUu/hHcASBDvUpCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42502796},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.8","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48","@hono/node-server>hono":"4.11.8"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"33c75cb6bf2dde53131f33a1ea4995e1aa8d550e","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs && pnpm lint:docs && pnpm docs:build","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","format:docs:fix":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_npmVersion":"11.8.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"25.6.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.9","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.4","grammy":"^1.39.3","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.52.9","@mariozechner/pi-tui":"0.52.9","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.985.0","@larksuiteoapi/node-sdk":"^1.58.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.9","@mariozechner/pi-coding-agent":"0.52.9","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.3","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.2","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.5","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260208.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.9_1770663670605_0.7106019020795862","host":"s3://npm-registry-packages-npm-production"}},"2026.2.12":{"name":"openclaw","version":"2026.2.12","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.12","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"59c845792868f6983ffd5e410973cdf33c6a5779","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.12.tgz","fileCount":4767,"integrity":"sha512-7ZlAd04KMRe5V79E+jAXFUnyWkHax8/5YuTYUfYaGfRU5cqsUOKfsqKgQfLFmVXhtx+D43Xz5mjhi1PuLq0gOA==","signatures":[{"sig":"MEYCIQCIw8ShNUW9zFxMB98N5PtOcemolCvHXjGQXbbcmEJbhgIhAIBgkCZYasvGp3aca7Oc3z4Ne5H1tH8x0jfpMX9/w2/p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50690458},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"}},"gitHead":"f9e444dd56ccfc2271e8ae1729b7a14a55e1c11e","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","tsgo:test":"tsgo -p tsconfig.test.json","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.52.10","@mariozechner/pi-tui":"0.52.10","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.989.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.10","@mariozechner/pi-coding-agent":"0.52.10","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.32.0","ollama":"^0.6.3","oxlint":"^1.47.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.4","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.3","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.12.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260212.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.12_1770947601911_0.23894748307835934","host":"s3://npm-registry-packages-npm-production"}},"2026.2.13":{"name":"openclaw","version":"2026.2.13","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.13","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"e7320bab7e2c1e1d5a4d69183a4ebf5112e47f0d","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.13.tgz","fileCount":5017,"integrity":"sha512-GBFA8pC+1ZRTUIfYhGa3mnWnTrr5m1xLPUO1q5KiIc1uKY1gtmZCk/TUwZGNccSFKdGOMANVn88y/8Wvi59JIg==","signatures":[{"sig":"MEUCID8WjhR7jZNRgZQC4Miwr74+Siv5bnmeq32HndEYZPzEAiEAgfNNs/tnSnT9zJ4vIRv/+MmLe2Nhr21eiwysvSqUiNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52057989},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"}},"gitHead":"203b5bdf710ad636844d4142f16e81c95890c2c7","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","tsgo:test":"tsgo -p tsconfig.test.json","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.52.10","@mariozechner/pi-tui":"0.52.10","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.989.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.10","@mariozechner/pi-coding-agent":"0.52.10","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.32.0","ollama":"^0.6.3","oxlint":"^1.47.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.4","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.3","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.12.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260212.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.13_1771039207526_0.25580721983146826","host":"s3://npm-registry-packages-npm-production"}},"2026.2.14":{"name":"openclaw","version":"2026.2.14","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.14","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"3f2c858bcfb42687f933a70ec7a7afd05d7df7c1","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.14.tgz","fileCount":5147,"integrity":"sha512-NHkuZqiHtWstoGNQIsXPIGKvCWKKjEtzOTRv4K1OjOJ5CAHAd0Gs7djyonxBIQz7KeX/JqrP8/4A63fIAmFY/Q==","signatures":[{"sig":"MEUCIGg7HNmigtnRSA2tFzSA6ay2aTDOeJnQehBZ0TMng0N/AiEAuMBbltJjKB4L1Gr3/npfFmWYvUYX9xmWjhiK9Prcrws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52812040},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"c1feda14fdbef722ae3412b95163b6172ac2e153","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","tsgo:test":"tsgo -p tsconfig.test.json","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.7","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.39","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.52.12","@mariozechner/pi-tui":"0.52.12","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.990.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.12","@mariozechner/pi-coding-agent":"0.52.12","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.32.0","ollama":"^0.6.3","oxlint":"^1.47.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.4","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.3","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.12.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260214.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.14_1771124387457_0.03561374254753691","host":"s3://npm-registry-packages-npm-production"}},"2026.2.15":{"name":"openclaw","version":"2026.2.15","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.15","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"c766c080f85bc6b373d87b460c15de6f28696adc","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.15.tgz","fileCount":5466,"integrity":"sha512-5x+su0EI0OL2RmWU2jH6IW57SQAA8l5/4zuJQW4UBSURvKr7Kvsu6NEpuHiotJxqp1K2/mEZKH7nWYDThUz+RA==","signatures":[{"sig":"MEQCIHyKNJmjyXHYzuBQkKwHF3GEmdkA/hyN/M/F+X/AQsuxAiBg+ZSfKoTLahR1ney36lA59CxiFt8PZVapYS5rlFqj7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57315872},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"3fe22ea2fd18a8598ea15ac911422fd5b59baf12","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","tsgo:test":"tsgo -p tsconfig.test.json","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.39","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.52.12","@mariozechner/pi-tui":"0.52.12","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.990.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.12","@mariozechner/pi-coding-agent":"0.52.12","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.32.0","ollama":"^0.6.3","oxlint":"^1.47.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.4","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.3","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.13.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260215.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.15_1771214201609_0.15331852346516817","host":"s3://npm-registry-packages-npm-production"}},"2026.2.17":{"name":"openclaw","version":"2026.2.17","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.17","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"4c320db9eb8224e05d60a0fce3fb2ff2986ee263","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.17.tgz","fileCount":5618,"integrity":"sha512-OgblBbjR9aRxlRUa5DS9K02IxnMY+1GDDznKEcm8/N2FhakAItKEg5uv9ulI6Lr/rtIbublRhuk4a7ntYDxqIw==","signatures":[{"sig":"MEUCIQDMpyHE5hMU03FkqAYCJqDGuL/yGWpIbgUW0u81re/4PwIgSAN7BpObjpe4O0W5gtuoFpgZ4oHtZ+kcT7L83O/0VxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60057622},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"4134875c311fbb7f677fb9181a883431444cf3e9","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.39","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.53.0","@mariozechner/pi-tui":"0.53.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.992.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.53.0","@mariozechner/pi-coding-agent":"0.53.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.33.0","ollama":"^0.6.3","oxlint":"^1.48.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.4","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.3","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260217.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.17_1771382873517_0.8500938628474684","host":"s3://npm-registry-packages-npm-production"}},"2026.2.19":{"name":"openclaw","version":"2026.2.19","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.19","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"43d6f3aed86e40681b00eb6eebc8a4fb34d85841","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.19.tgz","fileCount":7676,"integrity":"sha512-7BVEmjgGHbNXa0pONQkSl3nE6PTUm5CxJDYycV99+siGOPvWTfKapxJ4I/+gqVnt6fZXdAS4KgJV5CcnwwN1PQ==","signatures":[{"sig":"MEUCIEZGnhMMoh9kfQKVemRToEVjrFMacDIR0b5YdQBvTrKkAiEArt3wnkMbAzSkfRMWnGCIGJl/6swBayol8OOQV1MEXog=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67930356},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"243549986275a9a7ff9021bc57360ddf041a6835","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.39","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.53.0","@mariozechner/pi-tui":"0.53.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.993.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.53.0","@mariozechner/pi-coding-agent":"0.53.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.33.0","ollama":"^0.6.3","oxlint":"^1.48.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.5","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260219.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.19_1771517132653_0.484899632419719","host":"s3://npm-registry-packages-npm-production"}},"2026.2.19-1":{"name":"openclaw","version":"2026.2.19-1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.19-1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"995cff46265f18964a252e63a9ce3c39768144a6","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.19-1.tgz","fileCount":7676,"integrity":"sha512-WKLyElBNEvvVeRw9Y7yv4nJibXAf6e6ehoZZIo5q3hGEDQc70rKUC2uzMrEsIdeMwN4XmLd9Gu8AYWSmhf2VNQ==","signatures":[{"sig":"MEYCIQDiwciiUk/X/rBffatoIxdn6GYXQn/0Xn3HItCwMczBkQIhAMpCwgMoL4HcFHVqu3DkjBAqGjNGBJOw3O9mnP4Cr5F0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67931434},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"45d9b2069264451d005ae612f2044e7deb8b44c0","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.39","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.53.0","@mariozechner/pi-tui":"0.53.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.993.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.53.0","@mariozechner/pi-coding-agent":"0.53.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.33.0","ollama":"^0.6.3","oxlint":"^1.48.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.5","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260219.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.19-1_1771519694257_0.8513621429691156","host":"s3://npm-registry-packages-npm-production"}},"2026.2.19-2":{"name":"openclaw","version":"2026.2.19-2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.19-2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"60bafa36d6eac7784a3a95cd2ca3e305ab0ac26a","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.19-2.tgz","fileCount":7676,"integrity":"sha512-nM6gPesq1rTkJMP0RXQH3iq776Dsoht1Jsv+tKtk40k4qc09aFk3Vfu7OsEFAMmqIO4LJUmh0Z8uZ1VOXvER4w==","signatures":[{"sig":"MEUCIQDRhnBKuFSxxg0w9hM2vnJvGKGA+m+87o3Qyvqn6P/nZAIgL0Ywz52pJksDcB1dV/Fs5TGtZ1tiCyDPnjaMZUG0vmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67931179},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"45d9b2069264451d005ae612f2044e7deb8b44c0","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.39","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.53.0","@mariozechner/pi-tui":"0.53.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.993.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.53.0","@mariozechner/pi-coding-agent":"0.53.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.33.0","ollama":"^0.6.3","oxlint":"^1.48.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.5","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260219.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.19-2_1771520524749_0.8821506868819877","host":"s3://npm-registry-packages-npm-production"}},"2026.2.21":{"name":"openclaw","version":"2026.2.21","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.21","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"44c361725c46ea226bad81c75ada388a134c92fc","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.21.tgz","fileCount":7811,"integrity":"sha512-8YFnp511Qb/MvbVMpC32jqyyOU3rXeB+7Z1GD8gqP6oCCZZKYC0nqMHG7YCTS6y8RxQAulZ1EmV4/FelzxZt+w==","signatures":[{"sig":"MEQCIF00Qpzs9wDXQ4zlvC7jfbEXQ/AB+0qic4F/1FaWceE2AiAYlixzuyEVUzO4ozW6709MKZuLsabaXG5PsaMBfpVZ7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69951678},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"d9844c6afa2d6c6c8a7a4fb3b004b5c0456d184e","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@discordjs/opus":"^0.10.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.0","@mariozechner/pi-tui":"0.54.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.0","@mariozechner/pi-coding-agent":"0.54.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260221.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.21_1771689720437_0.5655021736064632","host":"s3://npm-registry-packages-npm-production"}},"2026.2.21-1":{"name":"openclaw","version":"2026.2.21-1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.21-1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"a8d5867c94deb8544977b6e1115c921859958527","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.21-1.tgz","fileCount":7811,"integrity":"sha512-OCZ7idnkoOBV3QIsgsvfhDmandJsme6Of0drOoE8dEXi4wJ+qsypDN1F/a56tVnCrJwG1qsYDXGwVn/e5MZ2Xg==","signatures":[{"sig":"MEQCICyhxGmoh2xbXsxvKV7j6o5I42dAelT280idU+iY8RxoAiBMRaO98lZAtWeD9xgznUV5biGhYU8OnDfY9beo9kobcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69961964},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"e93ba6ce2af3c7cecf36e3fe347a394b21bafcb1","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@discordjs/opus":"^0.10.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.0","@mariozechner/pi-tui":"0.54.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.0","@mariozechner/pi-coding-agent":"0.54.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260221.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.21-1_1771692177688_0.6803595599065377","host":"s3://npm-registry-packages-npm-production"}},"2026.2.21-2":{"name":"openclaw","version":"2026.2.21-2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.21-2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"a1b1f20f4e8d038e876263648b570982feecf25d","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.21-2.tgz","fileCount":9791,"integrity":"sha512-94A3zydfHDcX8SxwExWfqDsGTn/DJRPKBttyj1Zmj1vcJLHXge/zG1zvfD7hzJaKxuj1nPx6Lxfiw0H777IhZQ==","signatures":[{"sig":"MEUCIEzmuUQEK+bt4t2Ey74wgN8sI1k3rdg9TPW7eVOG03n8AiEA9gRO1U/XTYx9ZKYlAt6XvyhBbKCoqVRSLjeP8Yq8WzA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77263324},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"35a57bc940833a6c1f594b2308e349e5ee0148db","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@discordjs/opus":"^0.10.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.0","@mariozechner/pi-tui":"0.54.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.0","@mariozechner/pi-coding-agent":"0.54.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260221.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.21-2_1771693832396_0.8459503211473087","host":"s3://npm-registry-packages-npm-production"}},"2026.2.22":{"name":"openclaw","version":"2026.2.22","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.22","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"c02e06a1c005041c08a89c9a090ebbb8eb481d67","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.22.tgz","fileCount":7920,"integrity":"sha512-Bd+0qKfXL5sjzxnyjAVywIkGgl5riY2HOqWUA829+VRIih3TRLYOVXaO7rHb9getXR5jSWwiLliNloPXzcrfxw==","signatures":[{"sig":"MEUCIHiHBVKtZg/FEH3NScN9U20i33lXHNrt0kggjj7GYRkFAiEA4sUoOCiCeyPA4ciOtT5wQUSTNZzvht4m6N4m5B0M4aI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71564750},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"70dd6a30e7935691fc487cd78fbf52cde4eec9d7","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.1","@mariozechner/pi-tui":"0.54.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.1","@mariozechner/pi-coding-agent":"0.54.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260222.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.22_1771806986803_0.30431822976562817","host":"s3://npm-registry-packages-npm-production"}},"2026.2.22-1":{"name":"openclaw","version":"2026.2.22-1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.22-1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"3095343d90df48a1163b8c9dbe6e4c8fa1f33378","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.22-1.tgz","fileCount":9902,"integrity":"sha512-I6t7qLufdpWMPcUmlLcuIcAOdMVB8dfg2QtAA1/eAGvCumftw2tfFsBEj8ts5Sz23CPK3BiWQpIoP8SUqGBgIQ==","signatures":[{"sig":"MEQCIBq1Us9MuzvVu6IDpAGU33AtI+lpcJ4ZxWVUUGJlkVo2AiB+VAOcoxZssPuScF5NvcWKhWqBxyYtDOiHT0GGf4bPRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78857380},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"bac26b4472873192d2aa40a159f74435e9c93b96","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.1","@mariozechner/pi-tui":"0.54.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.1","@mariozechner/pi-coding-agent":"0.54.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260222.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.22-1_1771808647602_0.8564571946133495","host":"s3://npm-registry-packages-npm-production"}},"2026.2.22-2":{"name":"openclaw","version":"2026.2.22-2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.22-2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"e42433b28801a4cc8aa4a42cc00bff69cd95fad6","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.22-2.tgz","fileCount":9902,"integrity":"sha512-dccxOCj4In709eTr56CK3j2KvlgrHK9LGcME+/3jnKDp+P29TRDagBXv7yw3YVh/Gqvblm3g/7eSmbjV+EmKXg==","signatures":[{"sig":"MEUCIQC1eI5HTHrSGngRmWS/LmtmTThmdUSVPU88lgQWMYbH8gIgE7mhlfmPLxQNOsmhSvjRalNGPEzKKVlcHU6va5X+cfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78856963},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"45febecf2a2d91fd1a378bb2cae38ec21e71857e","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.1","@mariozechner/pi-tui":"0.54.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.1","@mariozechner/pi-coding-agent":"0.54.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260222.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.22-2_1771809560767_0.8352829064257146","host":"s3://npm-registry-packages-npm-production"}},"2026.2.23-beta.1":{"name":"openclaw","version":"2026.2.23-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.23-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"e5d198df5f79fbdf64a70842bf72292a9858d28a","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.23-beta.1.tgz","fileCount":9943,"integrity":"sha512-TUZnLeQ9VQdaMFxPw3bu1WHrPeGhzNiUD1PoYYc3JfoTVGeKEv/lEgApapWH5oZKFPXs1hzX3YfrP+Jfw8HW/g==","signatures":[{"sig":"MEQCIBn/gd+VnyhYgH7uhU0R8ZTU3ROQ0EhioikXyFTHM0LGAiAzY+xHStzCQeBrDShQ8vSqQWEWc3CN45+VRlkbwbp65w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79825307},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"fd10286819b3826659ebc14dc5063295b8036090","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.1","@mariozechner/pi-tui":"0.54.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.1","@mariozechner/pi-coding-agent":"0.54.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260222.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.23-beta.1_1771908941940_0.09854494707345873","host":"s3://npm-registry-packages-npm-production"}},"2026.2.23":{"name":"openclaw","version":"2026.2.23","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.23","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"2d0f7ba070fb8ba23de4b1bd77c0abe50e77486a","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.23.tgz","fileCount":9943,"integrity":"sha512-7I7G898212v3OzUidgM8kZdZYAziT78Dc5zgeqsV2tfCbINtHK0Pdc2rg2eDLoDYAcheLh0fvH5qn/15Yu9q7A==","signatures":[{"sig":"MEUCIEBlJcRV6KhlQp6JSjhAjx+7sYpHecfkILzCLLjm7u0ZAiEAqx+AHolLsEFvz6nVg939B3nr0pSs5fTWvuYL89YscOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79825827},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"b817600533129771ace2801d7c05901c7f850fb8","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.1","@mariozechner/pi-tui":"0.54.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.1","@mariozechner/pi-coding-agent":"0.54.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260222.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.23_1771911617087_0.646467600513017","host":"s3://npm-registry-packages-npm-production"}},"2026.2.24":{"name":"openclaw","version":"2026.2.24","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.24","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"aba5c1ffef749add66a3a68645f0914df59a660e","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.24.tgz","fileCount":7950,"integrity":"sha512-a6zrcS6v5tUWqzsFh5cNtyu5+Tra1UW5yvPtYhRYCKSS/q6lXrLu+dj0ylJPOHRPAho2alZZL1gw1Qd2hAd2sQ==","signatures":[{"sig":"MEYCIQCj2fTkv6tb/HVA4kmbWnQQbgXGJkhuyoH/otiZQt06PAIhALLUwDOv+buD0nbYOtojuOYmmUR5uFleNJIQaHTrZ4Yb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72967114},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"df9a474891d48084a452a2f809fb239dc751c323","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@snazzah/davey":"^0.1.9","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.55.0","@mariozechner/pi-tui":"0.55.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.997.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.55.0","@mariozechner/pi-coding-agent":"0.55.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.35.0","oxlint":"^1.50.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.15.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260224.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.24_1771987819178_0.8339033156618398","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-01-29T11:08:11.861Z","modified":"2026-02-25T03:30:29.993Z","0.0.1":"2026-01-29T11:08:12.101Z","2026.1.29-beta.1":"2026-01-30T02:20:55.235Z","2026.1.29-beta.2":"2026-01-30T03:02:11.646Z","2026.1.29-beta.3":"2026-01-30T03:11:31.731Z","2026.1.29-beta.4":"2026-01-30T03:28:15.173Z","2026.1.29-beta.5":"2026-01-30T03:38:47.268Z","2026.1.29-beta.7":"2026-01-30T04:02:58.217Z","2026.1.29":"2026-01-30T04:49:17.280Z","2026.1.30":"2026-01-31T13:11:58.089Z","2026.2.1":"2026-02-02T11:45:27.606Z","2026.2.2":"2026-02-04T00:56:41.932Z","2026.2.2-1":"2026-02-04T01:27:05.304Z","2026.2.2-2":"2026-02-04T01:32:47.566Z","2026.2.2-3":"2026-02-04T02:07:15.985Z","2026.2.3":"2026-02-05T01:38:27.585Z","2026.2.3-1":"2026-02-05T07:58:05.642Z","2026.2.6":"2026-02-07T01:50:47.396Z","2026.2.6-1":"2026-02-07T06:58:31.167Z","2026.2.6-2":"2026-02-07T08:33:28.417Z","2026.2.6-3":"2026-02-07T08:46:48.158Z","2026.2.9":"2026-02-09T19:01:11.300Z","2026.2.12":"2026-02-13T01:53:22.639Z","2026.2.13":"2026-02-14T03:20:08.219Z","2026.2.14":"2026-02-15T02:59:48.267Z","2026.2.15":"2026-02-16T03:56:42.422Z","2026.2.17":"2026-02-18T02:47:54.422Z","2026.2.19":"2026-02-19T16:05:33.610Z","2026.2.19-1":"2026-02-19T16:48:15.099Z","2026.2.19-2":"2026-02-19T17:02:05.631Z","2026.2.21":"2026-02-21T16:02:01.230Z","2026.2.21-1":"2026-02-21T16:42:58.440Z","2026.2.21-2":"2026-02-21T17:10:33.153Z","2026.2.22":"2026-02-23T00:36:27.582Z","2026.2.22-1":"2026-02-23T01:04:08.398Z","2026.2.22-2":"2026-02-23T01:19:21.625Z","2026.2.23-beta.1":"2026-02-24T04:55:42.721Z","2026.2.23":"2026-02-24T05:40:17.896Z","2026.2.24":"2026-02-25T02:50:19.980Z"},"bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"license":"MIT","homepage":"https://github.com/openclaw/openclaw#readme","keywords":[],"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"description":"Multi-channel AI gateway with extensible messaging integrations","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"readme":"","readmeFilename":""}