{"_id":"ghost-bridge","_rev":"38-ce2407bb20ede3f9576fd3f1e0261b7b","name":"ghost-bridge","dist-tags":{"latest":"1.2.2"},"versions":{"0.2.0":{"name":"ghost-bridge","version":"0.2.0","_id":"ghost-bridge@0.2.0","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"ca55e66d21d86a84d8e4933810d93f36fd42c389","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.2.0.tgz","fileCount":14,"integrity":"sha512-EJu/o1hwfoeDu8K7CJHEBE83Bx72np1QJaucZ/q5QlAkMwWcgH9kvuuoUSEOq1+AIUDaP35Sa7YQPgg1w1Lm7g==","signatures":[{"sig":"MEUCIQD7WfDnrGJLxJZmGHcnw1fzTnaOtRLonGS1naMEONkNxAIgFbxFLmIlk4SXS1zvjvHezycXgOv4i3X09ozBCnL2aQs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1298024},"main":"./dist/server.js","type":"module","gitHead":"eca8d92655f9a218d709ad925730c5be1438108f","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","_npmVersion":"10.9.0","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"20.15.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.2.0_1770374206455_0.343357848408288","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"ghost-bridge","version":"0.2.1","_id":"ghost-bridge@0.2.1","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"aa3247435e666277b42778381ac1d98cd584b74c","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.2.1.tgz","fileCount":14,"integrity":"sha512-9VgB06AfweCHsn4BHWLBrHT1xjsim0qvGlb9BK5BvkVLKGN/BOOSKedtT9lWuoMWNqtZRq6dWdO1v5gZpf0Aeg==","signatures":[{"sig":"MEUCIEMJhLE/fNcnSmN+27zs+yTDUUT1TagC5Mdl3QO2GBfdAiEApqN2FC5VzOR63I7R5MVuKVdTf97PS2B2G1I2Uqrs86s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1297590},"main":"./dist/server.js","type":"module","gitHead":"eca8d92655f9a218d709ad925730c5be1438108f","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","_npmVersion":"10.9.0","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"20.15.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.2.1_1770375234643_0.25612149380601945","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"ghost-bridge","version":"0.2.2","_id":"ghost-bridge@0.2.2","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"aecd73a30f20c28405bfc081f7e25683e29977f3","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.2.2.tgz","fileCount":14,"integrity":"sha512-RBLdJIfUaDqaaWomDn0VwL9Jji7E32/vkdXWWYCSmh0NjYQzuU+HGywDuoRr3XYILTG7pQPvqC6DKO+AhW3mJQ==","signatures":[{"sig":"MEUCIG5uvAO2WZhcbFaxQSWvJNLPV+ZEoMgOQLFC1MdZ+mJzAiEA/6DOOtcOzrlipFxJzw4rU0XptN0sUtk90Hty8Xg+Qtk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1298019},"main":"./dist/server.js","type":"module","gitHead":"021aa0c236a57621a1fc9ac1d4051adb0547f651","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","_npmVersion":"10.9.0","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"20.15.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.2.2_1770695050922_0.9491092578098632","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"ghost-bridge","version":"0.2.3","_id":"ghost-bridge@0.2.3","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"10e7c6ab65c69b29fe8557d6d666aee6ff4d1e5c","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.2.3.tgz","fileCount":14,"integrity":"sha512-XJSPFc763nvNnayACFVT7N7UMPY4uQ67N6P8ZwA2XXc544yxotzAohI1PptMySTxj99qEqvYkB2esGLpbmucrQ==","signatures":[{"sig":"MEYCIQCiH45VwRML4kDdYkcq8dFkcFmDnBFdNkZEaROYxQjQAAIhAMqw8ckrAFU/63N81Rxs/6LQp/IjxBAjcDOn7w12WJoK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1298587},"main":"./dist/server.js","type":"module","gitHead":"af473f47f34a8612de308c5c701282dadb3ded95","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","_npmVersion":"10.9.0","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"20.15.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.2.3_1770695578785_0.8504246622893679","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"ghost-bridge","version":"0.2.5","_id":"ghost-bridge@0.2.5","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"6de37f7500a248d9e410c7933b984dfa6ad74509","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.2.5.tgz","fileCount":14,"integrity":"sha512-8GpB2/onp4FAZOaVgAKdewbumDElBeyS/SAavyG1zdnpmVm2BHMKuNc2CgTEzcCrtf6GeE7vGbadvqThnVXgcg==","signatures":[{"sig":"MEUCIQDF/J1mHN2r7t4lB1xgGgaLvq0mqN9KTtLPmcI/vFl5ZwIgCL2q4fetQo9+XnAbP3MGI05/cK2BSIrk0VfL5wZD1ok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1298637},"main":"./dist/server.js","type":"module","gitHead":"a371f329a2d15937feb02595ca345be071f5cf69","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","_npmVersion":"10.9.0","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"20.15.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.2.5_1770807635197_0.8308623520431455","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"ghost-bridge","version":"0.3.0","_id":"ghost-bridge@0.3.0","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"8a0615d5060a8c372a1a5fe002b42f25f567c348","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.3.0.tgz","fileCount":14,"integrity":"sha512-V1+O5Xrbdx7FXeYCSX3sjALpY2BdjbffrTTFYB1mz3WY5Re+jR7JA37DbeUtjYSNYglMmm6boouIkoK+1V+BEA==","signatures":[{"sig":"MEUCIQCVXiP4wHdM6tWWqdbLvOw8vfJbCa6sxrsU5pvBeYYn5wIgfeqTSMSztzKqrQvsQbL3uuGf0VxfZWEQujymL8fnEQs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1305851},"main":"./dist/server.js","type":"module","gitHead":"a371f329a2d15937feb02595ca345be071f5cf69","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","_npmVersion":"10.9.0","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"20.15.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.3.0_1772593227492_0.28926817222385526","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"ghost-bridge","version":"0.4.0","_id":"ghost-bridge@0.4.0","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"424487c3ab91bc9b8572b75d3f0932f87ebc1233","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.4.0.tgz","fileCount":14,"integrity":"sha512-WO1VMx5z/MC432DkSCwHlDMNupd8ZwXax0XZS9Uop05L4sawzZN/ezYzcMNpp/1ofFgVNKAxEEl7T9K+F1qF/A==","signatures":[{"sig":"MEUCIQCRUjv62cJeK6ZLCvKqCr4Zxufvoh33x4rG2QCiRqYZ/AIgYHdhCaKfoVpiMHm2kgROhdjs8tCUaCauotlyjgkCkTw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1326104},"main":"./dist/server.js","type":"module","gitHead":"d6dd21d74239253f0904adc8c7dd04f3efa53c12","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","_npmVersion":"10.9.0","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"20.15.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.4.0_1772781392611_0.12082384059780682","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"ghost-bridge","version":"0.5.0","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@0.5.0","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/<Username>/ghost-bridge#readme","bugs":{"url":"https://github.com/<Username>/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"78b43bf6b75f1d2a7dd8223c5f52f0ba84a9344d","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.5.0.tgz","fileCount":15,"integrity":"sha512-AEKLVU/aa0oWGUz2Zg6g4tensxM2eRGCuuc6j1PLuXtTzQVUd0/EkXukVf+sZk7lrZyYKSGc0cmrOis2xpOFlQ==","signatures":[{"sig":"MEYCIQD4XKffXHzIcKEf36/siBZO9l/QOw5SdjiM+PzGHP/MzwIhAPTGH1ocxpK2sYREmTqHIyU7bAKT41OhFJF7FnzRMxfJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1360984},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3c7597c177b595e71879ab0facec77ef13e35a6c","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","repository":{"url":"git+https://github.com/<Username>/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.0","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"20.15.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.5.0_1773291826224_0.2116401712527327","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"ghost-bridge","version":"0.5.1","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@0.5.1","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/<Username>/ghost-bridge#readme","bugs":{"url":"https://github.com/<Username>/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"e715b5514413199b4851d111564dc7f7d865f622","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.5.1.tgz","fileCount":15,"integrity":"sha512-8ZN8l5IrkEFD01d9AqxR3AH4DFzmw3ZlI8WfoK++IWLa+DONcCAx2umAOZ6vzdgXi4vixY+a/ML4JHVvY385sA==","signatures":[{"sig":"MEUCICwC5QtYKE16pEcajbA81YWTLtOVJJZh8mBHEE28QcpLAiEAjLtIAOz0yxrV9//h0HFHQYXjf+Cj4ZVhfzdZqlenRWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1376067},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"72c9f9731eefba269532497eff5ffb75ee7b7261","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","repository":{"url":"git+https://github.com/<Username>/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.5.1_1773654448003_0.13614523162559888","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"ghost-bridge","version":"0.5.2","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@0.5.2","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/<Username>/ghost-bridge#readme","bugs":{"url":"https://github.com/<Username>/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"71e48f2d315580ea6583e4343e37abff446a281a","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.5.2.tgz","fileCount":15,"integrity":"sha512-M1UkA70FEmWzVDxT5xp2R4vkod2C/PQBqOxbgpmTMpJbU/12bPrIfetmRwHwPBcAp5bpV0d9zDxNtbOk3eqevw==","signatures":[{"sig":"MEQCIHCnM2T6+TZv1Ay29UpNzjcI3ENuId6HhNXtyXZR/z1dAiAtBMtjErmZILdnie3b7nzFqHI9nTMsD8UqxWwYdgFiQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1378442},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"72c9f9731eefba269532497eff5ffb75ee7b7261","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","repository":{"url":"git+https://github.com/<Username>/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.5.2_1773656645200_0.19418006011069244","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"ghost-bridge","version":"0.6.0","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@0.6.0","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/<Username>/ghost-bridge#readme","bugs":{"url":"https://github.com/<Username>/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"77745473798feac3f3cf777316e767200275be73","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.6.0.tgz","fileCount":15,"integrity":"sha512-9vn8plkxGPjFyT3C5LtH252SdQ9yO/89NgYycUUSxmeDy2/j9zqr/yHi4cDdFhYPHX/BGN8KlLgtgLV/yQkDnw==","signatures":[{"sig":"MEUCIAV1Uq9X3ikfG2SU+xWtyHh+m0xQ69eqGCrvgAQ/3rTOAiEAk/UU6nz8cZZeSi1uSdQlbz3azwUwBYmzR14VTf8pnG4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1383930},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"72c9f9731eefba269532497eff5ffb75ee7b7261","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","repository":{"url":"git+https://github.com/<Username>/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"ghost-bridge":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.6.0_1773740162016_0.44290401145701774","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"ghost-bridge","version":"0.6.1","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@0.6.1","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/<Username>/ghost-bridge#readme","bugs":{"url":"https://github.com/<Username>/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"a8adde5aaa77b08304b0616f656c23adeaf9a444","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.6.1.tgz","fileCount":15,"integrity":"sha512-tKW6WsCFKLCh8duRsxk3eaCwId6xAMuT15RxwUVkUPgoIdAJb5+8sV/U38/aA9lwCO26J07TrPjmRt4H8mLs+Q==","signatures":[{"sig":"MEUCIQDYIzc8nkKTbCGGK+lNVHMSzTXt3GKAehqyy2qy406trQIgQStoDrgXVVoCq94y/ee40hD4HJF3rCTkcAKaL3KIRUw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1387020},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"72c9f9731eefba269532497eff5ffb75ee7b7261","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","repository":{"url":"git+https://github.com/<Username>/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"ghost-bridge":"^0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.6.1_1773819388402_0.29033868988167755","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"ghost-bridge","version":"0.6.2","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@0.6.2","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/<Username>/ghost-bridge#readme","bugs":{"url":"https://github.com/<Username>/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"0b0cdcb6c30fe6e3a7c793c45d285f24cf77b035","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.6.2.tgz","fileCount":15,"integrity":"sha512-/XOC19r+KWpY6t1TKA4Nr5PoYn1uOZZTEcsMW97stCqO/NYjy+LkeRswYQAgU0lnrH0Bs9i/lBI3FkS1EQx6Cw==","signatures":[{"sig":"MEUCIGU9R7kz5Uo+lJencWmgvR/5+tJ4Vl+erpKxlg+5sS4SAiEAp/auGvCLvWBXt78kqI92ODCa3ptLtnEikmwU06rwRHE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1386966},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"97d446db3e733eee0569e9a66d1d5f6791766d7d","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","repository":{"url":"git+https://github.com/<Username>/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.6.2_1773912888816_0.4750833625018287","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"ghost-bridge","version":"0.7.0","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@0.7.0","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/<Username>/ghost-bridge#readme","bugs":{"url":"https://github.com/<Username>/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"01b696efb4925a16744ae9fd2f1bd21ba73dc888","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.7.0.tgz","fileCount":15,"integrity":"sha512-n/uvxPdr0loz4ss0PxtDnOnGtPBnunYaf26lRjCFxosL/hgrVxYBmhbMmqQ3L7oFwELWyaUSKespE5HOwEdsOA==","signatures":[{"sig":"MEYCIQCPu7XD3Z8OsKjH8ZyGyz8iAfFlFUlXNHCWo64c/dR+cgIhAKtMZGZae/4cphMFRfN/Ga5JV2BVHVrrr0qApgSK4/f2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1389087},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"7b73e229c3b64840aa7f1b7842dcfd94c1707d64","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","repository":{"url":"git+https://github.com/<Username>/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.7.0_1775026769975_0.9857853838376942","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"ghost-bridge","version":"0.7.1","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@0.7.1","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/<Username>/ghost-bridge#readme","bugs":{"url":"https://github.com/<Username>/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"3222471daed9d25b97787b05d1821cfbc1a423ff","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.7.1.tgz","fileCount":16,"integrity":"sha512-RoX/DvGADoo2mdwmV9pMmF5sr+5BS69mQzZwBRJ2YL7gHiC4Jk357oQTQSgbhcCD6sH/KHNJBU7rpKOAJqxgig==","signatures":[{"sig":"MEQCICy1rERFR2R+wriLi6MBit3Af5S7PruulGn55KBmPXf8AiBcHuPXgKHK5Wsi9nOBvtZ8jte3oNUZ9rVFL3mumKA2sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1386802},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"7b73e229c3b64840aa7f1b7842dcfd94c1707d64","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","repository":{"url":"git+https://github.com/<Username>/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.7.1_1776237239532_0.992545453829089","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"ghost-bridge","version":"0.8.0","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@0.8.0","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/<Username>/ghost-bridge#readme","bugs":{"url":"https://github.com/<Username>/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"70993a1c71f116ebccab12acfb32b72e3d4642ac","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.8.0.tgz","fileCount":16,"integrity":"sha512-JVOiV5punuHmcZXm5TLu+uUnCCikyzBb1Ibvss9GHMwNU5f9rSlkB3dOxEH1sod38LLqIKUGP9YwVVtikt2fTg==","signatures":[{"sig":"MEYCIQDz1k1I+aY71v7sOD/2OYxWo0sq6QTE+RGuiT3Itmgi2wIhAO/uies67CWHEw8VV8Az2du2sOPAE/3uUbNkFDziPvjh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1405953},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"9f5db62f0ad18b99aaa56e5260116cd6906f244e","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","repository":{"url":"git+https://github.com/<Username>/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.8.0_1786092823113_0.8772789201093094","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"ghost-bridge","version":"0.9.0","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@0.9.0","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/learnStop163/ghost-bridge#readme","bugs":{"url":"https://github.com/learnStop163/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"cfffdd0d6fbc19096fa7df2f8c00b515f6adb5f1","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.9.0.tgz","fileCount":16,"integrity":"sha512-Uj1zmI06tBEXjV526HCuT6M0Z8RvpPILHexIIzusfmc6UNDPsKhJ5Zl/XGpLwHNbiiBCAfE5XGg3Q2emrjdZUg==","signatures":[{"sig":"MEUCIQDTRyvqiuX6zOrox3bxRyfjT8hcphIsjMe9gguwPTBtnQIgSivTymYiZ39AwOR/OQVVVKSAMEJ/VcsdjtUeqgzi36w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDTx/Tl7vMuVctIs+CG6/o6fXvSl1iYXCYlqINphPG/TwIgcB/Rb4K4hQsR0pOl9Lzd76+d4IC3PySxU/R/lzK7pXY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1429619},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"62d0277864d331e70e76dd76d6006c7da4ad7b7b","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","repository":{"url":"git+https://github.com/learnStop163/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.9.0_1787308935173_0.8876917915445652","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"ghost-bridge","version":"0.9.1","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@0.9.1","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/learnStop163/ghost-bridge#readme","bugs":{"url":"https://github.com/learnStop163/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"57b8a225727afa4cf21a8c8d4b55a113b8c474f2","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-0.9.1.tgz","fileCount":16,"integrity":"sha512-X1VSXzEbT8J/2oZeeUtf340xbiWWPhFgfztxSBVQ/Ai8XKwzbUht5KNUXbf6htku6GjsD65Z7myALOK+vjfH8g==","signatures":[{"sig":"MEYCIQDo0/Ry/pwV8rOO+i6euj0lb6IhRQwweKv+FUrbwFxAdAIhAPXMhgl2xxsG8XJxSn0PTwuB+Fp40NwCkPhUpNy+MgHt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHRVR0RBAWcMxULXLcZHsnsy2MoI1YUZh9sVgDwzOnxIAiEAhrYSldfBye1KhexzZHA/xW8WgC0iWL1KuskA59iQbBE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1435660},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"4f0030b2cfe7033d215842b932649c293bf786ed","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","repository":{"url":"git+https://github.com/learnStop163/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_0.9.1_1788255001580_0.3428679765235818","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"ghost-bridge","version":"1.0.0","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@1.0.0","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/learnStop163/ghost-bridge#readme","bugs":{"url":"https://github.com/learnStop163/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"5d02f7335cc3ac0baf9c63f09a60d6cdbb4ca963","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-1.0.0.tgz","fileCount":16,"integrity":"sha512-1gsjZ+MhU31lZfut2uOuSvRKwpHRK6eMelhAdOvTNxqLL94s1JNUqeV+loA5xX2FrZNjy4zzfc7re7CCBVJ0eQ==","signatures":[{"sig":"MEYCIQCATdDEo82f0B2PwHPskaTb1J6RB2SxJjpTYPslmMsoyAIhAPvBVhHxcifsO22eRKtvmXfh8pxrdHnFwfCMzv33oBJT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEfmNp2yq1nZuDYFBGLxVGHeQzhifUxS9x7/LuSBd/jOAiEArykbInMm+hYcDZFLNi7qcVCwpC9LjU5zAmF4Df3I7yc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1437216},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"3f9a930b487941405fe452816a49c5afc52770c8","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","repository":{"url":"git+https://github.com/learnStop163/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_1.0.0_1788400947181_0.888285240236991","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"ghost-bridge","version":"1.0.1","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@1.0.1","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/learnStop163/ghost-bridge#readme","bugs":{"url":"https://github.com/learnStop163/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"5addbb03a3f246a6d5a4e8cdd0b45db3ae8e2eac","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-1.0.1.tgz","fileCount":16,"integrity":"sha512-9Hif8h5wjGAjLIv9PDsmyHGwEuC79ifQuZFa8WvYf7VCejrYGZHENUNfuczlfGkAYzkZo0y0pEHzXqRIg7NHag==","signatures":[{"sig":"MEUCIEBxjbB4FCy8j0EeEjeuJQW/mEPel0IWxePzY0CgZAj6AiEAv60c+Hc4ib1GaHWtpKKaV5mWh38zP+WoFbvoTGnCpB8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIB9kEpHBTqL7OWtvxXM8REHAtIJ3DfeBx63ni6NurJqqAiEA4e/QUJ3PwvcYLv2DtBG/vTnvfWDuGbm5rihvrCwrFmA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1437265},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"0e7e30a01c646671f1071726aae82886cf2a8fbe","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Superseded: please upgrade to 1.0.2+ (fixes connection lifecycle, debugger deadlock, CLI start path)","repository":{"url":"git+https://github.com/learnStop163/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_1.0.1_1788434101278_0.0009655159442767403","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"ghost-bridge","version":"1.0.2","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@1.0.2","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/learnStop163/ghost-bridge#readme","bugs":{"url":"https://github.com/learnStop163/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"384233f5363b99e2e4a5b05c1b6fa911a4cd01be","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-1.0.2.tgz","fileCount":16,"integrity":"sha512-2kt9mwuGsyKAlSsVrYh2mCyrnCYuusTRZ8nEMp/w7KYneE6nVo4t29ljHV6UHoKDbYrC/PzK/OR0Oq1Mt5xJIQ==","signatures":[{"sig":"MEQCIBDSYQN4Lt2pk7qCD7RFsJKvtIgyiqFuVIYwTird3woEAiB9vBYMcgrfWhO+4H7v8YqEWG15z2cMuO8Sbx57TPwhqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCCPL4uVq54gvTU84i3tKesCPNtJrSiWev4T5s4aQGCZwIhAOIajr6b7t1N9sKxNESyNUfs7G/M56hcY7ghnqyem8oc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1439067},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"60c5819e35e7817ff47e83276c25ce132b8609ee","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"repository":{"url":"git+https://github.com/learnStop163/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_1.0.2_1788434877968_0.14849679971143503","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"ghost-bridge","version":"1.1.0","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@1.1.0","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/learnStop163/ghost-bridge#readme","bugs":{"url":"https://github.com/learnStop163/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"5b98064b1470d8f512a23b53b22c797e35cd08ca","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-1.1.0.tgz","fileCount":16,"integrity":"sha512-5wH1FRbbAEzglhM7MXyGD1lp5duqD1fuQ33+KDmiamjEBctHV63KSRAcouQKyyoRyx49TCZa0eTQB6y9TgMn7A==","signatures":[{"sig":"MEUCIQDZF3JhekXuI6zyG0s8LMl/b0HFN0MQim8Sns9TJ+OefAIgPqmmawReC322fU8yCNAdwcVrvkgqNgBYuX/RAQ8R6ic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID3z/wxl3jzQ0CRZU8SWRmcJYHTNU1U7jcyAqYYZwlA5AiA9KLYxAMGwCTh8+db9j0SOHfvrsj0S7q9BCnWleoXWyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1454595},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"98756047c796cd4ad0aa7b58acd3f750bafa3c15","private":false,"scripts":{"build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"deprecated":"Known issues with tool round trips and schema behavior. Please upgrade to 1.2.0 or later.","repository":{"url":"git+https://github.com/learnStop163/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_1.1.0_1788503570142_0.8326691837679665","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"ghost-bridge","version":"1.2.0","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"author":{"email":"Author"},"license":"MIT","_id":"ghost-bridge@1.2.0","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"homepage":"https://github.com/learnStop163/ghost-bridge#readme","bugs":{"url":"https://github.com/learnStop163/ghost-bridge/issues"},"bin":{"ghost-bridge":"dist/cli.js"},"dist":{"shasum":"9a3db256646e100f5ce5ae869257b6a1e6f442c7","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-1.2.0.tgz","fileCount":18,"integrity":"sha512-K7wTAztdLg7cgl2ARwGZXKopW/ezq2/C+5D+sNLf+ElKB6b+sduk4rzuMAZgvgW/bvvTRZ+0m/M1tv29nCSLLg==","signatures":[{"sig":"MEUCIQCCHYwRY/ZkwrPeTyCZ2WXZ9Cf2ZvoQV5WPYslFgHPvoAIgBR7Zh3RTqxi8ooy/YZfC2t3xg7p8ALuC3vR+wFjcW/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEyuQV9DncbCUbVIlwckAZKgnxVuj7/HYMejbKax9fBDAiEAs9mtHAMimA72oY9eQEgy/6CVFyUw777E6f0mqI+DobM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1482838},"main":"./dist/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"98756047c796cd4ad0aa7b58acd3f750bafa3c15","private":false,"scripts":{"test":"node --test","build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"repository":{"url":"git+https://github.com/learnStop163/ghost-bridge.git","type":"git"},"_npmVersion":"7.3.0","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"tmp":"tmp/ghost-bridge_1.2.0_1788512243179_0.6039347553811931","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"_id":"ghost-bridge@1.2.2","bin":{"ghost-bridge":"dist/cli.js"},"bugs":{"url":"https://github.com/learnStop163/ghost-bridge/issues"},"dist":{"shasum":"d776aa9c0f580c7d3b624f518e00fa85612ce57f","tarball":"https://registry.npmjs.org/ghost-bridge/-/ghost-bridge-1.2.2.tgz","fileCount":18,"integrity":"sha512-N+yQyMWH9/cS/jUhfUqxQ28A+Sy353jdzAvguetjtkGLhKZcxjyYYhWCreIaOuod4bhKanJ4O3GAnmWzhCMddQ==","signatures":[{"sig":"MEYCIQDlmWWMOyLOO1IdRYqS8oA/kei43hn7zEBGSTN+T3erDQIhAIGy5a8TEObsuxLQ/trm5MBbwWr2bK2eqEOrEEPTDEqK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID3SsbP+wz+SkPcJryTIvs/t0TX8o66dG4d2Afzof+1KAiEAhAmhg5hAw+SRa+NR5yeZxKBODVX7nB5NbzTyas2Xae8="}],"unpackedSize":1499956},"main":"./dist/server.js","name":"ghost-bridge","type":"module","author":{"email":"Author"},"engines":{"node":">=18.0.0"},"gitHead":"73c1244b1838d14182466fb602b8bb694a6202b3","license":"MIT","private":false,"scripts":{"test":"node --test","build":"node scripts/build.js","start":"node dist/server.js","prepublishOnly":"npm run build"},"version":"1.2.2","_npmUser":{"name":"learnstop","email":"learnStop@163.com"},"homepage":"https://github.com/learnStop163/ghost-bridge#readme","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"repository":{"url":"git+https://github.com/learnStop163/ghost-bridge.git","type":"git"},"_npmVersion":"10.9.2","description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","directories":{},"maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"_nodeVersion":"22.17.1","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.14.2","chalk":"^5.3.0","esbuild":"^0.27.3","fs-extra":"^11.1.1","commander":"^11.0.0","js-beautify":"^1.14.11","@modelcontextprotocol/sdk":"^1.5.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ghost-bridge_1.2.2_1790736708544_0.137856013126876"}}},"time":{"created":"2026-02-06T10:36:46.454Z","modified":"2026-09-30T02:51:50.609Z","0.2.0":"2026-02-06T10:36:46.629Z","0.2.1":"2026-02-06T10:53:54.855Z","0.2.2":"2026-02-10T03:44:11.137Z","0.2.3":"2026-02-10T03:52:59.033Z","0.2.5":"2026-02-11T11:00:35.419Z","0.3.0":"2026-03-04T03:00:27.659Z","0.4.0":"2026-03-06T07:16:32.853Z","0.4.1":"2026-03-10T07:44:06.673Z","0.4.2":"2026-03-11T10:39:42.287Z","0.4.3":"2026-03-12T02:13:45.467Z","0.4.4":"2026-03-12T03:38:59.034Z","0.5.0":"2026-03-12T05:03:46.421Z","0.5.1":"2026-03-16T09:47:28.341Z","0.5.2":"2026-03-16T10:24:05.347Z","0.6.0":"2026-03-17T09:36:02.250Z","0.6.1":"2026-03-18T07:36:28.569Z","0.6.2":"2026-03-19T09:34:48.999Z","0.6.3":"2026-04-01T06:14:25.732Z","0.6.4":"2026-04-01T06:30:29.625Z","0.7.0":"2026-04-01T06:59:30.129Z","0.7.1":"2026-04-15T07:13:59.743Z","0.8.0":"2026-08-07T08:53:43.286Z","0.9.0":"2026-08-21T10:42:15.279Z","0.9.1":"2026-09-01T09:30:01.683Z","1.0.0":"2026-09-03T02:02:27.278Z","1.0.1":"2026-09-03T11:15:01.379Z","1.0.2":"2026-09-03T11:27:58.067Z","1.1.0":"2026-09-04T06:32:50.265Z","1.2.0":"2026-09-04T08:57:23.302Z","1.2.2":"2026-09-30T02:51:48.642Z"},"bugs":{"url":"https://github.com/learnStop163/ghost-bridge/issues"},"author":{"email":"Author"},"license":"MIT","homepage":"https://github.com/learnStop163/ghost-bridge#readme","keywords":["mcp","chrome","debugger","ai","claude","cdp","llm","copilot"],"repository":{"url":"git+https://github.com/learnStop163/ghost-bridge.git","type":"git"},"description":"Ghost Bridge: Zero-restart Chrome debugger bridge for Claude MCP. Includes CLI for easy setup.","maintainers":[{"name":"learnstop","email":"learnStop@163.com"}],"readme":"# 👻 Ghost Bridge\n\n[![npm version](https://img.shields.io/npm/v/ghost-bridge.svg?style=flat-square)](https://www.npmjs.com/package/ghost-bridge)\n[![npm total downloads](https://img.shields.io/npm/dt/ghost-bridge.svg?style=flat-square&label=downloads)](https://www.npmjs.com/package/ghost-bridge)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n\n> Zero-restart Chrome bridge for MCP clients. Let AI inspect, debug, and operate the browser session you are already using.\n\n## Why\n\nMost browser-capable AI tools start a separate browser. Ghost Bridge connects AI to your existing Chrome session instead, so it can work with the page state you already have: logged-in accounts, reproduced bugs, in-progress flows, network failures, and real UI state.\n\n## What It Does\n\n- Attach to Chrome without `--remote-debugging-port`\n- Inspect page structure, text, screenshots, errors, and network traffic\n- Search and extract script sources, even in production bundles\n- Click, type, scroll, and submit forms on the current page\n- Locate elements by role/name, label, placeholder, text, test ID, or CSS across open Shadow DOM and same-origin iframes\n- Run `locate → act → wait → snapshot` as one browser call instead of model-driven polling\n- Bind multiple Chrome tabs as named targets and operate them independently\n- Share one Chrome transport across multiple MCP clients\n\n## Quick Start\n\n### 1. Install\n\n```bash\nnpm install -g ghost-bridge\nghost-bridge init\n```\n\n`ghost-bridge init` currently writes config for:\n\n- Claude Code: `~/.claude.json`\n- Codex: `~/.codex/config.toml`\n- Cursor: `~/.cursor/mcp.json`\n- Antigravity: `~/.gemini/antigravity/mcp.json`\n\nIf your MCP client is not auto-detected, add one of these manually.\n\nJSON config:\n\n```json\n{\n  \"mcpServers\": {\n    \"ghost-bridge\": {\n      \"command\": \"/absolute/path/to/node\",\n      \"args\": [\"/absolute/path/to/global/node_modules/ghost-bridge/dist/server.js\"]\n    }\n  }\n}\n```\n\nCodex TOML:\n\n```toml\n[mcp_servers.ghost-bridge]\ntype = \"stdio\"\ncommand = \"/absolute/path/to/node\"\nargs = [\"/absolute/path/to/global/node_modules/ghost-bridge/dist/server.js\"]\n```\n\n### 2. Load the Extension\n\n1. Open `chrome://extensions`\n2. Enable Developer mode\n3. Click `Load unpacked`\n4. Select `~/.ghost-bridge/extension`\n\nYou can also run:\n\n```bash\nghost-bridge extension --open\n```\n\n### 3. Connect\n\n1. Open your configured MCP client, or run `ghost-bridge start`, to start the service\n2. Click the Ghost Bridge extension icon and click `Connect`\n3. Wait until the status becomes `ON`\n4. Start working on the current page from your MCP client\n\nTypical prompts:\n\n- `Analyze the current page`\n- `Check why this layout is broken`\n- `Inspect the DOM structure`\n- `Click the login button and submit the form`\n\n## Tools\n\n| Tool | Purpose |\n|------|---------|\n| `inspect_page` | Compact page analysis, actionable refs, and shallow iframe summaries |\n| `get_server_info` | Check client and daemon versions, paths, and connection status |\n| `capture_screenshot` | Visual inspection and UI debugging |\n| `get_page_content` | Text, HTML, and structured DOM extraction |\n| `get_interactive_snapshot` | Find clickable and editable elements |\n| `dispatch_action` | Locate, act, wait, and verify in one call; supports semantic locators and batches |\n| `eval_script` | Execute JavaScript, wait for returned promises, and cap arbitrary output |\n| `page_request` | Send an authenticated page-context request and wait for the response in one call |\n| `bind_tab` | Bind a Chrome tab as a named target such as `cases` or `app` |\n| `unbind_tab` | Remove a named target binding |\n| `list_targets` | Show named targets and their per-tab session status |\n| `pin_current_tab` | Keep Ghost Bridge attached to the current tab while you browse elsewhere |\n| `pin_tab` | Pin a target tab by tab ID, URL fragment, or title fragment |\n| `unpin_tab` | Return to following the focused tab |\n| `get_target_tab` | Show the current target mode and tab |\n| `list_tabs` | List available Chrome tabs |\n| `list_network_requests` | Inspect captured network traffic |\n| `get_network_detail` | Read one request in detail |\n| `get_last_error` | Inspect recent console, exception, and network error events |\n| `get_script_source` | Extract page scripts |\n| `find_by_string` | Search within bundled script content |\n| `symbolic_hints` | Collect resource and runtime clues for debugging |\n| `clear_network_requests` | Clear captured network request records |\n| `coverage_snapshot` | Identify active scripts quickly |\n| `perf_metrics` | Collect Web Vitals and engine metrics |\n\nRecommended flow:\n\n1. When the target is describable, call `dispatch_action` directly with a semantic `locator`\n2. Use `inspect_page` when the page is unfamiliar or a locator is ambiguous; its compact response includes actionable refs\n3. Use `capture_screenshot` for visual issues\n   Default is optimized for transfer with JPEG; switch to `png` for pixel-level checks\n4. Use `get_page_content` for DOM or text extraction\n5. Put consecutive fills/clicks into one `dispatch_action.actions` call; add `waitFor` to the action that changes state and `snapshotAfter` when the resulting UI is needed\n\nRound-trip-efficient examples:\n\n```json\n{\n  \"target\": \"app\",\n  \"actions\": [\n    {\n      \"locator\": { \"role\": \"textbox\", \"label\": \"Email\" },\n      \"action\": \"fill\",\n      \"value\": \"user@example.com\"\n    },\n    {\n      \"locator\": { \"role\": \"textbox\", \"label\": \"Password\" },\n      \"action\": \"fill\",\n      \"value\": \"secret\"\n    },\n    {\n      \"locator\": { \"role\": \"button\", \"name\": \"Sign in\" },\n      \"action\": \"click\",\n      \"waitFor\": {\n        \"type\": \"element\",\n        \"locator\": { \"text\": \"Signed in\" },\n        \"state\": \"visible\",\n        \"timeoutMs\": 10000\n      }\n    }\n  ],\n  \"snapshotAfter\": true\n}\n```\n\nLocator fields are `css`, `testId`, `role` + `name`, `label`, `placeholder`, `text`, `match`, and zero-based `nth`. Matching is exact by default. Ghost Bridge refuses ambiguous action targets and returns compact candidates instead of silently choosing the first element.\n\n`waitFor` supports:\n\n- `element`: `visible`, `hidden`, `attached`, `detached`, or `enabled`\n- `url`: `contains` or `equals`\n- `networkIdle`: optional `idleMs`\n- `expression`: a truthy JavaScript expression, including a returned Promise\n\nPolling happens inside the extension at a short interval, so it does not create repeated model/tool turns. Each condition defaults to 10 seconds and is capped at 30 seconds. The batch execution budget is capped at 60 seconds; deadline checks prevent subsequent actions from starting after it expires. An in-flight CDP command is not necessarily interrupted at that deadline. Fixed `waitMs` remains for compatibility but defaults to zero.\n\nFor API calls that need the page's login state, prefer `page_request`. If custom asynchronous JavaScript is still needed, return the promise from `eval_script` instead of storing a result on `window` and polling it in another tool call:\n\n```javascript\n(async () => {\n  const response = await fetch('/api/items', { credentials: 'include' })\n  const data = await response.json()\n  return data.items.map(({ id, name }) => ({ id, name }))\n})()\n```\n\nNotes:\n\n- Use `bind_tab` when a workflow spans multiple pages. For example, bind a checklist page as `cases` and a business page as `app`, then call tools with `target: \"cases\"` or `target: \"app\"`.\n- Page-scoped inspection and action tools accept an optional `target` parameter; tab listing, binding, and pinning tools manage targets separately. When named targets are bound, `dispatch_action` requires `target` so refs from one page are not accidentally used on another page.\n- Semantic locators traverse open Shadow DOM and readable same-origin iframes. They do not traverse cross-origin iframe DOM. Text extraction can separately attempt bridge-based access as described below.\n- `get_page_content` uses contiguous `offset`/`maxLength` slices for the main document and collected same-origin text. Cross-origin supplements are not part of that pagination stream.\n- Use `pin_current_tab` when you are debugging a page and need to switch to other tabs without changing the AI target. Use `unpin_tab` to restore the original follow-focused-tab behavior.\n- `list_network_requests` and `get_network_detail` automatically summarize `data:` URLs and very long URLs so inline images or oversized query strings do not overwhelm model context\n\nMulti-page example:\n\n```text\nBind the current checklist tab as cases.\nBind the tab whose title contains \"Orders\" as app.\nRead the next case from target cases, operate target app, then mark the case passed or failed back on target cases.\n```\n\n## Iframe Summaries and Content Budgets\n\nThe compact `inspect_page` response shares an 8000-character budget across the page summary, iframe summaries, and interactive entries. It includes at most three iframe summaries in the selected scope, without reading their bodies by default. `framesOmitted` counts frames beyond that limit; `elementsOmitted` counts interactive entries removed to fit the budget. `detail:true` returns the full result without this compact budget. Character counts are not token counts.\n\nWhen both structure and body text are needed for the same scope, request them together:\n\n```json\n{\n  \"target\": \"app\",\n  \"includeText\": true,\n  \"textMaxLength\": 1500,\n  \"includeInteractive\": false\n}\n```\n\nThis is an `inspect_page` call; bind `app` first or omit `target` to use the current target.\n`includeText` defaults to false. When enabled, `text` contains the text result and iframe\nbudget fields, using the same selector as the summary. `textMaxLength` defaults to 1500\ncharacters and is capped at 3000. Both reads share one page evaluation; cross-origin\nsupplements may require additional internal CDP calls. The compact response still shares\nthe 8000-character output budget and drops interactive entries first when necessary.\nFor longer text or pagination, use `get_page_content`. If the summary is needed to decide\nwhich scope to read, keep those calls separate. Combining reads reduces external tool\ncalls; it does not change client approval settings or guarantee lower approval latency.\n\nThe iframe `readable` field is a string:\n\n| Value | Meaning | Next step |\n|-------|---------|-----------|\n| `in-page` | `contentDocument` is accessible | Read through the page context |\n| `via-bridge` | Inaccessible in-page, but has a source URL | Try `get_page_content`; bridge access is not guaranteed |\n| `no` | Currently inaccessible and has no source URL | Check loading state before retrying |\n\nCompare these strings explicitly: all three are truthy in JavaScript. An accessible blank iframe is still `in-page`. The index is the current DOM order within the selected scope, not a stable handle or a tool input for selecting a frame.\n\nIn text mode, `get_page_content` collects same-origin iframe text and attempts to append up to five discovered cross-origin iframe targets. Access depends on Chrome support and a target that can be attached. A `via-bridge` summary alone does not prove this target exists.\n\nCross-origin supplements use only the remaining `maxLength` budget, including `[跨域 iframe N]` labels and separators. When no space remains, the tool skips further reads:\n\n- `crossOriginMerged`: frames whose body text was actually retained.\n- `crossOriginBudgetSkipped`: candidate frames skipped because the budget was exhausted.\n- `crossOriginTruncated`: a returned frame body was incomplete.\n- `crossOriginFailed`: attempted frame reads that failed.\n\nSupplements appear only at `offset=0`. `contentLength`, `offset`, and `hasMore` describe the main document and same-origin text stream, not cross-origin pagination. Cross-origin candidates come from tab-level debugger state and are not correlated with the supplied CSS `selector`; the tool does not currently provide a cross-origin frame selector. In particular, a long main document may leave no room for a supplement.\n\n## Performance Diagnostics\n\nReduce repeated calls by using the action batches, `waitFor`, and `snapshotAfter` shown above. Prefer `page_request` for page-context requests, and reserve `eval_script` for logic the dedicated tools cannot express. Tool annotations describe capabilities; they do not grant permission or guarantee that a client skips approval.\n\nWith `GHOST_BRIDGE_DIAGNOSTICS=1`, the MCP session process writes `[ghost-timing]` JSON lines to stderr containing a request ID, command name, bridge duration, result character count, and failure status. These diagnostic lines do not contain scripts, page bodies, or authentication tokens. They are emitted on responses; a transport timeout may have no corresponding timing line.\n\nWith the updated extension, the `extension` field also reports `commandMs` and the extension version. Commands that attach include `attachSessionMs`, `lockMs`, and `resolveMs`; `eval_script` additionally includes `evaluateMs`. `attachSessionMs` includes lock waiting and target resolution: do not add them together. Older extensions omit these fields.\n\nBridge timing starts in the Ghost client when it dispatches a command. It does not measure preceding model generation or client approval. Compare it with caller-side elapsed time before deciding which part to optimize.\n\nFrom a source checkout, run the local MCP benchmark:\n\n```bash\nnpm run build\nnode scripts/benchmark-mcp.js /absolute/path/to/dist/server.js TAB_ID 5\n```\n\nUse a tab ID from `list_tabs`. The script creates an independent MCP session, binds that tab, and measures service status, a small read-only expression, and page inspection without interactive scanning. It reports client connection time, versions, sample durations, and result character counts, without page content. Use the same port, token, and temporary-directory environment as the real MCP client. A disconnected extension or stale tab ID causes the benchmark to fail.\n\nThis measures the local MCP path, not the client's approval system. The server entry can start a daemon if none is found. Reload the updated extension before collecting extension-stage timings; building Node files alone does not reload it.\n\n## Configuration\n\n| Setting | Default | Notes |\n|---------|---------|-------|\n| Port | `33333` | Set `GHOST_BRIDGE_PORT` to override |\n| Token | `ghost-bridge-local` | `GHOST_BRIDGE_TOKEN` overrides the server token; the extension must use the same value |\n| Auto detach | `false` | Extension configuration; keeps debugger attached for ongoing capture |\n| Diagnostics | Off | Set `GHOST_BRIDGE_DIAGNOSTICS=1` in the MCP session process environment |\n\nThe extension token is currently set in `extension/background.js` (`CONFIG.token`); there is no popup token setting. Changing only the server environment will cause authentication failures.\n\n## Architecture\n\n```mermaid\nflowchart LR\n    A[\"AI Client<br/>Claude / Codex / Cursor\"]\n    S[\"Session Process<br/>dist/server.js (stdio)\"]\n    B[\"Ghost Bridge Daemon<br/>resident WebSocket service\"]\n    C[\"Chrome Extension<br/>background.js\"]\n    D[\"Browser Tabs<br/>Target Sessions\"]\n\n    A <-->|\"stdio\"| S\n    S <-->|\"WebSocket (mcp-client)\"| B\n    C <-->|\"WebSocket\"| B\n    C <-->|\"CDP\"| D\n```\n\nThe WebSocket service runs as a detached daemon, independent of any MCP session:\n\n- The first session process spawns the daemon automatically; it keeps running after that session exits\n- If the daemon crashes, any live session detects it and respawns it automatically\n- Stop it manually with `ghost-bridge stop` (close live MCP sessions first, otherwise they will bring it back on their next reconnect)\n\n## Troubleshooting\n\nIf the popup shows `No Bridge` / `Not Found`, the extension could not find a service on its configured port. Start a configured MCP client or run `ghost-bridge start`, then reconnect the extension. Reconnecting the extension alone does not start the Node daemon.\n\nRun `ghost-bridge status` and check:\n\n- `Active WebSocket Service`: the running server path should match the CLI/package you expect\n- `Chrome Extension > Sync`: the installed extension should match the current package\n\nIf either is out of sync, run `ghost-bridge init` from the intended installation and reload the Chrome extension. If the resident daemon still reports an older version/path, close connected MCP clients, run `ghost-bridge stop`, then `ghost-bridge start` from that installation and reopen the clients. Restarting a client alone can reconnect it to the old daemon.\n\nFor a source checkout, build first. Building `dist/` does not update the extension copy already loaded by Chrome.\n\n## Limitations\n\n- Chrome DevTools on the target tab can conflict with `chrome.debugger.attach`\n- MV3 background lifecycle can still cause reconnect scenarios after long idle periods\n- Very large minified bundles may be truncated during beautify or extraction\n- Deep cross-origin iframe cases are not fully covered yet\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}