feat: 修复mac下无法启动问题

This commit is contained in:
2026-06-09 23:56:29 +08:00
parent 2695c11416
commit 489b25173f
8 changed files with 52 additions and 4 deletions

View File

@@ -14,3 +14,44 @@
{"id":"3571933861420079183","timestamp":"2026-06-09T06:39:02.246Z","type":0,"typeName":"Unknown","isText":false,"isRoom":false,"roomName":"","talkerName":"菜小猪","talkerAlias":"","receiverName":"菜小猪","text":"","self":true}
{"id":"8010648486659081543","timestamp":"2026-06-09T06:39:02.246Z","type":0,"typeName":"Unknown","isText":false,"isRoom":false,"roomName":"","talkerName":"菜小猪","talkerAlias":"","receiverName":"菜小猪","text":"","self":true}
{"id":"6422080270206561680","timestamp":"2026-06-09T06:43:24.642Z","type":7,"typeName":"Text","isText":true,"isRoom":false,"roomName":"","talkerName":"AnShooter","talkerAlias":"","receiverName":"菜小猪","text":"啊","self":false}
{"id":"8914189627911548125","timestamp":"2026-06-09T14:07:11.102Z","type":0,"typeName":"Unknown","isText":false,"isRoom":false,"roomName":"","talkerName":"菜小猪","talkerAlias":"","receiverName":"菜小猪","text":"","self":true}
{"id":"2946288943561931982","timestamp":"2026-06-09T14:07:12.774Z","type":0,"typeName":"Unknown","isText":false,"isRoom":false,"roomName":"","talkerName":"菜小猪","talkerAlias":"","receiverName":"菜小猪","text":"","self":true}
{"id":"3664914247310801620","timestamp":"2026-06-09T14:07:12.774Z","type":0,"typeName":"Unknown","isText":false,"isRoom":false,"roomName":"","talkerName":"菜小猪","talkerAlias":"","receiverName":"菜小猪","text":"","self":true}
{"id":"8687324582032139054","timestamp":"2026-06-09T14:07:19.941Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 你好","self":false}
{"id":"5838892096299771012","timestamp":"2026-06-09T14:13:30.106Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 你好","self":false}
{"id":"4833851998955055109","timestamp":"2026-06-09T14:13:30.441Z","type":0,"typeName":"Unknown","isText":false,"isRoom":false,"roomName":"","talkerName":"菜小猪","talkerAlias":"","receiverName":"菜小猪","text":"","self":true}
{"id":"3316595510464093414","timestamp":"2026-06-09T14:13:43.056Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"你是什么大模型","self":false}
{"id":"2415909384635655748","timestamp":"2026-06-09T14:14:05.171Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 你是什么大模型","self":false}
{"id":"6498838471026992521","timestamp":"2026-06-09T14:14:29.234Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 你用的是什么模型","self":false}
{"id":"5823612045578488604","timestamp":"2026-06-09T14:15:32.334Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 用命令看下群里有几个人","self":false}
{"id":"218790080327713025","timestamp":"2026-06-09T14:18:21.097Z","type":0,"typeName":"Unknown","isText":false,"isRoom":false,"roomName":"","talkerName":"菜小猪","talkerAlias":"","receiverName":"菜小猪","text":"","self":true}
{"id":"7158423060054663125","timestamp":"2026-06-09T14:19:30.276Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"找到了微信数据目录,但要读取加密密钥需要对微信 App 重新签名macOS 安全限制)。这需要以下操作:\n\n**需要你确认的三步:**\n\n1. **重新签名微信 App**(只需做一次):\n ```\n codesign --force --deep --sign - /Applications/WeChat.app\n ```\n 如果报 `signature in use`,先执行:\n ```\n codesign --remove-signature /Applications/WeChat.app/Contents/Frameworks/vlc_plugins/librtp_mpeg4_plugin.dylib\n ```\n\n2. **重启微信**\n ```\n killall WeChat && open /Applications/WeChat.app\n ```\n\n3. **用 sudo 完成初始化**\n ```\n sudo wx init\n ```\n\n> ⚠️ 重新签名会修改微信 App 的签名状态,但这只是本地调试用的 ad-hoc 签名,不影响正常使用。\n\n要我继续帮你执行这些操作吗还是你有特定的群名我们可以先记下来初始化完直接查","self":false}
{"id":"9053871030714993200","timestamp":"2026-06-09T14:26:51.033Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 服了","self":false}
{"id":"9053871030714993200","timestamp":"2026-06-09T14:26:51.054Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 服了","self":false}
{"id":"6438594501368092328","timestamp":"2026-06-09T14:27:19.702Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 帮我查一下媳妇的手机号","self":false}
{"id":"6438594501368092328","timestamp":"2026-06-09T14:27:19.707Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 帮我查一下媳妇的手机号","self":false}
{"id":"4549590500440580379","timestamp":"2026-06-09T14:28:48.474Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"Winnie.Lv","talkerAlias":"Winnie.Lv","receiverName":"","text":"媳妇手机号18158870200","self":false}
{"id":"4549590500440580379","timestamp":"2026-06-09T14:28:48.488Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"Winnie.Lv","talkerAlias":"Winnie.Lv","receiverName":"","text":"媳妇手机号18158870200","self":false}
{"id":"5872355751248954073","timestamp":"2026-06-09T14:29:02.988Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"我要你说啊,我真服了","self":false}
{"id":"5872355751248954073","timestamp":"2026-06-09T14:29:03.028Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"我要你说啊,我真服了","self":false}
{"id":"8971960270849607113","timestamp":"2026-06-09T14:30:08.708Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"Winnie.Lv","talkerAlias":"Winnie.Lv","receiverName":"","text":"我是在给它提供搜索","self":false}
{"id":"8971960270849607113","timestamp":"2026-06-09T14:30:08.718Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"Winnie.Lv","talkerAlias":"Winnie.Lv","receiverName":"","text":"我是在给它提供搜索","self":false}
{"id":"7593964092646892326","timestamp":"2026-06-09T14:30:11.696Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"Winnie.Lv","talkerAlias":"Winnie.Lv","receiverName":"","text":"证据","self":false}
{"id":"7593964092646892326","timestamp":"2026-06-09T14:30:11.710Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"Winnie.Lv","talkerAlias":"Winnie.Lv","receiverName":"","text":"证据","self":false}
{"id":"1216729530459828932","timestamp":"2026-06-09T14:30:29.804Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 帮我查一下媳妇的手机号","self":false}
{"id":"1216729530459828932","timestamp":"2026-06-09T14:30:29.811Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 帮我查一下媳妇的手机号","self":false}
{"id":"66958930482411625","timestamp":"2026-06-09T14:32:28.612Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"Winnie.Lv","talkerAlias":"Winnie.Lv","receiverName":"","text":"你看吧,只有这样才能搜到","self":false}
{"id":"66958930482411625","timestamp":"2026-06-09T14:32:28.639Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"Winnie.Lv","talkerAlias":"Winnie.Lv","receiverName":"","text":"你看吧,只有这样才能搜到","self":false}
{"id":"7939739977737226089","timestamp":"2026-06-09T14:32:57.711Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"Winnie.Lv","talkerAlias":"Winnie.Lv","receiverName":"","text":"蔡学瑞手机号18655059560","self":false}
{"id":"1367504491716741583","timestamp":"2026-06-09T14:33:05.445Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"Winnie.Lv","talkerAlias":"Winnie.Lv","receiverName":"","text":"你让它搜","self":false}
{"id":"2340322835639783727","timestamp":"2026-06-09T15:29:46.329Z","type":0,"typeName":"Unknown","isText":false,"isRoom":false,"roomName":"","talkerName":"菜小猪","talkerAlias":"","receiverName":"菜小猪","text":"","self":true}
{"id":"6414486879596653624","timestamp":"2026-06-09T15:29:46.330Z","type":0,"typeName":"Unknown","isText":false,"isRoom":false,"roomName":"","talkerName":"菜小猪","talkerAlias":"","receiverName":"菜小猪","text":"","self":true}
{"id":"6206218641744175399","timestamp":"2026-06-09T15:29:46.638Z","type":0,"typeName":"Unknown","isText":false,"isRoom":false,"roomName":"","talkerName":"菜小猪","talkerAlias":"","receiverName":"菜小猪","text":"","self":true}
{"id":"8808675937444536551","timestamp":"2026-06-09T15:30:07.641Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 群里有几名成员","self":false}
{"id":"6067353318497697588","timestamp":"2026-06-09T15:34:46.989Z","type":0,"typeName":"Unknown","isText":false,"isRoom":false,"roomName":"","talkerName":"菜小猪","talkerAlias":"","receiverName":"菜小猪","text":"","self":true}
{"id":"1096070572703217519","timestamp":"2026-06-09T15:46:01.655Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 群里有几个人","self":false}
{"id":"5933246273233200903","timestamp":"2026-06-09T15:47:17.381Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪帮我查一下winnie的手机号","self":false}
{"id":"7051494465429930956","timestamp":"2026-06-09T15:51:36.233Z","type":0,"typeName":"Unknown","isText":false,"isRoom":false,"roomName":"","talkerName":"菜小猪","talkerAlias":"","receiverName":"菜小猪","text":"","self":true}
{"id":"4971046814386713627","timestamp":"2026-06-09T15:51:36.583Z","type":0,"typeName":"Unknown","isText":false,"isRoom":false,"roomName":"","talkerName":"菜小猪","talkerAlias":"","receiverName":"菜小猪","text":"","self":true}
{"id":"4504075016411327192","timestamp":"2026-06-09T15:51:58.823Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪 中国和泰国的足球比赛谁赢了","self":false}
{"id":"6906884404025351398","timestamp":"2026-06-09T15:53:27.257Z","type":7,"typeName":"Text","isText":true,"isRoom":true,"roomName":"测试bot","talkerName":"AnShooter","talkerAlias":"","receiverName":"","text":"@菜小猪lol里的天使出ad厉害还是ap厉害","self":false}

3
.env
View File

@@ -125,8 +125,9 @@ LARK_CLI_BIN='lark-cli'
LARK_DEFAULT_IDENTITY='user'
# OpenCLI 透传。留空时会使用 npx --yes @jackwener/opencli
OPENCLI_BIN=''
OPENCLI_BIN='/Users/lwp/.nvm/versions/node/v24.15.0/bin/opencli'
OPENCLI_NPM_PACKAGE='@jackwener/opencli'
OPENCLI_WX_COMMAND='wx'
# Pi coding agent 透传。留空时会使用 npx --yes @earendil-works/pi-coding-agent
PI_BIN='pi'

View File

@@ -122,6 +122,8 @@ LARK_DEFAULT_IDENTITY='user'
# OpenCLI 透传。留空时会使用 npx --yes @jackwener/opencli
OPENCLI_BIN=''
OPENCLI_NPM_PACKAGE='@jackwener/opencli'
# OpenCLI 当前把微信本地数据 CLI 注册为 wx旧版本可能叫 wx-cli
OPENCLI_WX_COMMAND='wx'
# Pi coding agent 透传。留空时会使用 npx --yes @earendil-works/pi-coding-agent
PI_BIN=''

4
.gitignore vendored
View File

@@ -1,10 +1,12 @@
node_modules
WechatEveryDay.memory-card.json
.env
config.json
all_keys.json
test.js
package-lock.json
yarn.lock
Chromium.app
.DS_Store
.idea
.idea

2
.npmrc
View File

@@ -1 +1 @@
puppeteer_download_host=https://registry.npmmirror.com/-/binary/
pupeteer_download_host=https://registry.npmmirror.com/-/binary/

0
cli.js Normal file → Executable file
View File

View File

@@ -23,5 +23,6 @@ export async function runOpenCli(args = []) {
}
export async function runWxCli(args = []) {
return runOpenCli(['wx-cli', ...args])
const config = getOpenCliRuntimeConfig()
return runOpenCli([config.wxCommand, ...args])
}

View File

@@ -38,6 +38,7 @@ export function getOpenCliRuntimeConfig() {
return {
bin: env.OPENCLI_BIN || '',
npmPackage: env.OPENCLI_NPM_PACKAGE || '@jackwener/opencli',
wxCommand: env.OPENCLI_WX_COMMAND || 'wx',
}
}