@unlinearity/cli-wechat-bridge
BMCP server package cli-wechat-bridge
Install
agr install @unlinearity/cli-wechat-bridge --target claudeThis artifact does not publish files for Claude.
Document
{ "name": "cli-wechat-bridge", "version": "1.1.2", "description": "CLI WeChat Bridge for Codex, Claude Code, OpenCode, and PowerShell over WeChat", "type": "module", "files": [ "bin/", "dist/", "scripts/ensure-node-pty-permissions.mjs", "README.md", "LICENSE.txt" ], "keywords": [ "wechat", "cli", "bridge", "codex", "claude", "opencode", "terminal" ], "author": "UNLINEARITY", "license": "AGPL-3.0-or-later", "repository": { "type": "git", "url": "git+https://github.com/UNLINEARITY/CLI-WeChat-Bridge.git" }, "bugs": { "url": "https://github.com/UNLINEARITY/CLI-WeChat-Bridge/issues" }, "homepage": "https://github.com/UNLINEARITY/CLI-WeChat-Bridge#readme", "publishConfig": { "access": "public" }, "bin": { "wechat-bridge": "bin/wechat-bridge.mjs", "wechat-bridge-codex": "bin/wechat-bridge-codex.mjs", "wechat-codex": "bin/wechat-codex.mjs", "wechat-codex-start": "bin/wechat-codex-start.mjs", "wechat-claude": "bin/wechat-claude.mjs", "wechat-claude-start": "bin/wechat-claude-start.mjs", "wechat-bridge-claude": "bin/wechat-bridge-claude.mjs", "wechat-bridge-shell": "bin/wechat-bridge-shell.mjs", "wechat-bridge-opencode": "bin/wechat-bridge-opencode.mjs", "wechat-opencode": "bin/wechat-opencode.mjs", "wechat-opencode-start": "bin/wechat-opencode-start.mjs", "wechat-daemon": "bin/wechat-daemon.mjs", "wechat-setup": "bin/wechat-setup.mjs", "wechat-check-update": "bin/wechat-check-update.mjs" }, "scripts": { "postinstall": "node scripts/ensure-node-pty-permissions.mjs", "clean": "node -e "require('node:fs').rmSync('dist', { recursive: true, force: true })"", "build": "npm run clean && tsc -p tsconfig.build.json", "prepack": "npm run build", "lint": "eslint bin src test", "lint:fix": "eslint bin src test --fix", "typecheck:src": "tsc -p tsconfig.typecheck.src.json --noEmit --pretty false", "quality": "npm run lint && npm run typecheck:src && bun test test && npm run build", "smoke:global": "node scripts/smoke-global-install.mjs", "publish:dual": "node scripts/publish-dual.mjs", "setup": "node --no-warnings --experimental-strip-types src/wechat/setup.ts", "start": "node --no-warnings --experimental-strip-types src/wechat/wechat-channel.ts", "check": "node --no-warnings --experimental-strip-types src/wechat/wechat-channel.ts --check", "bridge": "node --no-warnings --experimental-strip-types src/bridge/wechat-bridge.ts", "daemon": "node --no-warnings --experimental-strip-types src/daemon/wechat-daemon.ts", "bridge:codex": "node --no-warnings --experimental-strip-types src/bridge/wechat-bridge.ts --adapter codex", "codex:panel": "node --no-warnings --experimental-strip-types src/companion/codex-remote-client.ts", "codex:start": "node --no-warnings --experimental-strip-types src/companion/local-companion-start.ts", "claude:start": "node --no-warnings --experimental-strip-types src/companion/local-companion-start.ts --adapter claude", "claude:companion": "node --no-warnings --experimental-strip-types src/companion/local-companion.ts --adapter claude", "bridge:claude": "node --no-warnings --experimental-strip-types src/bridge/wechat-bridge.ts --adapter claude", "bridge:shell": "node --no-warnings --experimental-strip-types src/bridge/wechat-bridge.ts --adapter shell", "bridge:opencode": "node --no-warnings --experimental-strip-types src/bridge/wechat-bridge.ts --adapter opencode", "opencode:panel": "node --no-warnings --experimental-strip-types src/companion/local-companion.ts --adapter opencode", "opencode:start": "node --no-warnings --experimental-strip-types src/companion/local-companion-start.ts --adapter opencode", "bridge:bun": "bun src/bridge/wechat-bridge.ts", "test": "bun test test", "test:bridge": "bun test test/bridge", "test:companion": "bun test test/companion", "test:wechat": "bun test test/wechat", "test:watch": "bun test --watch test" }, "dependencies": { "@modelcontextprotocol/sdk": "^1.27.1", "@opencode-ai/sdk": "^1.3.2", "node-pty": "^1.1.0", "qrcode-terminal": "^0.12.0" }, "devDependencies": { "@eslint/js": "^10.0.1", "@types/bun": "latest", "@types/node": "^24.12.4", "eslint": "^10.3.0", "typescript": "^6.0.2", "typescript-eslint": "^8.59.3" }, "engines": { "bun": ">=1.0.0", "node": ">=24.0.0" } }
Trustgrade B
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- warnType matchbest-effort: server code not analyzed
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- warnLicensecopyleft/unknown — index-and-link only
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-39667a4bd4b42026-08-06