{"_id":"remcodex","_rev":"41-a24f1184d7c6c8829475f3aef8829ba3","name":"remcodex","dist-tags":{"beta":"0.1.0-beta.12","latest":"0.1.0-beta.12"},"versions":{"0.1.0-beta.1":{"name":"remcodex","version":"0.1.0-beta.1","license":"MIT","_id":"remcodex@0.1.0-beta.1","maintainers":[{"name":"remcodex","email":"pishan.lu@gmail.com"}],"bin":{"remcodex":"dist/server/src/cli.js"},"dist":{"shasum":"0f82ac46d5fadcbd08680d02503b035e7c62c9a1","tarball":"https://registry.npmjs.org/remcodex/-/remcodex-0.1.0-beta.1.tgz","fileCount":58,"integrity":"sha512-t7xJ51UcFuc0qrEBTIBMG83//2rm9HolGUfxY2SZqn3x7UfiXR4qzXqUakB152u4xd2pqFhi1D23RDReM8SICQ==","signatures":[{"sig":"MEYCIQDSvErN4Z3HO7odEFGGkL/hE16LrsAyxVqoBbGX5RQ04gIhAPcfc93+kb8EiX+z+uDvCCAo3vVOKbxNGVe13llHQNuH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1075306},"gitHead":"f4de5035107f403f0243043609730395f4d800d6","scripts":{"cli":"tsx server/src/cli.ts --no-open","dev":"tsx watch server/src/app.ts","build":"tsc -p tsconfig.json","start":"tsx server/src/cli.ts --no-open","postinstall":"node scripts/fix-node-pty-helper.js"},"_npmUser":{"name":"remcodex","email":"pishan.lu@gmail.com"},"deprecated":"Deprecated beta build. Please upgrade to remcodex@0.1.0-beta.12.","_npmVersion":"10.8.2","description":"Control Codex from anywhere. Even on your phone.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ws":"^8.18.1","express":"^4.21.2","node-pty":"^1.0.0","markdown-it":"^14.1.1","better-sqlite3":"^11.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","@types/ws":"^8.5.14","typescript":"^5.8.2","@types/node":"^22.13.10","@types/express":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/remcodex_0.1.0-beta.1_1774731815889_0.5012982722065202","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.2":{"name":"remcodex","version":"0.1.0-beta.2","license":"MIT","_id":"remcodex@0.1.0-beta.2","maintainers":[{"name":"remcodex","email":"pishan.lu@gmail.com"}],"bin":{"remcodex":"dist/server/src/cli.js"},"dist":{"shasum":"8e076e4195f4fd0abe3b7f6815d354ecd0543b14","tarball":"https://registry.npmjs.org/remcodex/-/remcodex-0.1.0-beta.2.tgz","fileCount":58,"integrity":"sha512-uj691Qedyf1LErX4SG/8E6FWAAx9xmmKVQHvSiuuU/XUC0rRPq6VV9yisfT36X9uUj+HZ2XuPreZgBhjPwFchg==","signatures":[{"sig":"MEYCIQCfBeUQdT3Zm58ogM+sJkpL08Jnunen3ZrwjDPmTZ3A9AIhAN6Kow5yk+bWvm2lZ/Clsp+/mkEudYd0rBmqgxAn0lpi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1075073},"gitHead":"7702e2fa69147989998bf9831066f052bd092151","scripts":{"cli":"tsx server/src/cli.ts --no-open","dev":"tsx watch server/src/app.ts","build":"tsc -p tsconfig.json","start":"tsx server/src/cli.ts --no-open","postinstall":"node scripts/fix-node-pty-helper.js"},"_npmUser":{"name":"remcodex","email":"pishan.lu@gmail.com"},"deprecated":"Deprecated beta build. Please upgrade to remcodex@0.1.0-beta.12.","_npmVersion":"10.8.2","description":"Control Codex from anywhere. Even on your phone.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ws":"^8.18.1","express":"^4.21.2","node-pty":"^1.0.0","markdown-it":"^14.1.1","better-sqlite3":"^11.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","@types/ws":"^8.5.14","typescript":"^5.8.2","@types/node":"^22.13.10","@types/express":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/remcodex_0.1.0-beta.2_1774732536780_0.5377543496287691","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.3":{"name":"remcodex","version":"0.1.0-beta.3","license":"MIT","_id":"remcodex@0.1.0-beta.3","maintainers":[{"name":"remcodex","email":"pishan.lu@gmail.com"}],"bin":{"remcodex":"dist/server/src/cli.js"},"dist":{"shasum":"8cbc3e80f428c56daabedad3ce061fcf78f78ded","tarball":"https://registry.npmjs.org/remcodex/-/remcodex-0.1.0-beta.3.tgz","fileCount":58,"integrity":"sha512-OOjyTvj+mLARvX82JuOaqevpXjnVf6rCgs41xIiz5eCAG6zzPD+iFIjSII3ZfvULwcbOOCcQEbznceQV2QOApg==","signatures":[{"sig":"MEQCIGk4VyLZegpTpL4oqAG+foaWvww/iAqcM2HxuDO6qZtNAiARNnREpdaV5QK0N7gjXcqKqIeX1h8gnlS0LjhvBY/00Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1076993},"gitHead":"a668fd6dd5a2ba7ce8b9bed0782a16c521694a9f","scripts":{"cli":"tsx server/src/cli.ts --no-open","dev":"tsx watch server/src/app.ts","build":"tsc -p tsconfig.json","start":"tsx server/src/cli.ts --no-open","postinstall":"node scripts/fix-node-pty-helper.js"},"_npmUser":{"name":"remcodex","email":"pishan.lu@gmail.com"},"deprecated":"Deprecated beta build. Please upgrade to remcodex@0.1.0-beta.12.","_npmVersion":"10.8.2","description":"Control Codex from anywhere. Even on your phone.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ws":"^8.18.1","express":"^4.21.2","node-pty":"^1.0.0","markdown-it":"^14.1.1","better-sqlite3":"^11.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","@types/ws":"^8.5.14","typescript":"^5.8.2","@types/node":"^22.13.10","@types/express":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/remcodex_0.1.0-beta.3_1774734812753_0.9436856670316043","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.4":{"name":"remcodex","version":"0.1.0-beta.4","license":"MIT","_id":"remcodex@0.1.0-beta.4","maintainers":[{"name":"remcodex","email":"pishan.lu@gmail.com"}],"bin":{"remcodex":"dist/server/src/cli.js"},"dist":{"shasum":"2e368eb11eeac81f7335453d0d12feed8c6b76c9","tarball":"https://registry.npmjs.org/remcodex/-/remcodex-0.1.0-beta.4.tgz","fileCount":58,"integrity":"sha512-01MKZ9Cvjlxr4Aqai1WiIcalbeEMJoAQkW9GH2EWLVNfOeZtw33uv55AOMpM5oMZ7evuvdFQLRPvjqD/HM8xBw==","signatures":[{"sig":"MEUCIQCcDAfde62F5vbv717VHK/7l4Dny/kWCsqoXE+rvnd6ZwIgHxR5/dqIhxymuX05+kT5ZdQoVtUzD3CJO2iPwhJNIGQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1072318},"gitHead":"3259aeb6fcd2975899bd6aec69880582a326d555","scripts":{"cli":"tsx server/src/cli.ts --no-open","dev":"tsx watch server/src/app.ts","build":"tsc -p tsconfig.json","start":"tsx server/src/cli.ts --no-open","postinstall":"node scripts/fix-node-pty-helper.js"},"_npmUser":{"name":"remcodex","email":"pishan.lu@gmail.com"},"deprecated":"Deprecated beta build. Please upgrade to remcodex@0.1.0-beta.12.","_npmVersion":"6.14.18","description":"Control Codex from anywhere. Even on your phone.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"ws":"^8.18.1","express":"^4.21.2","node-pty":"^1.0.0","markdown-it":"^14.1.1","better-sqlite3":"^11.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","@types/ws":"^8.5.14","typescript":"^5.8.2","@types/node":"^22.13.10","@types/express":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/remcodex_0.1.0-beta.4_1774780348943_0.8735290029531646","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.5":{"name":"remcodex","version":"0.1.0-beta.5","license":"MIT","_id":"remcodex@0.1.0-beta.5","maintainers":[{"name":"remcodex","email":"pishan.lu@gmail.com"}],"bin":{"remcodex":"dist/server/src/cli.js"},"dist":{"shasum":"7b7775951eebf9abd1e19ebce31006c9b20b1190","tarball":"https://registry.npmjs.org/remcodex/-/remcodex-0.1.0-beta.5.tgz","fileCount":58,"integrity":"sha512-eueXGHNMlBVzcb/PJT9k2jiggfre+PDXjQiAbetG+rAq/oToaE0Xx4Nw2q+QZgarR1GB7R6HDNHWOV/Xv9Xcxg==","signatures":[{"sig":"MEYCIQCiWvpQHF3BOctgJp3HjT1eenNRtg23Gsc1WXH0pYbNAAIhAKRhq9V7H1K+Sm0nD7VjAhyPZAame9jlyZfKdEXWjVTG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1072302},"gitHead":"fc3e605fb1519a6ed63be515eb89a8731630de80","scripts":{"cli":"tsx server/src/cli.ts --no-open","dev":"tsx watch server/src/app.ts","build":"tsc -p tsconfig.json","start":"tsx server/src/cli.ts --no-open","postinstall":"node scripts/fix-node-pty-helper.js"},"_npmUser":{"name":"remcodex","email":"pishan.lu@gmail.com"},"deprecated":"Deprecated beta build. Please upgrade to remcodex@0.1.0-beta.12.","_npmVersion":"10.8.2","description":"Control Codex from anywhere. Even on your phone.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ws":"^8.18.1","express":"^4.21.2","node-pty":"^1.0.0","markdown-it":"^14.1.1","better-sqlite3":"^11.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","@types/ws":"^8.5.14","typescript":"^5.8.2","@types/node":"^22.13.10","@types/express":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/remcodex_0.1.0-beta.5_1774788768984_0.8365132408991105","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.6":{"name":"remcodex","version":"0.1.0-beta.6","license":"MIT","_id":"remcodex@0.1.0-beta.6","maintainers":[{"name":"remcodex","email":"pishan.lu@gmail.com"}],"bin":{"remcodex":"dist/server/src/cli.js"},"dist":{"shasum":"520385875736844dfd0757eb1b1b24f3ebd28a73","tarball":"https://registry.npmjs.org/remcodex/-/remcodex-0.1.0-beta.6.tgz","fileCount":58,"integrity":"sha512-OSoLTNl9u01auA1UCGEOnHxzaFxS5sTO0UAk1TkVc/2HKSUPBxuvS8k7sMA3PgjHMxnUHSMOXBXMqAEgMS+EwA==","signatures":[{"sig":"MEQCIF3siuVwD8k65hQR9kcnwK8l4HUQ/yhJ8Blv1Y1C+3N3AiB4+nYdJUPM2wQYboJTnw0UMia/KbWqHzpq+7jihd1khg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1074379},"gitHead":"ce246fb03d311e28fb66b01c713b1ce9157d1ae1","scripts":{"cli":"tsx server/src/cli.ts --no-open","dev":"tsx watch server/src/app.ts","build":"tsc -p tsconfig.json","start":"tsx server/src/cli.ts --no-open","postinstall":"node scripts/fix-node-pty-helper.js"},"_npmUser":{"name":"remcodex","email":"pishan.lu@gmail.com"},"deprecated":"Deprecated beta build. Please upgrade to remcodex@0.1.0-beta.12.","_npmVersion":"10.8.2","description":"Control Codex from anywhere. Even on your phone.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ws":"^8.18.1","express":"^4.21.2","node-pty":"^1.0.0","markdown-it":"^14.1.1","better-sqlite3":"^11.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","@types/ws":"^8.5.14","typescript":"^5.8.2","@types/node":"^22.13.10","@types/express":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/remcodex_0.1.0-beta.6_1774845250438_0.7251595678936058","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.7":{"name":"remcodex","version":"0.1.0-beta.7","license":"UNLICENSED","_id":"remcodex@0.1.0-beta.7","maintainers":[{"name":"remcodex","email":"pishan.lu@gmail.com"}],"bin":{"remcodex":"dist/server/src/cli.js"},"dist":{"shasum":"aedb4eb9cd05af67acc25f172ab949fd1f8de639","tarball":"https://registry.npmjs.org/remcodex/-/remcodex-0.1.0-beta.7.tgz","fileCount":61,"integrity":"sha512-PxUJlb3jHW6G2ceJZsUXoYZHfsQvohBN33wlRNq+pxcjS7Gi/zH12hfSR4w1drcFy54z3Oe9QzbQrS/mOpbTCQ==","signatures":[{"sig":"MEYCIQDP3eiAREySbCvLnSTPh4+v8b9bVamWztibcEm+rfHomAIhAO4aNkJ+n6D0leu3MFmLy4X8fXiuRoJlRbzio1rgyAOF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7630031},"gitHead":"2a934fee5e1d52941807ae68bb0ec0519e89eaf9","scripts":{"cli":"tsx server/src/cli.ts --no-open","dev":"tsx watch server/src/app.ts","build":"tsc -p tsconfig.json","start":"tsx server/src/cli.ts --no-open","postinstall":"node scripts/fix-node-pty-helper.js"},"_npmUser":{"name":"remcodex","email":"pishan.lu@gmail.com"},"deprecated":"Deprecated beta build. Please upgrade to remcodex@0.1.0-beta.12.","_npmVersion":"10.8.2","description":"Control Codex from anywhere. Even on your phone.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ws":"^8.18.1","express":"^4.21.2","node-pty":"^1.0.0","markdown-it":"^14.1.1","better-sqlite3":"^11.8.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.3","@types/ws":"^8.5.14","typescript":"^5.8.2","@types/node":"^22.13.10","@types/express":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/remcodex_0.1.0-beta.7_1774855600038_0.04800203289507854","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.8":{"name":"remcodex","version":"0.1.0-beta.8","license":"MIT","_id":"remcodex@0.1.0-beta.8","maintainers":[{"name":"remcodex","email":"pishan.lu@gmail.com"}],"bin":{"remcodex":"dist/server/src/cli.js"},"dist":{"shasum":"4ed59105711541613f8c371e819d0971cf93fce1","tarball":"https://registry.npmjs.org/remcodex/-/remcodex-0.1.0-beta.8.tgz","fileCount":58,"integrity":"sha512-PnqAqiC4UkYSps/N2XierBERmf3ORKA/jrff9y+cxDsDxa0o/ZRXb+8N3lZ7Fg1s1r81nhuYLKoo7Rl8FuGkpQ==","signatures":[{"sig":"MEUCIQD1uXmQgXREJJ0QfkAD4ZmsfV7T55TRFQGMce+fGT6TGQIgVsIoRFL5qMEbV4bKdKMPWZUQb6DRvhfAZbbIdr9Yuzc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1078132},"gitHead":"fd5ea222b6603420b2c99392f174f2752bc97bbc","scripts":{"cli":"tsx server/src/cli.ts --no-open","dev":"tsx watch server/src/app.ts","build":"tsc -p tsconfig.json","start":"tsx server/src/cli.ts --no-open","postinstall":"node scripts/fix-node-pty-helper.js"},"_npmUser":{"name":"remcodex","email":"pishan.lu@gmail.com"},"deprecated":"Deprecated beta build. Please upgrade to remcodex@0.1.0-beta.12.","_npmVersion":"6.14.18","description":"Control Codex from anywhere. Even on your phone.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"ws":"^8.18.1","express":"^4.21.2","node-pty":"^1.0.0","markdown-it":"^14.1.1","better-sqlite3":"^11.8.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.3","@types/ws":"^8.5.14","typescript":"^5.8.2","@types/node":"^22.13.10","@types/express":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/remcodex_0.1.0-beta.8_1774883823212_0.21857337605046","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.9":{"name":"remcodex","version":"0.1.0-beta.9","license":"MIT","_id":"remcodex@0.1.0-beta.9","maintainers":[{"name":"remcodex","email":"pishan.lu@gmail.com"}],"bin":{"remcodex":"dist/server/src/cli.js"},"dist":{"shasum":"6d52efb687e4f5e90ecf0a8b02539909909151bf","tarball":"https://registry.npmjs.org/remcodex/-/remcodex-0.1.0-beta.9.tgz","fileCount":59,"integrity":"sha512-0KBTKg6a69bDPa1xd1vmm9kntikxm1oKI1LJ7p+yoncs6GvSmjQnJM0ccdWmS6WkaIH5oDrW4HRyCcOTseuGHQ==","signatures":[{"sig":"MEUCIQD6Gi+kgG0MWN9w//JrWUmp5dwILz6SCh6XX0DMC7+fQgIgJI1VZK9wwPhWtfK+uWk46Tz2DaThSOqjRmqRPPpTHB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1078051},"gitHead":"01b60981e63128d64e8772487b44ae747eca08d1","scripts":{"cli":"tsx server/src/cli.ts --no-open","dev":"tsx watch server/src/app.ts","build":"tsc -p tsconfig.json","start":"tsx server/src/cli.ts --no-open","postinstall":"node scripts/fix-node-pty-helper.js"},"_npmUser":{"name":"remcodex","email":"pishan.lu@gmail.com"},"deprecated":"Deprecated beta build. Please upgrade to remcodex@0.1.0-beta.12.","_npmVersion":"10.8.2","description":"Control Codex from anywhere. Even on your phone.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ws":"^8.18.1","express":"^4.21.2","node-pty":"^1.0.0","markdown-it":"^14.1.1","better-sqlite3":"^11.8.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.3","@types/ws":"^8.5.14","typescript":"^5.8.2","@types/node":"^22.13.10","@types/express":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/remcodex_0.1.0-beta.9_1774891990168_0.6647562585458071","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.10":{"name":"remcodex","version":"0.1.0-beta.10","license":"MIT","_id":"remcodex@0.1.0-beta.10","maintainers":[{"name":"remcodex","email":"pishan.lu@gmail.com"}],"bin":{"remcodex":"dist/server/src/cli.js"},"dist":{"shasum":"2975973df482e884e303b6f302aebdcbee4fb846","tarball":"https://registry.npmjs.org/remcodex/-/remcodex-0.1.0-beta.10.tgz","fileCount":59,"integrity":"sha512-yqDqt0GDBnOVcruz+vN4X28uGs+6UjtASt6LFNL70AHTCtnrkOp/lzTUlonokY0tRjSSsGvn81+1vbNc80181A==","signatures":[{"sig":"MEUCIBbWZxgv/+iBXemrxByefgiSoEGSQnvIoJ48EZApbsT5AiEAhJyIMJ/BBS4ZBOhwkhb9TEw85OLoudeQzsCa1iihFEU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1083468},"gitHead":"e9f6f378c97824d6f07f97b1b0391e52b70a4527","scripts":{"cli":"tsx server/src/cli.ts --no-open","dev":"tsx watch server/src/app.ts","build":"tsc -p tsconfig.json","start":"tsx server/src/cli.ts --no-open","postinstall":"node scripts/fix-node-pty-helper.js"},"_npmUser":{"name":"remcodex","email":"pishan.lu@gmail.com"},"deprecated":"Deprecated beta build. Please upgrade to remcodex@0.1.0-beta.12.","_npmVersion":"6.14.18","description":"Control Codex from anywhere. Even on your phone.","directories":{},"_nodeVersion":"18.15.0","dependencies":{"ws":"^8.18.1","express":"^4.21.2","node-pty":"^1.0.0","markdown-it":"^14.1.1","better-sqlite3":"^11.8.1"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsx":"^4.19.3","@types/ws":"^8.5.14","typescript":"^5.8.2","@types/node":"^22.13.10","@types/express":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/remcodex_0.1.0-beta.10_1774979080233_0.24849602207127286","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.11":{"name":"remcodex","version":"0.1.0-beta.11","license":"UNLICENSED","_id":"remcodex@0.1.0-beta.11","maintainers":[{"name":"remcodex","email":"pishan.lu@gmail.com"}],"bin":{"remcodex":"dist/server/src/cli.js"},"dist":{"shasum":"99bf77ba65bea63ceb916e978ae5c96d25e24a8a","tarball":"https://registry.npmjs.org/remcodex/-/remcodex-0.1.0-beta.11.tgz","fileCount":65,"integrity":"sha512-gAeaKs07woffpjpEoPYOv+Xy+DVpWjF6vTj4VJV5Zi7BdBwO0aXbzo9h4zRLNq+d+KKbWmRjB28GdfhYa0/slg==","signatures":[{"sig":"MEUCIBKGZhDApQ115rWiFAEHI2viTklcohHYTuBWb6atld2oAiEA7vl+ptcqOk90RRHg5/CJ5U8NT9oegoCIVLTBmIpAt5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7642270},"engines":{"node":"20.x"},"gitHead":"7a83494a0dfbfc87d2504d3027bc514ff28e1c17","scripts":{"cli":"tsx server/src/cli.ts --no-open","dev":"tsx watch server/src/app.ts","build":"tsc -p tsconfig.json && node scripts/copy-db-assets.js","start":"tsx server/src/cli.ts --no-open","preinstall":"node scripts/check-node-version.js","postinstall":"node scripts/fix-node-pty-helper.js","smoke:start":"node scripts/smoke-start-tarball.js","smoke:tarball":"node scripts/smoke-test-tarball.js"},"_npmUser":{"name":"remcodex","email":"pishan.lu@gmail.com"},"deprecated":"Deprecated beta build. Please upgrade to remcodex@0.1.0-beta.12.","_npmVersion":"10.8.2","description":"Control Codex from anywhere. Even on your phone.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ws":"^8.18.1","express":"^4.21.2","node-pty":"^1.0.0","markdown-it":"^14.1.1","better-sqlite3":"^11.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","@types/ws":"^8.5.14","typescript":"^5.8.2","@types/node":"^22.13.10","@types/express":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/remcodex_0.1.0-beta.11_1775154194393_0.7946410790946992","host":"s3://npm-registry-packages-npm-production"}},"0.1.0-beta.12":{"name":"remcodex","version":"0.1.0-beta.12","license":"MIT","_id":"remcodex@0.1.0-beta.12","maintainers":[{"name":"remcodex","email":"pishan.lu@gmail.com"}],"bin":{"remcodex":"dist/server/src/cli.js"},"dist":{"shasum":"39a77ddff604fc3d2fac221831811baa5bd9bac0","tarball":"https://registry.npmjs.org/remcodex/-/remcodex-0.1.0-beta.12.tgz","fileCount":62,"integrity":"sha512-xjxVcZXzV2MxVa4vh2eVraIaw2G0+ARAz80TdFxShXsy8nAni4R3o4RHu4IIa9M4ctmOp4enQYU/KK/bb07CYQ==","signatures":[{"sig":"MEYCIQD0INJev6s6I+TpwZRmFlHcr2OFi8rTJkdbC0SUgWPEzwIhAIY37rGQ0gaJKP/ole0VXnqbs/Subcn+FSZW29JL/UWZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1089752},"engines":{"node":"20.x"},"gitHead":"6f2d340d248113db9911d44f0dc1b94f8d1d991c","scripts":{"cli":"tsx server/src/cli.ts --no-open","dev":"tsx watch server/src/app.ts","build":"tsc -p tsconfig.json && node scripts/copy-db-assets.js","start":"tsx server/src/cli.ts --no-open","preinstall":"node scripts/check-node-version.js","postinstall":"node scripts/fix-node-pty-helper.js","smoke:start":"node scripts/smoke-start-tarball.js","smoke:tarball":"node scripts/smoke-test-tarball.js"},"_npmUser":{"name":"remcodex","email":"pishan.lu@gmail.com"},"_npmVersion":"10.8.2","description":"Control Codex from anywhere. Even on your phone.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ws":"^8.18.1","express":"^4.21.2","node-pty":"^1.0.0","markdown-it":"^14.1.1","better-sqlite3":"^11.8.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","@types/ws":"^8.5.14","typescript":"^5.8.2","@types/node":"^22.13.10","@types/express":"^5.0.1"},"_npmOperationalInternal":{"tmp":"tmp/remcodex_0.1.0-beta.12_1775155462844_0.13988672705767424","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-03-28T21:03:35.808Z","modified":"2026-04-02T18:52:56.941Z","0.1.0-beta.1":"2026-03-28T21:03:36.142Z","0.1.0-beta.2":"2026-03-28T21:15:36.982Z","0.1.0-beta.3":"2026-03-28T21:53:32.937Z","0.1.0-beta.4":"2026-03-29T10:32:29.122Z","0.1.0-beta.5":"2026-03-29T12:52:49.194Z","0.1.0-beta.6":"2026-03-30T04:34:10.613Z","0.1.0-beta.7":"2026-03-30T07:26:40.448Z","0.1.0-beta.8":"2026-03-30T15:17:03.398Z","0.1.0-beta.9":"2026-03-30T17:33:10.397Z","0.1.0-beta.10":"2026-03-31T17:44:40.479Z","0.1.0-beta.11":"2026-04-02T18:23:14.789Z","0.1.0-beta.12":"2026-04-02T18:44:23.001Z"},"license":"MIT","description":"Control Codex from anywhere. Even on your phone.","maintainers":[{"name":"remcodex","email":"pishan.lu@gmail.com"}],"readme":"# 🚀 RemCodex\n\n> Remote control for Codex.  \n> From your browser and phone.\n\nRun Codex on one machine.  \nMonitor, approve, and control the same session from another.\n\n🌐 https://remcodex.com\n\n> Not a remote desktop. Not a proxy.  \n> A local-first way to control Codex away from the terminal.\n\n![RemCodex hero cover](docs/assets/hero-cover.png)\n\n---\n\n## ✨ What is RemCodex?\n\nRemCodex is **remote control for Codex**.\n\nIt lets you start Codex on one machine, then keep the same session visible,\ninterruptible, and controllable from another.\n\n- 👀 See what the AI is doing — in real time\n- ✅ Approve or reject actions before execution\n- ⏹ Interrupt or stop at any moment\n- 📱 Access your session from any device\n- 🔄 Sessions don’t break — they resume\n\n> One session. Any device.\n\n---\n\n## 🎬 A real workflow\n\nYou start a long Codex session on your machine.\n\nThen you leave your desk.\n\nOn your phone:\n\n- you see progress in real time\n- you receive an approval request\n- you approve it\n\nThe session continues instantly.\n\n> Everything else can disconnect — your session won’t.\n\n---\n\n## 🔥 Why RemCodex exists\n\nAI coding agents are powerful.  \nBut today, they run like a black box.\n\nYou either:\n\n- trust everything blindly\n- or sit in front of your terminal watching it\n\nRemCodex fixes that.\n\n> AI is no longer a black box.\n\n---\n\n## ⚡ What it does\n\n- Real-time execution timeline (messages, commands, approvals)\n- Human-in-the-loop command approval\n- Multi-device access to the same live session\n- Resume after refresh, sleep, or reconnect\n- Browser-based UI — **no extra client required**\n- Works with Codex CLI\n\n> No extra client install. Just open a browser.  \n> Your code never leaves your machine.\n\n---\n\n## 🚀 Quick start\n\n```bash\nnpx remcodex\n```\n\nThen open:\n\nhttp://127.0.0.1:18840\n\nAccess from another device:\n\nhttp://<your-ip>:18840\n\n> Runs entirely on your local machine. No cloud, no data upload.\n\n---\n\n## 🖥 Screenshots\n\n![RemCodex desktop workspace](docs/assets/hero-desktop.png)\n\n> Run and review Codex sessions in a single-page workspace.\n\n![RemCodex mobile session view](docs/assets/mobile-session.png)\n\n> Follow a live Codex session from your phone.\n\n![RemCodex approval flow](docs/assets/approval-flow.png)\n\n> Approve sensitive file-system actions from the UI.\n\n![RemCodex imported Codex session](docs/assets/imported-session.png)\n\n> Bring imported Codex rollouts into the same workspace.\n\n---\n\n## 🧠 What it actually is\n\nRemCodex is a **browser-based workspace for Codex sessions**.\n\nIt is built for real workflows:\n\n- long-running sessions\n- mobile check-ins\n- approval prompts\n- imported rollout history\n- timeline-style execution flow\n\nInstead of raw terminal logs, you get a structured, visual timeline you can follow and control.\n\n---\n\n## 🧩 Current product shape\n\n- Single-page workspace UI\n- Left sidebar for session navigation\n- Right-side execution timeline\n- Fixed input composer\n- Semantic timeline rendering for:\n    - user messages\n    - assistant output\n    - thinking\n    - commands\n    - patches\n    - approvals\n    - system events\n\n---\n\n## ⚙️ Key behaviors\n\n### Approvals\n\n- Writes inside working area → auto allowed\n- Writes outside → require approval\n- `Allow once` / `Allow for this turn` supported\n- Approval history stays visible in timeline\n\n---\n\n### Timeline\n\n- Semantic rendering (not raw logs)\n- Commands grouped into readable activity blocks\n- Running / failed states clearly visible\n- Smooth streaming + recovery after refresh\n\n---\n\n### Imported sessions\n\n- Import from `~/.codex/sessions/...`\n- Keep syncing if still active\n- Unified view with native sessions\n\n---\n\n## 🧠 Architecture\n\n```\nCodex CLI → Event stream → Semantic layer → Timeline → Web UI\n```\n\n---\n\n## ⚙️ Requirements\n\n- Node.js\n- Codex CLI (already working locally)\n\n---\n\n## ⚙️ Configuration\n\nDefault port: **18840**\n\n```bash\nPORT=18841 npx remcodex\n```\n\n---\n\n## 📦 Install FAQ\n\n### Why does `npx remcodex` hang on Linux?\n\nFirst install may compile native deps:\n\n- `better-sqlite3`\n- `node-pty`\n\nMake sure you have:\n\n- `python3`\n- `make`\n- `g++`\n\n---\n\n### Debug install issues\n\n```bash\nnpm install -g remcodex\nremcodex doctor\nremcodex start\n```\n\n---\n\n### Headless mode\n\n```bash\nnpx remcodex --no-open\n```\n\n---\n\n## 🔧 How it works\n\n1. Codex emits events\n2. Backend stores them (SQLite)\n3. Frontend loads timeline snapshot\n4. Live updates stream via WebSocket\n\nResult:\n\n- recoverable sessions\n- real-time UI\n- consistent execution flow\n\n---\n\n## 📊 Status\n\n- Beta / developer preview\n- Local-first architecture\n- No cloud dependency\n\n---\n\n## 🗺 Roadmap\n\n**Visibility**\n\n- fully observable execution\n- clear action timeline\n\n**Control**\n\n- fine-grained approvals\n- safer execution\n\n**Continuity**\n\n- survive refresh / sleep\n- stable long runs\n\n**Access**\n\n- control from any device\n\n**Integration**\n\n- IDE integrations\n- optional sharing\n\n---\n\n## 👥 Who it’s for\n\n- developers already using Codex\n- people tired of terminal-only workflows\n- anyone who wants **control, not just output**\n- multi-device workflows\n\n---\n\n## ⚠️ What’s not finished yet\n\n- no polished installer yet\n- no desktop packaging\n- no production-grade auth\n- no release pipeline\n\nIf you're comfortable running a local Node app —  \nyou can use it today.\n\n---\n\n## 📄 License\n\nMIT License\n","readmeFilename":"README.md"}