{"_id":"@codemancers/tunnel-client","_rev":"2-78c72d730c9ea0418193565cbaf14f95","name":"@codemancers/tunnel-client","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@codemancers/tunnel-client","version":"0.0.1","keywords":["tunnel","proxy","websocket","local-tunnel","ngrok","localtunnel","tunnel-client"],"author":{"url":"Codemancers","name":"SyedSibtainRazvi"},"license":"MIT","_id":"@codemancers/tunnel-client@0.0.1","maintainers":[{"name":"iffyuva","email":"yuva@codemancers.com"},{"name":"syedsibtain","email":"syedsibtain@codemancers.com"}],"homepage":"https://github.com/codemancers/toolkit#readme","bugs":{"url":"https://github.com/codemancers/toolkit/issues"},"nx":{"targets":{"test":{"options":{"passWithNoTests":true}},"build":{"options":{"main":"apps/tunnel-client/src/main.ts","assets":["apps/tunnel-client/src/assets"],"bundle":true,"format":["cjs"],"platform":"node","tsConfig":"apps/tunnel-client/tsconfig.app.json","outputPath":"apps/tunnel-client/dist","esbuildOptions":{"sourcemap":true,"outExtension":{".js":".js"}}},"outputs":["{options.outputPath}"],"executor":"@nx/esbuild:esbuild","configurations":{"production":{"esbuildOptions":{"sourcemap":false,"outExtension":{".js":".js"}}},"development":{}},"defaultConfiguration":"production"},"prune":{"executor":"nx:noop","dependsOn":["prune-lockfile","copy-workspace-modules"]},"serve":{"options":{"buildTarget":"@toolkit/tunnel-client:build","runBuildTargetDependencies":false},"executor":"@nx/js:node","dependsOn":["build"],"continuous":true,"configurations":{"production":{"buildTarget":"@toolkit/tunnel-client:build:production"},"development":{"buildTarget":"@toolkit/tunnel-client:build:development"}},"defaultConfiguration":"development"},"prune-lockfile":{"cache":true,"options":{"buildTarget":"build"},"outputs":["{workspaceRoot}/apps/tunnel-client/dist/package.json","{workspaceRoot}/apps/tunnel-client/dist/package-lock.json"],"executor":"@nx/js:prune-lockfile","dependsOn":["build"]},"copy-workspace-modules":{"cache":true,"options":{"buildTarget":"build"},"outputs":["{workspaceRoot}/apps/tunnel-client/dist/workspace_modules"],"executor":"@nx/js:copy-workspace-modules","dependsOn":["build"]}}},"bin":{"tunnel-client":"dist/main.js"},"dist":{"shasum":"cd7e902cbde2379936b9dad28be49bd7506a644b","tarball":"https://registry.npmjs.org/@codemancers/tunnel-client/-/tunnel-client-0.0.1.tgz","fileCount":6,"integrity":"sha512-+06neO5uykXwEUW3Pt39BouewyddKTJUYJuG4ZlflqqYhj4WwwrtiiP4m8eooRZqrgrStNsW/Y40Ga0HadF58g==","signatures":[{"sig":"MEQCIAdOIvysTSoMrIPbLkPPCbt7LlPdLm94jCu6c67t9pUTAiB/Eom3MvRa0VaoDr4q3RYRkMO9tcaPKs/gt6qt8akr3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13871},"main":"./dist/main.js","_from":"file:codemancers-tunnel-client-0.0.1.tgz","types":"./dist/main.d.ts","engines":{"node":">=18.0.0"},"private":false,"scripts":{"postbuild":"chmod +x dist/main.js"},"_npmUser":{"name":"syedsibtain","email":"syedsibtain@codemancers.com"},"_resolved":"/private/var/folders/2m/27y8csy92kzg0lk22v3yd1j40000gn/T/38aa14035cb69a2e593e99f47ad06196/codemancers-tunnel-client-0.0.1.tgz","_integrity":"sha512-+06neO5uykXwEUW3Pt39BouewyddKTJUYJuG4ZlflqqYhj4WwwrtiiP4m8eooRZqrgrStNsW/Y40Ga0HadF58g==","repository":{"url":"git+https://github.com/codemancers/toolkit.git","type":"git","directory":"apps/tunnel-client"},"_npmVersion":"11.4.2","description":"A production-ready tunnel client for creating secure tunnels to local services","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.17.0"},"_hasShrinkwrap":false,"peerDependencies":{"@types/node":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tunnel-client_0.0.1_1767962944157_0.5090917108675268","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-01-09T12:49:04.015Z","modified":"2026-09-10T09:40:28.915Z","0.0.1":"2026-01-09T12:49:04.317Z"},"bugs":{"url":"https://github.com/codemancers/toolkit/issues"},"author":{"url":"Codemancers","name":"SyedSibtainRazvi"},"license":"MIT","homepage":"https://github.com/codemancers/toolkit#readme","keywords":["tunnel","proxy","websocket","local-tunnel","ngrok","localtunnel","tunnel-client"],"repository":{"url":"git+https://github.com/codemancers/toolkit.git","type":"git","directory":"apps/tunnel-client"},"description":"A production-ready tunnel client for creating secure tunnels to local services","maintainers":[{"email":"yuva@codemancers.com","name":"iffyuva"},{"email":"syedsibtain@codemancers.com","name":"syedsibtain"},{"email":"vinu@codemancers.com","name":"poisvin"}],"readme":"# Tunnel Client\n\nA production-ready tunnel client for creating secure tunnels to local services.\n\n## Installation\n\n```bash\nnpm install @codemancers/tunnel-client\n```\n\nOr use npx to run without installation:\n\n```bash\nnpx @codemancers/tunnel-client --port 3001 --host https://tunnel.c9s.dev\n```\n\n## Usage\n\n### Command Line\n\n```bash\ntunnel-client --port 3001 --host https://local-tunnel.fly.dev --subdomain myapp\n```\n\n### Arguments\n\n- `--port <port>` - The local port to tunnel (required)\n- `--host <url>` - The tunnel server URL (default: http://localhost:3000)\n- `--subdomain <name>` - Optional subdomain name for the tunnel\n\n### Environment Variables\n\nYou can also configure the client using environment variables:\n\n- `TUNNEL_PORT` - The local port to tunnel\n- `TUNNEL_HOST` - The tunnel server URL\n- `TUNNEL_SUBDOMAIN` - Optional subdomain name\n- `TUNNEL_TARGET` - Target URL (alternative to port)\n\n### Examples\n\n```bash\n# Basic usage with local server\ntunnel-client --port 3001\n\n# With custom server and subdomain\ntunnel-client --port 3001 --host https://tunnel.c9s.dev --subdomain myapp\n\n# Using environment variables\nexport TUNNEL_PORT=3001\nexport TUNNEL_HOST=https://tunnel.c9s.dev\nexport TUNNEL_SUBDOMAIN=myapp\ntunnel-client\n```\n\n## How It Works\n\n1. The client connects to the tunnel server and requests a new tunnel\n2. The server allocates a unique tunnel ID and returns the public URL\n3. The client establishes a WebSocket connection to the tunnel\n4. All HTTP requests to the public URL are proxied through the WebSocket to your local service\n\n## Requirements\n\n- Node.js >= 18.0.0\n\n## License\n\nMIT\n","readmeFilename":"README.md"}