{"_id":"claude-simple","_rev":"32-0bd52c0ccfb495cd58ad49d0134fed26","name":"claude-simple","dist-tags":{"latest":"0.2.28"},"versions":{"0.1.0":{"name":"claude-simple","version":"0.1.0","_id":"claude-simple@0.1.0","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-simple":"server.js","claude-simple-client":"client.js"},"dist":{"shasum":"af011066287a05cf9233402929ce8f11784c575b","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.1.0.tgz","fileCount":50,"integrity":"sha512-FRrYIGd+noYuleRtv41TSk5tnSm1k+i4ilK5rGe35SiULHxSm34kLujXpKzWMlNfgQnjfsrytFaQ2U2mOn9+2Q==","signatures":[{"sig":"MEYCIQDHt41zNXY1En3MXN9GuPj3yjmoIOyLUM1qNvvlFhTywAIhAOp7FOy4cU0GwF2IZPOzaGQVSP6tZz6fARj6untZz3/1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1579595},"type":"module","gitHead":"3bd7181e92452c866a395499382b0fb421637621","scripts":{"dev":"NODE_ENV=development node --watch server.js","build":"node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.1","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, and **Grok**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.16.0","bcrypt":"^5.1.1","express":"^4.18.2","jsonwebtoken":"^9.0.2","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.1.0_1785089016120_0.5267851500940333","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"claude-simple","version":"0.2.0","_id":"claude-simple@0.2.0","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-simple":"server.js","claude-simple-client":"client.js"},"dist":{"shasum":"99bcf9123cdb780baf9157703e66eac2bb25a0e2","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.0.tgz","fileCount":63,"integrity":"sha512-Jyws5eY9aT7nQh3huxcE3Ves2pgs7QwhUVU+qslh44+xthj7rIRPO/X8zj3ZZRJhhD+OBqo6g3/Fm3IQ7XRScQ==","signatures":[{"sig":"MEUCIBEsl3MKdrOwP/eJ2B3mTkoTLeWy16DJvON69GPWNCy+AiEA+wCz4PHL5kYNzBDooX9XzxyMxYbJpNAuKvAQKDf1Zdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1685997},"type":"module","gitHead":"1bb79f535a219cf454e390d4cd71808bb91635bf","scripts":{"dev":"NODE_ENV=development node --watch server.js","build":"node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.1","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, and **Grok**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.16.0","bcrypt":"^5.1.1","express":"^4.18.2","jsonwebtoken":"^9.0.2","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.0_1786684288408_0.06783249069282205","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"claude-simple","version":"0.2.1","_id":"claude-simple@0.2.1","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-simple":"server.js","claude-simple-client":"client.js"},"dist":{"shasum":"7cfbc3a8c8ed07dc97f3cc83a58dd17a25cca0d1","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.1.tgz","fileCount":64,"integrity":"sha512-8y3ZIUzTKjgcuDkMu8r0I91PU6I/GKXfMKmVS9Y/JnFhi6AWak+6RYL/Drcdl/HjYmRe+TL14XnIZEcd8KAJuQ==","signatures":[{"sig":"MEUCIQDkONRlXay7ZxrP/TD0uMZ13Vd+D85LvEwVIodqdUZRwAIgNRLyn7wHUHOFcUgOu0dEgcsZebRA0R/K6vva4Vu1WzI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1694952},"type":"module","gitHead":"1bb79f535a219cf454e390d4cd71808bb91635bf","scripts":{"dev":"NODE_ENV=development node --watch server.js","build":"node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.1","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, and **Grok**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.16.0","bcrypt":"^5.1.1","express":"^4.18.2","jsonwebtoken":"^9.0.2","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.1_1786684485687_0.6923824364962192","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"claude-simple","version":"0.2.2","_id":"claude-simple@0.2.2","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-simple":"server.js","claude-simple-client":"client.js"},"dist":{"shasum":"b93f9773cfcc1488273f548b8649881704a0c277","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.2.tgz","fileCount":64,"integrity":"sha512-GgEGoNBBXayzyFmK6UIduUMPLokaiGobw8VicAzqn5PdQr4nuLvncblJ1/BAEa1pGvzKqEtPwZRgY13rzEEeYQ==","signatures":[{"sig":"MEYCIQCWIRAlPKwSoIGMx5tAnIsBDYPOnwtl/NdOpCmIPkBVmgIhAMGxkRSpnYsY7E5b8O3N+8iDlygez4wEfYoqYpWGn0B5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1718047},"type":"module","gitHead":"5c164234b3e677d9bd249e6d6bb7ff3b867f8f47","scripts":{"dev":"NODE_ENV=development node --watch server.js","build":"node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.1","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, and **Grok**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.16.0","bcrypt":"^5.1.1","express":"^4.18.2","jsonwebtoken":"^9.0.2","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.2_1786692412198_0.643373259400549","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"claude-simple","version":"0.2.3","_id":"claude-simple@0.2.3","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-simple":"server.js","claude-simple-client":"client.js"},"dist":{"shasum":"83c66f95c3263efcdca3811034c91ad3d7706e45","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.3.tgz","fileCount":64,"integrity":"sha512-UIIhjsbmQLEkZ0Vt332ijoAgSCS7pFQDE0rSfhh3w6cutz87itG3wZpMdCQ6rgbQ+GRStj3CEbF4V2ELqedRNg==","signatures":[{"sig":"MEYCIQC2NiHXeKydVjW9BR2AXg/NqCVOXm53RnK3oc8x9oM3zAIhAN2sQF5FMEr9vl1KWGDaqAQLCBFG/TdmixxCCVbpXaxE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1724718},"type":"module","gitHead":"6942489de2cfc5918d4d4f96baa857fb8e92cf93","scripts":{"dev":"NODE_ENV=development node --watch server.js","build":"node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.1","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, and **Grok**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.16.0","bcrypt":"^5.1.1","express":"^4.18.2","jsonwebtoken":"^9.0.2","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.3_1786692835625_0.025983166527487223","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"claude-simple","version":"0.2.4","_id":"claude-simple@0.2.4","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-simple":"server.js","claude-simple-client":"client.js"},"dist":{"shasum":"7bc422cc8175626805396aadacbc7a2e93eea06f","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.4.tgz","fileCount":64,"integrity":"sha512-juWBGx6iI1O8x8Gho5aGeYkIHMR7fWUef1P3jTeeei9QJHmw+HXfTMMRr1lEqlg4DjZy23COu8Jg8mJK5MjG0Q==","signatures":[{"sig":"MEUCIGNGXHjjccweXTOBLyz/foti2uReeYduxpdewkjNtk4RAiEA8OhF0cBlxbTcSn25OG1JrjL+J1q7UsRtUyMEazLHmos=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1737319},"type":"module","gitHead":"fe9f2a1b6bdb651bd791852d8791f11589121934","scripts":{"dev":"NODE_ENV=development node --watch server.js","build":"node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.1","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, and **Grok**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.16.0","bcrypt":"^5.1.1","express":"^4.18.2","jsonwebtoken":"^9.0.2","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.4_1786694562347_0.8428569628251801","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"claude-simple","version":"0.2.5","_id":"claude-simple@0.2.5","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"4b877638b98ae800b26d8a5077b3aab83a64cec2","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.5.tgz","fileCount":66,"integrity":"sha512-LNXcrx6WrSTd2/6J2rzX9IK7rJGrmwPRhjYNteE5E/63c3hTlNbt7OIz95UagZk5mJOepk1hquoetK+sCPInRQ==","signatures":[{"sig":"MEUCIQD4r2k9VmBC66R0Bor8J08mz0mGQiHwqhxybFI+slf+gAIgdEdiudHU+SpMCwbk85tFKum7xR3rDENcPgft4uYCd4A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1773097},"type":"module","gitHead":"7668b7917d9da15564247dbb7931f91e7c71c0f5","scripts":{"dev":"NODE_ENV=development node --watch server.js","build":"node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.1","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, and **Grok**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.16.0","bcrypt":"^5.1.1","express":"^4.18.2","jsonwebtoken":"^9.0.2","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.5_1786714281936_0.48527721974328775","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"claude-simple","version":"0.2.6","_id":"claude-simple@0.2.6","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"05ad80db7ed835287f51d13e095577e7feee954e","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.6.tgz","fileCount":66,"integrity":"sha512-YGgvbcVDMHHkFY9V5kTkHIyAkCOnW+Qtt7zk0A8gRgG4mRmE1InUsZ1T01VnDhBe4iTvMcPth2ai516KXEfHEQ==","signatures":[{"sig":"MEUCIQDFrS7op7wpvjeYFR41a8/3SlvdIk6tzZkrWK7/8yKlmgIgdFneCHJbyo3Df8nHs3W7CHL9h1eU1fTU6Gk4hhWLJTw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1773887},"type":"module","gitHead":"7668b7917d9da15564247dbb7931f91e7c71c0f5","scripts":{"dev":"NODE_ENV=development node --watch server.js","build":"node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.1","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, and **Grok**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"ws":"^8.16.0","bcrypt":"^5.1.1","express":"^4.18.2","jsonwebtoken":"^9.0.2","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.6_1786714497458_0.0050439446565400115","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"claude-simple","version":"0.2.7","_id":"claude-simple@0.2.7","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"49f6bc9410ff1f51b81b44d8aeb73ebf8c49d113","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.7.tgz","fileCount":66,"integrity":"sha512-Y6HZgrRL/F9PeaKmk18wdnUuFA5/ltFdgpCK8aZOseHdOi11hN5t5DWAr/3njLh5jQxAUVGtQkbKM5di5xAl3A==","signatures":[{"sig":"MEUCIAEFRKmpbJms2kJ2U1pRdlGHtPRUO8LM1KqA3VK6DMVrAiEApYYWEq6mHxibM6AB5i9C+/7X47cvdCWm4Gsy9HDdAP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1957072},"type":"module","gitHead":"9c24087fc6cb58606c8ae1ea5660c171011d7be3","scripts":{"dev":"NODE_ENV=development node --watch server.js","build":"node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, and **Grok**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","bcrypt":"^5.1.1","express":"^4.18.2","jsonwebtoken":"^9.0.2","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.7_1786789383210_0.592843853574831","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"claude-simple","version":"0.2.8","_id":"claude-simple@0.2.8","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"a40751469f776fc0cee389382dbec192c073c928","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.8.tgz","fileCount":67,"integrity":"sha512-cevm/4cDyh+pbUTZzDotHK8I94o3CBTpiurnjUi1JHslfQ9b+lLJjTciZnJ4kdgSkhC6yCzRPbTut5cqKh+hiw==","signatures":[{"sig":"MEUCIGZnUdalNcJ9sZ2bamvBv6k++35Tqb8sO92+t5mBqZhQAiEAjTVb6ps8/K3clb2lmzbYxbaRHBT98rVvijMMZBGL/U4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1983561},"type":"module","gitHead":"c5f70790361b2f65ea10e7aa153af9103d997209","scripts":{"dev":"NODE_ENV=development node --watch server.js","build":"node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"deprecated":"yanked: use 0.2.7","_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, and **Grok**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","bcrypt":"^5.1.1","express":"^4.18.2","jsonwebtoken":"^9.0.2","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.8_1786905694741_0.12442788912606817","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"claude-simple","version":"0.2.9","_id":"claude-simple@0.2.9","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"1f1b53ab33f6c3b7c6f143ecd2b47e50ec82b661","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.9.tgz","fileCount":67,"integrity":"sha512-xxovulvbqlDvGuWIMUyg9haZqs3GjkBs670c8S7c4y4i4W0wQttJ94wrtYkEFBu2UTsH/F34O0tL21/6wigEvg==","signatures":[{"sig":"MEUCIQCQrhNRUmUN1uQYWWmon6hKMWJsb5h6waokrgOBxT+7OgIgJD8XJck043PqU64G9tDjKV8YSiwFyt898knPQCnPUrM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1992593},"type":"module","gitHead":"c5f70790361b2f65ea10e7aa153af9103d997209","scripts":{"dev":"NODE_ENV=development node --watch server.js","build":"node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, and **Grok**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","bcrypt":"^5.1.1","express":"^4.18.2","jsonwebtoken":"^9.0.2","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.9_1787050471902_0.11246784765195916","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"claude-simple","version":"0.2.10","_id":"claude-simple@0.2.10","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"60d5f95bf3eece50b76adeae92cca689516f7e17","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.10.tgz","fileCount":80,"integrity":"sha512-aqsOWco8Ra9KFk9WpJXbpMne8QwTpxIBC15/5GCjU1n23AAe8Pjk6kBfjtsdb4vP0rM/ZjqhCe3Y9+rvvwWnpw==","signatures":[{"sig":"MEUCIFPNPRrfBDJlTPAN8sX/1P6gIslKMUO5nAGq9CTW/Z5SAiEAj7Y4dzJ2lksnz0svCCJ6HOmlGglFjIIy9InO8Vj0ymg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5465949},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.10_1787627667960_0.9830695698862184","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"claude-simple","version":"0.2.11","_id":"claude-simple@0.2.11","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"62b34fc3162d7a84405281afa04fe56930ae12b3","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.11.tgz","fileCount":80,"integrity":"sha512-JBNjxAgHu7nugfNWvFjubtkVME1Jw21XJsj2cdiZjr/j1OyDGLCtWoj8IX+R05u0OYJ/7wzHzdKcRX6ESwal9g==","signatures":[{"sig":"MEYCIQC/1JSOqpZbR7KUHD3bhm5VgjIdDONMv5dxteqy8E57QQIhAKYHMA732NiFkB+J9G000Admy214knsp6dQ7E9jW+CYj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5469751},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.11_1787628162960_0.4880763350624553","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"claude-simple","version":"0.2.12","_id":"claude-simple@0.2.12","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"81997505a5198a3167b16ef377dabfcd33447577","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.12.tgz","fileCount":80,"integrity":"sha512-hqHAWkssUN+TWdZYqsdFazNsyIlqHMFf8Ex+gHh3smKQdSL722UO+tXwSm70UaWyLHvDkEreT6mDIDyyVXGQwA==","signatures":[{"sig":"MEUCIQClWK8SIvq6sbepSLsgC2oqsgk+o0kariBAM6wBoxA65QIgG4FwYQ7qHlLTah+YMX07HmyIMWhY7w62d+tLPK7z4yk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5469759},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.12_1787628272360_0.3211851453897292","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"claude-simple","version":"0.2.13","_id":"claude-simple@0.2.13","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"50ca3b72c6fbea681e40fee985b6fe3f17ed4d98","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.13.tgz","fileCount":80,"integrity":"sha512-FaEU/bDEDqZ+l5w7+h+vzATWWtLU0umiM/VvhQK1tvDQ2Cpu1pFFeEm1gi2ZKAEUSCIfBylOhmVic/Yh1q6VFw==","signatures":[{"sig":"MEQCIBjPYAOT8+OrjEycl0MsSy6sg48PXUOwOQ8V8Y48y10eAiACzn3G7rX3J/s1K5iRoamM+MsZNGMWB0W4LMMUFAdNVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5470135},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.13_1787628745386_0.30376881270994094","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"claude-simple","version":"0.2.14","_id":"claude-simple@0.2.14","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"43c30462ca4d49dc139afcf8c9e622c71f06824b","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.14.tgz","fileCount":82,"integrity":"sha512-SGaReAYioFaq79/2p+GdTxRuaD9Fswx0DbVK/rC9POr5yjja/yNFObeZY7GZj5fwwjX6x+B7h+2gF0lzcdHbiA==","signatures":[{"sig":"MEUCIEEFAZ9U0aPkZfXxi0GnQEd/rbQ3CfqMiEnfjxvJwnRRAiEA8lcZyLxNTHXxDpCDbTObQ56mkNDcVIV4yV0dJhHicBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9054445},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.14_1787629124523_0.49056164387072765","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"claude-simple","version":"0.2.15","_id":"claude-simple@0.2.15","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"232fca9b86a160fd9a5a65070e21484ee66d0457","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.15.tgz","fileCount":82,"integrity":"sha512-L6ksGxbUXcqLwU4fp76/7m8Mf/JdzNo0p1bpj6xGAZwvnkG+5FoVeGvJBJIkc9BNq9d3HcrNfLl6vduMjxsi8Q==","signatures":[{"sig":"MEUCIQCiuA5r1/d+ioPrMa1M56bMI2WhWu5vaDo9kUTRian4MQIgVsoZAc3ZOg+5Uo/ZalMdlxJBsh7rFEuOn27hOZ6XyLc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9055384},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.15_1787629397542_0.22642545426889682","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"claude-simple","version":"0.2.16","_id":"claude-simple@0.2.16","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"bd144669ec437da00f8f4e4f28af2f0ce45701b6","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.16.tgz","fileCount":82,"integrity":"sha512-db+7RHBPozq8AfJQ0P7vcDHCpnV7lI/setSKYLPafVQUigkrESK7FFqeB9Rj3ySVZDyvrzqyzUESCvYxy5+eew==","signatures":[{"sig":"MEYCIQDoTfpJubQh7G8fAs5/ajYZYM0Nf4A6C1L7q3H81HpffwIhAOTSY/qZMrkt5xns/LSuOn663ZCQD0xzQogWxXfr8jXs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9107402},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.16_1787634237842_0.14980316614018752","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"claude-simple","version":"0.2.17","_id":"claude-simple@0.2.17","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"51c76fc132b6edbe97e3ea6945ec62857ce8b8bb","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.17.tgz","fileCount":82,"integrity":"sha512-8zUz3WhPa75Eo0qxKRzFRJDDf5eAbVddAQ3WK+ynwizKd06hqyTqDVIdQAfuDrgMf7raumoI/euGdc84f3cACw==","signatures":[{"sig":"MEQCIQCbAFDs6SN8gF67D5AjkzXj7R791fovmBXSeGnMs7VOpwIfHCI5sg87V372lo79rgpY9k+cRbVzLdWI2Uy7cmpqUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9107402},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.17_1787634363716_0.12800016916795687","host":"s3://npm-registry-packages-npm-production"}},"0.2.18":{"name":"claude-simple","version":"0.2.18","_id":"claude-simple@0.2.18","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"5f981587038e52bf882de3d44e4e7f06fe6f9431","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.18.tgz","fileCount":82,"integrity":"sha512-hzrDHKjS011GoAYuQhP/Fp4t+SWkGx2dW5OvVKbG/JdTZ3vu3xqoGmXUBEezObkSsbL4Ky1/k8cieGxcCrL/Tg==","signatures":[{"sig":"MEYCIQCnb92MHlVneVFlXyln0p8jvECxRQuZ6hYUMQ27csPQYAIhAOP8cEB+KgQBKARIbsqHykt2miSLoSQRWwtYRT1y+mu0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9113471},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.18_1787634919833_0.7228648248607845","host":"s3://npm-registry-packages-npm-production"}},"0.2.19":{"name":"claude-simple","version":"0.2.19","_id":"claude-simple@0.2.19","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"5db6dafdb5771d087a510c3f52554b48435a0e03","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.19.tgz","fileCount":82,"integrity":"sha512-NV1jiiaRkfZB4XLTl7bTFRJVeLnoOwJzp0/17M4QdzOlt1Ndg6sP+npiaGrtoaYzzEQX3wkkpLramdZ4tpQ+8Q==","signatures":[{"sig":"MEUCIQDvGqOtfHoT+ObC4s5Xgu+pX0EflfD3XpSrbQf2teTp/wIgaRLlPRMp2GZpKlodDApg8K5kmHWSrfHaDTKInmvY9rI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9120994},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.19_1787636350913_0.06569041027531464","host":"s3://npm-registry-packages-npm-production"}},"0.2.20":{"name":"claude-simple","version":"0.2.20","_id":"claude-simple@0.2.20","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"910dac84d430ec8e2f393fcf7264c1718fad1560","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.20.tgz","fileCount":82,"integrity":"sha512-vHdJDdhju6gWL46Mdo0dcgzDozCx/Gy/PRdMqehVkRncy1pgCUj25rB5NuEaEvrcZL/Z4mt8/Ud0mNpAbaYEdA==","signatures":[{"sig":"MEYCIQCswxMWkmZ11/0fiRWM797sujejVCTwMH8PPuqzMCZVhgIhAIbYzDhOGitdhFrquJ/OqAjZllc1K4FOsii/d+NJED9v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9121676},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.20_1787636738250_0.2546937697008509","host":"s3://npm-registry-packages-npm-production"}},"0.2.21":{"name":"claude-simple","version":"0.2.21","_id":"claude-simple@0.2.21","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"39fb1cfaf52f2835b434b750623d1f0ed2a4395e","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.21.tgz","fileCount":82,"integrity":"sha512-/ix06kNpfoFyiGqmTKekbkm+Ds4FwZe4xtLUCvy7c2lz8jVwoxHfO5NDEyHiQGLBRRC5KfjL9EB7ZwTpjiJc9w==","signatures":[{"sig":"MEQCIAclRUbcb8ytwBpExp9Y49fCUbIg7FvQbc7AlgPLRNtNAiANpV4fRmjASRv0bIjHwjBpA4Ku2BwxYy7Xhica3rJFwg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9126580},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.21_1787637216273_0.9973941501446282","host":"s3://npm-registry-packages-npm-production"}},"0.2.22":{"name":"claude-simple","version":"0.2.22","_id":"claude-simple@0.2.22","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"1e3a7cff517adee1c363c4dd28dca53e68e4ca37","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.22.tgz","fileCount":145,"integrity":"sha512-Ookz9dIF9/5vjUoYfdPtlAhHgOWz/aR0DaZtSqWHDnqeRAUgIbJznMzhr7+I8BLqRhz7sqVQEA/g/fhv9NyQPA==","signatures":[{"sig":"MEUCIGwz5STF6Fcb6HCwwFxSg6VBXFFeBEmcCpt7siMdW+79AiEA+MSZ0Uu2cJEPFjreZT4hB4QTXAw0iNR36kIW7xdzRYk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10509856},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","katex":"^0.16.47","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.22_1787638739593_0.5397152089294204","host":"s3://npm-registry-packages-npm-production"}},"0.2.23":{"name":"claude-simple","version":"0.2.23","_id":"claude-simple@0.2.23","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"829da9b4ddd0b986b29f61216c3a32804d6d6cb0","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.23.tgz","fileCount":146,"integrity":"sha512-TaVw1tSp3ZxKxeL7wZsTBeNjPV1CRj7EnApcybuUvCkEYlOxZ4zmhj6r+JxmIGjb7223FoNL065vc5RyJGhwpw==","signatures":[{"sig":"MEQCIDnlZaAnQMnh/oDTz5CLpqT+UwWpGaFOPR4Wt4ZeVENfAiBcfyL8oRGddALIY+VyKC6t2tL1h3IZQ8Tga2OpXC96GQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10511278},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","katex":"^0.16.47","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.23_1787639213896_0.2678865260738852","host":"s3://npm-registry-packages-npm-production"}},"0.2.24":{"name":"claude-simple","version":"0.2.24","_id":"claude-simple@0.2.24","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"a805411af162d5853b33917e6e7dbc1b25bf90d7","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.24.tgz","fileCount":146,"integrity":"sha512-d88Y34eFAoqDCtTsdDaFf3VStuDes6R3bbbx+AkM9SxDoMrIXrx7Pjdi0oD3Chfi0L0KKYWiXf7nGN2DTXBZLA==","signatures":[{"sig":"MEUCICsOUkz6e3Gx7RJRt2vD0DxD6TEhTJUAgOf4K7VKBjWgAiEAyTZlv0yrwzVTFF0g0vxPOBMWq8DoCKgkkGPYWhMty1o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10513203},"type":"module","gitHead":"88895f40af77a8a880fb5774f53e903167288ce3","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","katex":"^0.16.47","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.24_1787837722566_0.7326760769021019","host":"s3://npm-registry-packages-npm-production"}},"0.2.25":{"name":"claude-simple","version":"0.2.25","_id":"claude-simple@0.2.25","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"e8376065cf6ed169a5b5d5de327b74763933de83","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.25.tgz","fileCount":149,"integrity":"sha512-ZS9fkzppwqa+AbkOQUDA1ZliNDefld4K9Xir4pKGWNPxmTQmEuISLJAbaI/rSp1XAgQzEyT8cpUqa1Ytxm24Jg==","signatures":[{"sig":"MEYCIQDAzYoiMwVjKUo8lU5RIshOnR+wYGz9jf6YsIzdXzs4ogIhAIb9dk/tFL3XYQuTgKT5GVUvnS64rJX+1NzgnBikSiz5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10602327},"type":"module","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","katex":"^0.16.47","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.25_1788153911165_0.12476130296156285","host":"s3://npm-registry-packages-npm-production"}},"0.2.26":{"name":"claude-simple","version":"0.2.26","_id":"claude-simple@0.2.26","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"e56851c6828c3494d9569983bebf3fa5c64d9e40","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.26.tgz","fileCount":151,"integrity":"sha512-mDMb+kZ4eWOFHwssmbFko4n35n4ml2Ol7bhHR1HJ0n+Q5ycm/Shr2vPGrn1MM1tOkh1PEVAqbtHb5AI+1AdK9Q==","signatures":[{"sig":"MEUCIQCMESUzmn8FYjoVqxH0zlm2lhYgdFEmCTutO732C9369QIgLAAvxGbkiF2nE5ddXcMWBf2USPAHWQUs709lrfEBVrE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10657619},"type":"module","gitHead":"1d9467a981925dca7c6ba5ebf8b6999700ab0704","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","katex":"^0.16.47","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.26_1788273077370_0.9170532667180737","host":"s3://npm-registry-packages-npm-production"}},"0.2.27":{"name":"claude-simple","version":"0.2.27","_id":"claude-simple@0.2.27","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"bin":{"claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js","claude-simple":"server.js","claude-simple-edge":"bin/edge-ctl.js","claude-simple-client":"client.js"},"dist":{"shasum":"b218d75b1a6bb94f51089c64b8e05ccf5c9512cf","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.27.tgz","fileCount":151,"integrity":"sha512-JRBAMq1fCKc3Ayy1LIWZY1+b6JHCMN/K+pF4raa1p623G4z8fyPe5QjR4Bopo5CGoBZufF32ipe532fIIgOxpQ==","signatures":[{"sig":"MEUCIQCcmVRH5oJw2Ka3a6Vl+ny+K1We1AOV0O9GYFEq5i0UpQIgeLjYF0h1KYiXOETjqro8grZUMTEwteBDDR+S6APJG4A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10664399},"type":"module","gitHead":"6bc3bae420265f32ee31fef944f8a7be7f535059","scripts":{"dev":"NODE_ENV=development node --watch server.js","test":"node --test","build":"npm run assets && node build.mjs","serve":"node server.js","start":"NODE_ENV=production node server.js","assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","client":"node client.js","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","prepublishOnly":"node build.mjs"},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"_npmVersion":"11.12.0","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","directories":{},"_nodeVersion":"24.8.0","dependencies":{"ws":"^8.16.0","xlsx":"^0.18.5","jszip":"^3.10.1","katex":"^0.16.47","bcrypt":"^5.1.1","marked":"^9.1.6","express":"^4.18.2","mammoth":"^1.8.0","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","jsonwebtoken":"^9.0.2","@highlightjs/cdn-assets":"^11.11.1","@anthropic-ai/claude-agent-sdk":"*"},"_hasShrinkwrap":false,"devDependencies":{"daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4","@tailwindcss/cli":"^4.2.4"},"_npmOperationalInternal":{"tmp":"tmp/claude-simple_0.2.27_1788280860679_0.6179164554362133","host":"s3://npm-registry-packages-npm-production"}},"0.2.28":{"name":"claude-simple","version":"0.2.28","type":"module","bin":{"claude-simple":"server.js","claude-simple-client":"client.js","claude-simple-edge":"bin/edge-ctl.js","claude-edge":"bin/edge-ctl.js","edge-daemon":"bin/edge-ctl.js"},"scripts":{"assets":"node scripts/sync-vendor.mjs && npx @tailwindcss/cli -i public/base.css -o public/ui.min.css --minify","build":"npm run assets && node build.mjs","prepublishOnly":"node build.mjs","start":"NODE_ENV=production node server.js","dev":"NODE_ENV=development node --watch server.js","serve":"node server.js","test":"node --test","gateway":"node gateway.js","gateway:go":"cd gateway && go run .","gateway:build":"cd gateway && make build","client":"node client.js"},"dependencies":{"@anthropic-ai/claude-agent-sdk":"*","@highlightjs/cdn-assets":"^11.11.1","bcrypt":"^5.1.1","express":"^4.18.2","jsonwebtoken":"^9.0.2","jszip":"^3.10.1","katex":"^0.16.47","mammoth":"^1.8.0","marked":"^9.1.6","mermaid":"^11.17.1","pdfjs-dist":"^3.11.174","ws":"^8.16.0","xlsx":"^0.18.5"},"devDependencies":{"@tailwindcss/cli":"^4.2.4","daisyui":"^5.5.19","esbuild":"^0.28.0","tailwindcss":"^4.2.4"},"gitHead":"ee5e0139a55b3950d77d0da89789f777c8426f46","_id":"claude-simple@0.2.28","description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","_nodeVersion":"24.8.0","_npmVersion":"11.12.0","dist":{"integrity":"sha512-5tjPv0SF+Zkke2DUsW8JSL817ZNfd532apy6usMkYayD/Te1Th+4U1M8tOD5ksOhIQhJ75mKbRdutByw1C/xoQ==","shasum":"435257f6dffab846c1680e538401bad306992a8d","tarball":"https://registry.npmjs.org/claude-simple/-/claude-simple-0.2.28.tgz","fileCount":153,"unpackedSize":10705486,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDpjx47jSME6HarvFHwKUw4zkLMh/ZwbE6ToNT+QtC+gwIgM6dK0ubnqXJX03eeF3sT94rOte4eA6qEKX6gDVS5scw="}]},"_npmUser":{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"},"directories":{},"maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/claude-simple_0.2.28_1789062879296_0.27648139905453917"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-26T18:03:36.057Z","modified":"2026-09-10T17:54:39.654Z","0.1.0":"2026-07-26T18:03:36.285Z","0.2.0":"2026-08-14T05:11:28.568Z","0.2.1":"2026-08-14T05:14:45.859Z","0.2.2":"2026-08-14T07:26:52.338Z","0.2.3":"2026-08-14T07:33:55.779Z","0.2.4":"2026-08-14T08:02:42.494Z","0.2.5":"2026-08-14T13:31:22.087Z","0.2.6":"2026-08-14T13:34:57.650Z","0.2.7":"2026-08-15T10:23:03.372Z","0.2.8":"2026-08-16T18:41:34.892Z","0.2.9":"2026-08-18T10:54:32.036Z","0.2.10":"2026-08-25T03:14:28.233Z","0.2.11":"2026-08-25T03:22:43.157Z","0.2.12":"2026-08-25T03:24:32.604Z","0.2.13":"2026-08-25T03:32:25.654Z","0.2.14":"2026-08-25T03:38:44.772Z","0.2.15":"2026-08-25T03:43:17.798Z","0.2.16":"2026-08-25T05:03:58.084Z","0.2.17":"2026-08-25T05:06:03.946Z","0.2.18":"2026-08-25T05:15:20.067Z","0.2.19":"2026-08-25T05:39:11.167Z","0.2.20":"2026-08-25T05:45:38.492Z","0.2.21":"2026-08-25T05:53:36.517Z","0.2.22":"2026-08-25T06:18:59.889Z","0.2.23":"2026-08-25T06:26:54.176Z","0.2.24":"2026-08-27T13:35:22.833Z","0.2.25":"2026-08-31T05:25:11.405Z","0.2.26":"2026-09-01T14:31:17.629Z","0.2.27":"2026-09-01T16:41:00.968Z","0.2.28":"2026-09-10T17:54:39.512Z"},"description":"A lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.","maintainers":[{"name":"zzzzzwy123","email":"zwyniceday@gmail.com"}],"readme":"# Claude Simple UI (multi-agent)\n\nA lightweight web UI for **Claude Code**, **OpenAI Codex**, **Grok**, **Google Gemini** (via `agy`), and **Cursor Agent**. No build step — pure ES Modules in the browser.\n\nInspired by [cc-connect](https://github.com/chenhg5/cc-connect) agent adapters: Claude via the Agent SDK, Codex via `codex exec --json`, Grok via `grok --output-format streaming-json`.\n\n## Deployment modes\n\n| Mode | When to use | Hub (中心端) needed? | How to run |\n|------|-------------|----------------------|------------|\n| **Standalone（本地 / 单机）** | 本机开发、只有一台机器 | **不需要** | `node server.js` |\n| **Hub + Edge（多机）** | 多台机器、一个公网入口、统一 WebUI | **需要** | Hub: Go 二进制；每台业务机: `npm run client` |\n| **Edge only** | 已有 Hub，本机只当业务节点 | 需要已有 Hub | `npm run client` |\n\n**本地跑不需要中心端。** 单机默认就是 Standalone：UI + 后端 + agent 都在同一个 Node 进程里。\n\n### Multi-user, locks, port maps, Flutter\n\nDesign: [`docs/multiuser-portmap-design.md`](docs/multiuser-portmap-design.md).\n\n| Piece | What it does |\n|-------|----------------|\n| Roles | `owner` / `admin` / `editor` / `viewer` — live role on mutating APIs |\n| Locks | Lease locks (`POST /api/collab/locks`, heartbeat/release/break). 423 if held. Auto-claim 30s on unguarded writes |\n| Port map | `POST /api/collab/routes` then visit `/r/{slug}/…` — Hub tunnels to edge `host:port` (loopback by default) |\n| Flutter 轻应用 | `app/` — login, machines, locks, routes, users; local JSON cache + sync |\n| 微信小程序 | `miniprogram/` — login, sessions, history and streaming chat over the same Hub APIs |\n\nHub stores users/locks/routes under `hub-data/`. Standalone uses `.collab.json` plus `.credentials.json` (`role` on each user). Invite users: `POST /api/collab/users` as admin/owner.\n\n```\ncd app && flutter run\n# Hub URL e.g. http://127.0.0.1:8080\n```\n\n微信小程序可直接使用微信开发者工具导入 `miniprogram/`。开发工具中可临时关闭合法域名校验；上线前需要将 Hub 的 HTTPS/WSS 域名分别加到 request/socket 合法域名。完整说明见 [`miniprogram/README.md`](miniprogram/README.md)。\n\n前端会探测 `GET /api/hub`：没有该接口即按单机模式工作，逻辑与多机无关。\n\n```\nStandalone (default)          Multi-machine (optional)\n─────────────────────         ────────────────────────\nBrowser → node server.js      Browser → Go Hub (public/)\n          (UI + agents)                    ├─► client.js @ machine A\n                                           ├─► client.js @ machine B\n                                           └─► client.js @ machine C\n```\n\n## Quick Start (local — no hub)\n\n```bash\nnpm install\nnode server.js\n# open http://localhost:3000\n```\n\nOr with auto-reload:\n\n```bash\nnpm run dev\n```\n\nFirst run creates an account. Token persists 7 days — no repeated login.\n\nRequires CLIs on `PATH` for the agents you use:\n\n```bash\n# Claude Code — install Claude Code CLI\n# Codex\nnpm install -g @openai/codex\n# Grok (xAI) — install grok CLI and run `grok login`\n# Gemini — install `agy` (Antigravity CLI) and sign in; `agy models` should list Gemini models\n# Cursor Agent — install the Cursor CLI and sign in with `cursor-agent login`\n```\n\n### Environment Variables (standalone / edge Node app)\n\n| Variable               | Default                           | Description                              |\n| ---------------------- | --------------------------------- | ---------------------------------------- |\n| `PORT`               | `3000`                          | HTTP port (standalone)                   |\n| `AGENTS`             | `claude,codex,grok,gemini,cursor` | Enabled agents (comma-separated)       |\n| `CLAUDE_CONFIG_DIRS` | `~/.claude`                     | Claude Code config dirs, comma-separated |\n| `CLAUDE_CLI_PATH`    | `claude`                        | Path to Claude Code executable           |\n| `CODEX_CLI_PATH`     | `codex`                         | Path to Codex CLI                        |\n| `CODEX_HOME`         | `~/.codex`                      | Codex home (sessions, config)            |\n| `GROK_CLI_PATH`      | `grok`                          | Path to Grok CLI                         |\n| `GROK_HOME`          | `~/.grok`                       | Grok home (sessions)                     |\n| `GEMINI_CLI_PATH` / `AGY_PATH` | `agy`                  | Path to Gemini/Antigravity CLI           |\n| `GEMINI_HOME`        | `~/.gemini`                     | Gemini home (native conversations + UI journal) |\n| `CURSOR_AGENT_PATH`  | `cursor-agent`                  | Path to Cursor Agent executable          |\n| `CURSOR_HOME`        | `~/.cursor`                     | Cursor home (UI session journal)         |\n| `JWT_SECRET`         | persisted in `.credentials.json` | Override JWT signing key                 |\n| `AUTH_USERNAME` / `AUTH_PASSWORD` | —                    | Bootstrap first user from env            |\n| `ANTHROPIC_BASE_URL` / `ANTHROPIC_AUTH_TOKEN` / `ANTHROPIC_MODEL` | — | Anthropic-compatible APIs (DeepSeek etc.). LaunchAgent does **not** inherit shell `export` — use Settings → Claude env, `~/.claude/settings.json` `env`, or `~/.claude-simple-edge/agent-env.json` |\n| `ANTHROPIC_DEFAULT_*_MODEL` / `CLAUDE_CODE_SUBAGENT_MODEL` / `CLAUDE_CODE_EFFORT_LEVEL` | — | Merged into the Claude spawn env (`effort` e.g. `max`) |\n\nEdge-only env (when connecting to a hub):\n\n| Variable         | Description                                      |\n| ---------------- | ------------------------------------------------ |\n| `GATEWAY_URL`  | Hub control WS, e.g. `wss://host/machine-connect` |\n| `MACHINE_TOKEN`| Shared secret with hub                           |\n| `MACHINE_ID`   | Unique id for this host (default: hostname)      |\n| `LOCAL_PORT`   | Local bind port (default `13000`, `127.0.0.1`)  |\n\n### macOS Edge：需要登录态的 CLI\n\n如果 Edge 要运行 **AGY / Antigravity** 等把 OAuth token 放在 macOS Keychain 的 CLI，必须以当前登录用户的 **LaunchAgent**（`gui/<uid>`）运行，不能使用 system LaunchDaemon。`HOME`、PATH 和 `~/.gemini` 文件齐全仍不足以访问用户 Keychain。\n\n`claude-edge migrate-user-agent` 可将旧的 macOS system Edge 迁移到用户会话。对只使用无用户凭据的后台 agent，system service 仍可选；默认建议使用用户 LaunchAgent。\n\n## Features\n\n### Chat\n\n- Multi-agent: pick **Claude / Codex / Grok / Gemini / Cursor** in options or New Session\n- Slash commands: `/agent`, `/model`, `/effort`, `/clear`\n- Stream responses via WebSocket\n- Markdown rendering with syntax-highlighted code blocks\n- Tool use cards (expandable), permission request banners\n- Long messages auto-collapse (user: 200 chars, assistant: 500 chars)\n- Token usage bar after each turn: `↑12.3k ↓2.1k · 8.5k cached · $0.023`\n- Shell commands via `!cmd` prefix (runs in session cwd)\n\n### Sessions & projects\n\n- **Projects** view: group by working directory; show agent mix (CC/CX/GX/GM), last activity title\n- **Recent** timeline: chronological “what did I do” by day\n- Filters: agent (All/Claude/Codex/Grok/Gemini) + time range (Today / 7d / 14d / 30d / All) + **★ Fav**\n- Search: metadata (path, title, session notes) + **deep content peek** via `GET /api/activity?q=…`\n- Double-click a project header to open that cwd\n- **Session conversion**: convert / clone sessions between Claude Code, Codex, and Grok\n- **Project Goal + Notes**: one-line goal and multi-line notes per project (`.project_notes.json`)\n- **Session favorites & notes**: star sessions; per-session notes (`.session_meta.json`)\n- **Thin sessions**: ≤2 user turns show a `thin·N` badge\n- Session history loads on click; sidebar is resizable\n\n### Files preview\n\n- Text / code: syntax highlighting (highlight.js)\n- **docx / xlsx / pptx / pdf** preview (client-side libraries; binary over base64, ≤15MB)\n\n### Workspaces\n\n- Multiple Claude Code config dirs (different accounts, MCPs, settings) — Claude only\n- Manage via ⚙️ → Settings: add name + path, delete\n- Workspace tab bar appears when more than one workspace is configured\n\n### Files / Git / Shell tabs\n\n- **Files**: browse, upload, download, delete; custom root (`~` supported)\n- **Git**: status, staged/unstaged diff, graph log; custom root\n- **Shell**: interactive PTY via xterm.js + Python helper (`vim` / `htop` etc.)\n\n### Meta Agent（内置 AI 助手）\n\nTop bar **✦ Agent** — OpenAI-compatible tool agent (DeepSeek / OpenAI / local gateway…).\n\n| Feature | Description |\n|---------|-------------|\n| **工作报告** | 手动生成今日 / 近 N 日「我做了啥」；可选整点自动日报 |\n| **项目问答** | 搜会话、读摘要、项目 goal/notes、git status/log |\n| **代码** | `write_file` + `run_command` 生成并运行（有危险命令拦截） |\n| **VLM** | 粘贴/选图 → 上传为 `[imgN](路径)` 文本引用；需要时 `analyze_images`；`thread_id` 支持多轮追问 |\n\nMeta Agent 由 **Hub** 托管；API Key、VLM Key、配置和会话数据都保存在 Hub 的持久化数据目录，不下发给 Edge 或 App（且不写入 Git）。配置接口只返回是否已配置，绝不回显 Key 明文。Hub 重启会中断进行中的 SSE，但不会删除已落盘的 Meta 会话或 VLM thread。\n\n**Session 持久化（同一 sessionId；多图 = 多个 VLM thread 文件）**\n\n```\n.ai/sessions/                       # 或 AI_DATA_DIR/sessions\n  index.json\n  {sessionId}/\n    meta.json\n    messages.jsonl                  # 对话（一行一条，含 tool）\n    vlm/\n      {threadId}.jsonl              # 每个看图线程单独文件\n                                    # 多图/多次 analyze → 多个 threadId\n                                    # 文件内多行 = 该线程的多轮追问\n```\n\n删除会话会整目录删除。旧版 `session.json`、`vlm.jsonl`、`vlm/*.json`、全局 `.ai/vlm/` 会自动迁移。\n\nMeta Agent 的 API 由 Hub 提供；旧版 Node/Edge 实现路径仅供迁移和历史参考。\n\n## Multi-machine (optional)\n\nOnly needed when sessions live on **several hosts** and you want **one public WebUI**.\n\nFor full hub/edge setup, env vars, and routing details see **[gateway/README.md](gateway/README.md)**.\n\n### Quick overview\n\n| Role | Tech | Responsibility |\n|------|------|----------------|\n| **Hub (中心端)** | **Go** binary `claude-gateway` + `public/` | Public UI, login, merge sessions, route by `machineId` |\n| **Edge (业务机)** | **Node** `npm run client` | Agents, local sessions, files, git, shell on that machine |\n| **Standalone** | **Node** `node server.js` | Everything on one machine — **no hub** |\n\n```bash\n# --- Hub (public VPS) ---\ncd gateway && make linux-amd64\nMACHINE_TOKEN=shared-secret \\\nHUB_USERNAME=admin HUB_PASSWORD=login-pass \\\nPUBLIC_DIR=/opt/claude-simple/public \\\nGATEWAY_ADDR=0.0.0.0:8080 \\\n./dist/claude-gateway-linux-amd64\n\n# --- Edge on machine A ---\nMACHINE_TOKEN=shared-secret MACHINE_ID=laptop-a \\\n  GATEWAY_URL=wss://ui.example.com/machine-connect npm run client\n\n# --- Edge on machine B ---\nMACHINE_TOKEN=shared-secret MACHINE_ID=build-b \\\n  GATEWAY_URL=wss://ui.example.com/machine-connect npm run client\n```\n\nIn hub mode the UI:\n\n- **Remembers** last machine in `localStorage` (no picker on every refresh)\n- Full-screen picker only when first time or last machine is offline\n- Top bar **Machines** menu: online/offline list + switch anytime\n- Session list is filtered to the selected machine\n\nAn edge may still run `node server.js` for a **local-only** UI on that host (independent of the hub).\n\n### Why Node on edges? (and Go later)\n\n- **Hub is Go** — binary deploy, no Node on the public VPS.\n- **Edge stays Node for now** — Claude Agent SDK, session scanners, and streaming agents are implemented in the existing Node app.\n- A full Go rewrite of the edge is **not planned short-term** (install convenience can later use a Go wrapper around the Node app if needed).\n\nLegacy Node hub: `npm run gateway` → `gateway.js` (prefer the Go binary).\n\n## Stack\n\n- **App backend (standalone / edge)**: Node.js + Express + `ws` + `@anthropic-ai/claude-agent-sdk` + Python PTY helper\n- **Hub (optional multi-machine)**: Go (`gateway/`) — static UI, auth, fan-in sessions, HTTP/WS relay\n- **Frontend**: ES modules + [mini-react](https://github.com/forechoandlook/mini-react) + DaisyUI + Tailwind + xterm.js\n- **Storage**: IndexedDB (session cache) + JSON files (credentials, workspaces, project notes, session meta)\n- **No build step** (dev): browser loads `public/*.js` directly; optional `npm run build` for `dist/`\n\n## Agent backends\n\n| Agent  | How it runs                                           | Resume            | Session store                            |\n| ------ | ----------------------------------------------------- | ----------------- | ---------------------------------------- |\n| Claude | `@anthropic-ai/claude-agent-sdk` → Claude Code CLI | SDK `resume`    | `~/.claude/projects/**/*.jsonl`        |\n| Codex  | `codex exec --json` / `codex exec resume <id>`    | thread_id         | `~/.codex/sessions/**/rollout-*.jsonl` |\n| Grok   | `grok -p … --output-format streaming-json`         | `--resume <id>` | `~/.grok/sessions/<cwd>/<id>/`         |\n| Gemini | `agy --output-format stream-json -p …`              | `--conversation <id>` | `~/.gemini/antigravity-cli/` + UI journal |\n| Cursor | `cursor-agent --print --output-format stream-json` | `--resume <id>` | `~/.cursor/claude-simple-ui/sessions/` UI journal |\n\nThe Memory tab lists files for the selected session's agent and loads their contents on click: Claude project memory, Codex account memory, or Grok session memory. Meta Agent can use `get_session_jsonl` to inspect a specific agent session's raw JSONL in bounded pages.\n\n## Scripts\n\n| Script | Description |\n|--------|-------------|\n| `npm run dev` | Standalone with `--watch` |\n| `npm start` / `npm run serve` | Production standalone |\n| `npm run build` | Bundle frontend into `dist/` |\n| `npm run client` | Edge worker (requires hub) |\n| `claude-edge status\\|start\\|stop\\|restart\\|logs` | Supervised edge (launchd / systemd). Also `claude-simple-edge`, `edge-daemon` |\n| `npm run gateway` | Legacy Node hub |\n| `npm run gateway:build` | Build Go hub via `gateway/Makefile` |\n","readmeFilename":"README.md"}