{"_id":"@always-coder/cli","_rev":"7-6c06f4dacd8e8e29771e67e928522299","name":"@always-coder/cli","dist-tags":{"latest":"1.1.2"},"versions":{"1.0.0":{"name":"@always-coder/cli","version":"1.0.0","keywords":["ai","claude","codex","remote","terminal","pty","websocket","cli"],"author":{"name":"tyyzqmf"},"license":"MIT","_id":"@always-coder/cli@1.0.0","maintainers":[{"name":"mingfeiq","email":"tyyzqmf@gmail.com"}],"homepage":"https://github.com/tyyzqmf/always-coder#readme","bugs":{"url":"https://github.com/tyyzqmf/always-coder/issues"},"bin":{"always":"dist/index.js"},"dist":{"shasum":"287b3f4153c800f4df0bfaeb303d9724fb8f6e27","tarball":"https://registry.npmjs.org/@always-coder/cli/-/cli-1.0.0.tgz","fileCount":50,"integrity":"sha512-At8Gn2FSD8BMHiGFMc+WNcoXyOgoBKo28+Js98tfvsafwCICXx8YBNLRbaxEaPlAz5F9WgcOAUVO4OVRYoF69A==","signatures":[{"sig":"MEQCIER7wsigfJGwy7XLqCI7gKvFZ5kLZaneB9Yn+rQtF9dhAiBgnTtjni206skvFwDg5JwApKTmv5EGQWhI+xdZizwPJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217740},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"42ebfe9c232507e12b96a2ded4ae16fb57bbb41f","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsc && chmod +x dist/index.js","clean":"rm -rf dist","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"mingfeiq","email":"tyyzqmf@gmail.com"},"repository":{"url":"git+https://github.com/tyyzqmf/always-coder.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"Remote AI coding agent control - access Claude, Codex, and other AI assistants from anywhere","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0","chalk":"^5.3.0","node-pty":"^1.0.0","commander":"^12.0.0","qrcode-terminal":"^0.12.0","@always-coder/shared":"^1.0.0","amazon-cognito-identity-js":"^6.3.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^1.2.0","@types/ws":"^8.18.1","bun-types":"^1.0.25","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.0_1770016222595_0.3946083270958367","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@always-coder/cli","version":"1.0.1","keywords":["ai","claude","codex","remote","terminal","pty","websocket","cli"],"author":{"name":"tyyzqmf"},"license":"MIT","_id":"@always-coder/cli@1.0.1","maintainers":[{"name":"mingfeiq","email":"tyyzqmf@gmail.com"}],"homepage":"https://github.com/tyyzqmf/always-coder#readme","bugs":{"url":"https://github.com/tyyzqmf/always-coder/issues"},"bin":{"always":"dist/index.js"},"dist":{"shasum":"6ef034234f356629678abeb4b693c86a100c7870","tarball":"https://registry.npmjs.org/@always-coder/cli/-/cli-1.0.1.tgz","fileCount":50,"integrity":"sha512-LhMcXniujW8lU04MZo1nz4REbaY1aYHANghjDwkk/hxLzp6/T2gn299zsgcUTZ/WMeCEK3NnmZjynZb2bmmQjw==","signatures":[{"sig":"MEUCIQCIW9CCZJ86EJ78XOVGMe8UayKKD89Q2YEKl5o3ozNUMQIgXdqUYwmuWjqF3G9n+7Qoa1ZbD4Gs61rG302bkgIFXZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217742},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"e7f4276cfaf216d320fe52bc2ccec523f2476cd8","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsc && chmod +x dist/index.js","clean":"rm -rf dist","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"mingfeiq","email":"tyyzqmf@gmail.com"},"repository":{"url":"git+https://github.com/tyyzqmf/always-coder.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"Remote AI coding agent control - access Claude, Codex, and other AI assistants from anywhere","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0","chalk":"^5.3.0","node-pty":"^1.0.0","commander":"^12.0.0","qrcode-terminal":"^0.12.0","@always-coder/shared":"^1.0.0","amazon-cognito-identity-js":"^6.3.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^1.2.0","@types/ws":"^8.18.1","bun-types":"^1.0.25","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.1_1770017159417_0.16414237269291743","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@always-coder/cli","version":"1.0.2","keywords":["ai","claude","codex","remote","terminal","pty","websocket","cli"],"author":{"name":"tyyzqmf"},"license":"MIT","_id":"@always-coder/cli@1.0.2","maintainers":[{"name":"mingfeiq","email":"tyyzqmf@gmail.com"}],"homepage":"https://github.com/tyyzqmf/always-coder#readme","bugs":{"url":"https://github.com/tyyzqmf/always-coder/issues"},"bin":{"always":"dist/index.js"},"dist":{"shasum":"343abcb5a5baf8a8c1f8bd8f3d2c5aed9cd20bfa","tarball":"https://registry.npmjs.org/@always-coder/cli/-/cli-1.0.2.tgz","fileCount":50,"integrity":"sha512-Ir+ErEsHLSnPH7EYWSGYxcuhF1SM+o64Hu9nzrtQk/SCu36IyuTNssvnmtQsJH8uzBvz5+CqYcQ/kPK52CTvrA==","signatures":[{"sig":"MEQCIHCmG6s7ZFj3Uo7VcTjT8Ag3uAxXOn535yNwcWUX4EJ2AiAQYVOzOI7vssGV6t2mRYbHOEOzeYa0Q8Mb/zdy+QK2Cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218242},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"12bbb923694298f63f6e1669f6fe5bf2cd478610","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsc && chmod +x dist/index.js","clean":"rm -rf dist","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"mingfeiq","email":"tyyzqmf@gmail.com"},"repository":{"url":"git+https://github.com/tyyzqmf/always-coder.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"Remote AI coding agent control - access Claude, Codex, and other AI assistants from anywhere","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0","chalk":"^5.3.0","node-pty":"^1.0.0","commander":"^12.0.0","qrcode-terminal":"^0.12.0","@always-coder/shared":"^1.0.0","amazon-cognito-identity-js":"^6.3.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^1.2.0","@types/ws":"^8.18.1","bun-types":"^1.0.25","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.2_1770020269378_0.15390261636323732","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@always-coder/cli","version":"1.0.3","keywords":["ai","claude","codex","remote","terminal","pty","websocket","cli"],"author":{"name":"tyyzqmf"},"license":"MIT","_id":"@always-coder/cli@1.0.3","maintainers":[{"name":"mingfeiq","email":"tyyzqmf@gmail.com"}],"homepage":"https://github.com/tyyzqmf/always-coder#readme","bugs":{"url":"https://github.com/tyyzqmf/always-coder/issues"},"bin":{"always":"dist/index.js"},"dist":{"shasum":"202e7f705749fd6f5585708e18ea0f0f2e78444b","tarball":"https://registry.npmjs.org/@always-coder/cli/-/cli-1.0.3.tgz","fileCount":50,"integrity":"sha512-cXj6a9TzSObm6laWcuw+YTe0/v5cZdqSBF216K1iiQ9UzO4F5vBtdcHFy0MEp2AgFqttKhnXfEgOLyIk8IvXcA==","signatures":[{"sig":"MEYCIQCj5p96MlKtW19fURv4XStrh6o5diIXDDoxmuSMl1SH8QIhALIf1PiWJlpj/Mp8X99y0D8Oa7zARfVHfVZxX+YGCmtO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220393},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"db1711e2e37f21847955c06d0c50af0a7e1e3a6f","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsc && chmod +x dist/index.js","clean":"rm -rf dist","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"mingfeiq","email":"tyyzqmf@gmail.com"},"repository":{"url":"git+https://github.com/tyyzqmf/always-coder.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"Remote AI coding agent control - access Claude, Codex, and other AI assistants from anywhere","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0","chalk":"^5.3.0","node-pty":"^1.0.0","commander":"^12.0.0","qrcode-terminal":"^0.12.0","@always-coder/shared":"^1.0.0","amazon-cognito-identity-js":"^6.3.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^1.2.0","@types/ws":"^8.18.1","bun-types":"^1.0.25","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.3_1770020851616_0.7088989302852848","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@always-coder/cli","version":"1.1.0","keywords":["ai","claude","codex","remote","terminal","pty","websocket","cli"],"author":{"name":"tyyzqmf"},"license":"MIT","_id":"@always-coder/cli@1.1.0","maintainers":[{"name":"mingfeiq","email":"tyyzqmf@gmail.com"}],"homepage":"https://github.com/tyyzqmf/always-coder#readme","bugs":{"url":"https://github.com/tyyzqmf/always-coder/issues"},"bin":{"always":"dist/index.js"},"dist":{"shasum":"07d4f5a408d1e09bd392a9d87a58b11c66927e7c","tarball":"https://registry.npmjs.org/@always-coder/cli/-/cli-1.1.0.tgz","fileCount":58,"integrity":"sha512-bLkMLWgCHXCurMEe+KvgDI6NBlP1oM3nuooyp8n5O+H7YAr4LgEUy37hL9naeKT6UI85G7nJsIgORkm1GM5arg==","signatures":[{"sig":"MEQCIBiQHGJ4eOnEgOmpigBN4KnC/jePXezYpDObkYbRLZF6AiBM0ptpPhPCYNi6Uy1ZFLiHZXa39tAkSMEwrB40qNup/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":254455},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"bf10da088c0f34237570334d86ad61e1ea5597fa","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsc && chmod +x dist/index.js","clean":"rm -rf dist","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"mingfeiq","email":"tyyzqmf@gmail.com"},"repository":{"url":"git+https://github.com/tyyzqmf/always-coder.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"Remote AI coding agent control - access Claude, Codex, and other AI assistants from anywhere","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0","chalk":"^5.3.0","node-pty":"^1.0.0","commander":"^12.0.0","qrcode-terminal":"^0.12.0","@always-coder/shared":"^1.1.0","amazon-cognito-identity-js":"^6.3.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^1.2.0","@types/ws":"^8.18.1","bun-types":"^1.0.25","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.1.0_1770087707051_0.09936276771773711","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@always-coder/cli","version":"1.1.1","keywords":["ai","claude","codex","remote","terminal","pty","websocket","cli"],"author":{"name":"tyyzqmf"},"license":"MIT","_id":"@always-coder/cli@1.1.1","maintainers":[{"name":"mingfeiq","email":"tyyzqmf@gmail.com"}],"homepage":"https://github.com/tyyzqmf/always-coder#readme","bugs":{"url":"https://github.com/tyyzqmf/always-coder/issues"},"bin":{"always":"dist/index.js"},"dist":{"shasum":"83dc24eb0b47d37d0aec27d74eddaf1999948d40","tarball":"https://registry.npmjs.org/@always-coder/cli/-/cli-1.1.1.tgz","fileCount":58,"integrity":"sha512-VlpZEs4jZR8tEHz9WeL2DGHvPruWLsXBj50i5ZRWGPAwJ0d8AC9AO6k+Vw+5jJnxhXo3LHJ1vtZUFfS8lyb+/Q==","signatures":[{"sig":"MEUCIHBa+J+SGFWyZGJvTuXy5UDtiEx2Wy0ZmJaOF391gojsAiEAwT1qcgzl/nSxO8yEcJXognAP9BIOF6u6ba/coSpcTBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255172},"type":"module","engines":{"node":">=20.0.0"},"gitHead":"a7b75983afd628ecd12445a201fad5329b3c1286","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsc && chmod +x dist/index.js","clean":"rm -rf dist","start":"tsx src/index.ts","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm run build"},"_npmUser":{"name":"mingfeiq","email":"tyyzqmf@gmail.com"},"repository":{"url":"git+https://github.com/tyyzqmf/always-coder.git","type":"git","directory":"packages/cli"},"_npmVersion":"10.8.2","description":"Remote AI coding agent control - access Claude, Codex, and other AI assistants from anywhere","directories":{},"_nodeVersion":"20.20.0","dependencies":{"ws":"^8.19.0","chalk":"^5.3.0","node-pty":"^1.0.0","commander":"^12.0.0","qrcode-terminal":"^0.12.0","@always-coder/shared":"^1.1.0","amazon-cognito-identity-js":"^6.3.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","vitest":"^1.2.0","@types/ws":"^8.18.1","bun-types":"^1.0.25","typescript":"^5.3.3","@types/node":"^20.11.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.1.1_1770088390262_0.9766865613960585","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@always-coder/cli","version":"1.1.2","description":"Remote AI coding agent control - access Claude, Codex, and other AI assistants from anywhere","type":"module","publishConfig":{"access":"public"},"bin":{"always":"dist/index.js"},"keywords":["ai","claude","codex","remote","terminal","pty","websocket","cli"],"repository":{"type":"git","url":"git+https://github.com/tyyzqmf/always-coder.git","directory":"packages/cli"},"author":{"name":"tyyzqmf"},"license":"MIT","engines":{"node":">=20.0.0"},"scripts":{"dev":"tsx src/index.ts","start":"tsx src/index.ts","build":"tsc && chmod +x dist/index.js","clean":"rm -rf dist","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","prepublishOnly":"pnpm run build"},"dependencies":{"@always-coder/shared":"^1.1.0","amazon-cognito-identity-js":"^6.3.16","chalk":"^5.3.0","commander":"^12.0.0","node-pty":"^1.0.0","qrcode-terminal":"^0.12.0","ws":"^8.19.0"},"devDependencies":{"@types/node":"^20.11.0","@types/ws":"^8.18.1","bun-types":"^1.0.25","tsx":"^4.21.0","typescript":"^5.3.3","vitest":"^1.2.0"},"_id":"@always-coder/cli@1.1.2","gitHead":"7bdd10f6669620b2598357d6de58cd204661b0cf","bugs":{"url":"https://github.com/tyyzqmf/always-coder/issues"},"homepage":"https://github.com/tyyzqmf/always-coder#readme","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-7hIsAj47lvabDjHJZIfcY2j/FhG7vuJZOTPT3Ug5RUdWBsbq93lz17194OyeGP4tQcaKbzQUj9c0VKT1OzRETw==","shasum":"e7751e879301284d73ed8a0342eb3ef730d01bee","tarball":"https://registry.npmjs.org/@always-coder/cli/-/cli-1.1.2.tgz","fileCount":58,"unpackedSize":256271,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIG1B8hTFe/DfYzjRg623G+TgedfjODr/2NTb53l8mT21AiEA8OF1E+u0uulAQ69CskPOtbgcN/yXx0PcXassVAS4C0U="}]},"_npmUser":{"name":"mingfeiq","email":"tyyzqmf@gmail.com"},"directories":{},"maintainers":[{"name":"mingfeiq","email":"tyyzqmf@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_1.1.2_1770096793859_0.8869878639250999"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-02T07:10:22.508Z","modified":"2026-02-03T05:33:14.172Z","1.0.0":"2026-02-02T07:10:22.737Z","1.0.1":"2026-02-02T07:25:59.592Z","1.0.2":"2026-02-02T08:17:49.531Z","1.0.3":"2026-02-02T08:27:31.775Z","1.1.0":"2026-02-03T03:01:47.206Z","1.1.1":"2026-02-03T03:13:10.410Z","1.1.2":"2026-02-03T05:33:14.056Z"},"bugs":{"url":"https://github.com/tyyzqmf/always-coder/issues"},"author":{"name":"tyyzqmf"},"license":"MIT","homepage":"https://github.com/tyyzqmf/always-coder#readme","keywords":["ai","claude","codex","remote","terminal","pty","websocket","cli"],"repository":{"type":"git","url":"git+https://github.com/tyyzqmf/always-coder.git","directory":"packages/cli"},"description":"Remote AI coding agent control - access Claude, Codex, and other AI assistants from anywhere","maintainers":[{"name":"mingfeiq","email":"tyyzqmf@gmail.com"}],"readme":"# @always-coder/cli\n\nRemote AI coding agent control - access Claude, Codex, and other AI assistants from anywhere via secure WebSocket connections.\n\n## Installation\n\n```bash\nnpm install -g @always-coder/cli\n```\n\n## Quick Start\n\n```bash\n# Login to your server\nalways login --server https://your-server.example.com\n\n# Start a Claude session\nalways claude\n\n# Run in background (daemon mode)\nalways claude --daemon\n\n# List all sessions\nalways sessions\n```\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `always [command]` | Run a command (default: claude) |\n| `always login` | Login with your account |\n| `always logout` | Logout from your account |\n| `always whoami` | Show current logged-in user |\n| `always sessions` | List active sessions |\n| `always sessions --remote` | List sessions from all instances |\n| `always stop <session-id>` | Stop a daemon session |\n| `always logs <session-id>` | View session logs |\n| `always config list` | Show current configuration |\n\n## Options\n\n- `-d, --daemon` - Run in background mode\n- `-s, --server <url>` - WebSocket server URL\n\n## Configuration\n\nConfiguration is stored in `~/.always-coder/config.json`.\n\n```bash\n# Manual configuration\nalways init <websocket-url> <web-url>\n\n# Or set individual values\nalways config set server wss://api.example.com\nalways config set webUrl https://app.example.com\n```\n\n## Requirements\n\n- Node.js >= 20.0.0\n- For Claude: `claude` CLI must be installed\n\n## License\n\nMIT\n","readmeFilename":"README.md"}