{"_id":"1cat-tunnel-client","_rev":"4-8caa25de789287a1a595ad29ef61c101","name":"1cat-tunnel-client","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.2":{"name":"1cat-tunnel-client","version":"0.1.2","_id":"1cat-tunnel-client@0.1.2","maintainers":[{"name":"yangzhuxin","email":"2935076541@qq.com"}],"homepage":"https://github.com/1CatAI/1cat-tunnel-client#readme","bugs":{"url":"https://github.com/1CatAI/1cat-tunnel-client/issues"},"bin":{"1cat-tunnel-client":"bin/1cat-tunnel-client.js"},"dist":{"shasum":"f2c0a1ef0a23c85b8e3f02db417da6a15caeb8d2","tarball":"https://registry.npmjs.org/1cat-tunnel-client/-/1cat-tunnel-client-0.1.2.tgz","fileCount":7,"integrity":"sha512-shbE/lxsp9Tue4jd8SJWbr/u9NP2K9DUjoitsb008EMYwEH4Em/O9ApU5F7V2JL8eerjFooBsQ46l6dpeESGzw==","signatures":[{"sig":"MEUCIFGB4GKRnR141cyuAFY+G9esqvvH9nYj9Ny5hT0cZQeWAiEA7fLKpPlaqh/e6LSlwKy8M5jlDZfhbTt3SZZ83EoWHkA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17601},"engines":{"node":">=18"},"scripts":{"test":"node --test","postinstall":"node ./scripts/postinstall.js"},"_npmUser":{"name":"yangzhuxin","email":"2935076541@qq.com"},"repository":{"url":"git+https://github.com/1CatAI/1cat-tunnel-client.git","type":"git"},"_npmVersion":"10.9.4","description":"npm wrapper for the 1Cat Tunnel client binary","directories":{},"_nodeVersion":"22.22.0","onecatTunnel":{"releaseBaseUrl":"https://github.com/1CatAI/1cat-tunnel-client/releases/download/v{version}"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/1cat-tunnel-client_0.1.2_1776334750623_0.3061169060812077","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"1cat-tunnel-client","version":"0.1.3","_id":"1cat-tunnel-client@0.1.3","maintainers":[{"name":"yangzhuxin","email":"2935076541@qq.com"}],"homepage":"https://github.com/1CatAI/1cat-tunnel-client#readme","bugs":{"url":"https://github.com/1CatAI/1cat-tunnel-client/issues"},"bin":{"1cat-tunnel-client":"bin/1cat-tunnel-client.js"},"dist":{"shasum":"7f8f747b991060d6d3465f66148b7ed3c563a30e","tarball":"https://registry.npmjs.org/1cat-tunnel-client/-/1cat-tunnel-client-0.1.3.tgz","fileCount":7,"integrity":"sha512-s7cv3dT28Wprgd64kVUbvHf4ORi2nCih6AMk6aWksMsEyUsd1IBvQ9bkKuuKWiRZ5q7bg+yIaAMFvC/RzYDmJg==","signatures":[{"sig":"MEUCIBkxxUK0hRoLLdH+Tl7RYNmiIT9kzCYPciduZNfaQIECAiEAyQroccG2V7kFFWW4m8tztdX6X5Qn7xjX3uzf10ZppCQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18398},"engines":{"node":">=18"},"scripts":{"test":"node --test","postinstall":"node ./scripts/postinstall.js"},"_npmUser":{"name":"yangzhuxin","email":"2935076541@qq.com"},"repository":{"url":"git+https://github.com/1CatAI/1cat-tunnel-client.git","type":"git"},"_npmVersion":"10.9.4","description":"npm wrapper for the 1Cat Tunnel client binary","directories":{},"_nodeVersion":"22.22.0","onecatTunnel":{"releaseBaseUrl":"https://github.com/1CatAI/1cat-tunnel-client/releases/download/v{version}"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/1cat-tunnel-client_0.1.3_1776335289350_0.03372515155304279","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"1cat-tunnel-client","version":"0.1.4","_id":"1cat-tunnel-client@0.1.4","maintainers":[{"name":"yangzhuxin","email":"2935076541@qq.com"}],"homepage":"https://github.com/1CatAI/1cat-tunnel-client#readme","bugs":{"url":"https://github.com/1CatAI/1cat-tunnel-client/issues"},"bin":{"1cat-tunnel-client":"bin/1cat-tunnel-client.js"},"dist":{"shasum":"3aec0c294dc90b7b9e301fc0312fde513325809b","tarball":"https://registry.npmjs.org/1cat-tunnel-client/-/1cat-tunnel-client-0.1.4.tgz","fileCount":7,"integrity":"sha512-ruYTx4nnEsZi4whz1EbfcoZnUHnZDOnJMMkNQvKAkSNFKvwCseDfEGxmSDvY7EanAyJYqRx8v9BJJjxyyFlbYA==","signatures":[{"sig":"MEQCIDljQmjnefRHGLLxv7ZDIiSK7ClM/0K6utdGJQG/zm72AiAodHGVp2nJVHrovcOTx++7Wd8fT5gBPsujNnFCS+m7Fw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18398},"engines":{"node":">=18"},"scripts":{"test":"node --test","postinstall":"node ./scripts/postinstall.js"},"_npmUser":{"name":"yangzhuxin","email":"2935076541@qq.com"},"repository":{"url":"git+https://github.com/1CatAI/1cat-tunnel-client.git","type":"git"},"_npmVersion":"10.9.4","description":"npm wrapper for the 1Cat Tunnel client binary","directories":{},"_nodeVersion":"22.22.0","onecatTunnel":{"releaseBaseUrl":"https://github.com/1CatAI/1cat-tunnel-client/releases/download/v{version}"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/1cat-tunnel-client_0.1.4_1776335624063_0.22753614281127743","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"1cat-tunnel-client","version":"0.1.5","description":"npm wrapper for the 1Cat Tunnel client binary","repository":{"type":"git","url":"git+https://github.com/1CatAI/1cat-tunnel-client.git"},"bin":{"1cat-tunnel-client":"bin/1cat-tunnel-client.js"},"scripts":{"postinstall":"node ./scripts/postinstall.js","test":"node --test"},"publishConfig":{"access":"public"},"engines":{"node":">=18"},"onecatTunnel":{"releaseBaseUrl":"https://github.com/1CatAI/1cat-tunnel-client/releases/download/v{version}"},"_id":"1cat-tunnel-client@0.1.5","bugs":{"url":"https://github.com/1CatAI/1cat-tunnel-client/issues"},"homepage":"https://github.com/1CatAI/1cat-tunnel-client#readme","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-lMusLC2IfRqOAXqxLBxdrB9KFlA6TJ2+5iwEpsfvueulkdfsikFzMTYJYLOeeru9UyCYELI/fJEXrFlRc96lFg==","shasum":"0efa50fb1d29f2eb446b09b29740cb0ca3d65c9b","tarball":"https://registry.npmjs.org/1cat-tunnel-client/-/1cat-tunnel-client-0.1.5.tgz","fileCount":12,"unpackedSize":12546047,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDCCP/Do8H369gf1ZpWZFQbhy5pEascwvYCf52V88xyagIgaHUb7HTWzo3vFcxJ/sUgPgd2pHJ90xMDcoArVatqHjY="}]},"_npmUser":{"name":"yangzhuxin","email":"2935076541@qq.com"},"directories":{},"maintainers":[{"name":"yangzhuxin","email":"2935076541@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/1cat-tunnel-client_0.1.5_1776339838920_0.34050475881044107"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-16T10:19:10.547Z","modified":"2026-04-16T11:43:59.384Z","0.1.2":"2026-04-16T10:19:10.755Z","0.1.3":"2026-04-16T10:28:09.485Z","0.1.4":"2026-04-16T10:33:44.193Z","0.1.5":"2026-04-16T11:43:59.279Z"},"bugs":{"url":"https://github.com/1CatAI/1cat-tunnel-client/issues"},"homepage":"https://github.com/1CatAI/1cat-tunnel-client#readme","repository":{"type":"git","url":"git+https://github.com/1CatAI/1cat-tunnel-client.git"},"description":"npm wrapper for the 1Cat Tunnel client binary","maintainers":[{"name":"yangzhuxin","email":"2935076541@qq.com"}],"readme":"# 1Cat Tunnel Client\n\n这个 npm 包用于分发和启动预编译的 `1Cat Tunnel` 客户端二进制。\n\n它不会发布 Go 源码，npm 包内会自带对应平台的预编译程序。\n\n## 安装要求\n\n- 已安装 Node.js 和 npm\n- 客户机可以主动访问服务端控制地址\n- 服务端已经部署完成，并且你能在控制台签发节点专属 `bootstrap token`\n\n当前支持的平台：\n\n- Linux `amd64`\n- Windows `amd64`\n- macOS `arm64`\n- macOS `amd64`\n\n## 安装\n\n在客户机上执行：\n\n```bash\nnpm install -g 1cat-tunnel-client\n```\n\n安装完成后启动客户端：\n\n```bash\nhash -r\n1cat-tunnel-client\n```\n\n如果你刚安装完仍然提示 `command not found`，通常只是当前终端还没刷新命令缓存。\n\n可以任选一种方式：\n\n- 先执行一次 `hash -r`\n- 重新打开一个新的终端窗口\n\n说明：\n\n- 使用 `nvm` 的机器不要加 `sudo`\n- 普通用户直接执行 `npm install -g ...` 即可\n\n## 一条龙安装流程\n\n如果你是第一次在客户机上安装，可以直接照下面做：\n\n### 1. 在服务端控制台签发 token\n\n先在服务端 Web 控制台为这个节点创建专属 `bootstrap token`。\n\n### 2. 在客户机安装客户端\n\n```bash\nnpm install -g 1cat-tunnel-client\nhash -r\n```\n\n### 3. 启动客户端\n\n```bash\n1cat-tunnel-client\n```\n\n### 4. 按向导完成配置\n\n依次完成：\n\n1. 粘贴 `bootstrap token`\n2. 选择要开放的预设，例如 `SSH` 或 `RDP`\n3. 确认本地地址\n4. 保存配置并启动\n\n完成后，客户端会自动连接到服务端。\n\n## 首次配置\n\n第一次运行时，如果本地还没有现成配置，程序会自动进入首启向导。\n\n你只需要按顺序做这几步：\n\n1. 先在服务端控制台为这个节点签发一个专属 `bootstrap token`\n2. 在客户机运行 `1cat-tunnel-client`\n3. 粘贴 `bootstrap token`\n4. 选择要开放的预设，例如 `SSH` 或 `RDP`\n5. 确认本地地址\n6. 保存配置并启动\n\n完成后，客户端会自动连接你的服务端。\n\n后续再次运行 `1cat-tunnel-client` 时，会直接复用本地配置，不需要重新输入 token。\n\n## 配置和日志位置\n\n- Linux: `${XDG_CONFIG_HOME:-~/.config}/1cat-tunnel`\n- Windows: `%APPDATA%\\1cat-tunnel`\n- macOS: `~/Library/Application Support/1cat-tunnel`\n\n这个目录里会保存：\n\n- 客户端配置文件\n- 运行日志\n- 当前用户可执行的客户端二进制副本\n\n## 典型使用流程\n\n### 1. 先准备服务端\n\n确保服务端已经可以正常打开 Web 控制台，并且客户端机器能够访问服务端控制地址。\n\n### 2. 在服务端签发节点 token\n\n登录服务端控制台后，为客户机创建节点，并复制它的专属 `bootstrap token`。\n\n### 3. 在客户机安装并启动\n\n```bash\nnpm install -g 1cat-tunnel-client\n1cat-tunnel-client\n```\n\n### 4. 粘贴 token 并完成向导\n\n客户端会自动解析：\n\n- 服务端地址\n- 节点名\n- 节点访问凭据\n\n你只需要继续选择预设并确认本地端口即可。\n\n## 发布内容\n\nnpm 包和 GitHub Release 都会附带这些文件：\n\n- `tunnel-client-linux-amd64`\n- `tunnel-client-windows-amd64.exe`\n- `tunnel-client-darwin-arm64`\n- `tunnel-client-darwin-amd64`\n- `checksums.txt`\n\n`npm install` 时会优先使用 npm 包内自带的二进制；如果包内资产不存在，才会回退到 GitHub Release 下载。\n\n## 常见问题\n\n### 1. 安装时报下载失败\n\n通常是当前网络阻止了 npm registry 或 GitHub Release。\n\n可以先检查：\n\n- 客户机是否能访问 GitHub\n- 网络代理是否允许下载 Release 资产\n- 当前平台是否在支持列表内\n\n如果客户现场网络限制较多，也可以改用已经打好的离线交付包。\n\n### 1.1 命令不存在或没有生效\n\n如果你已经安装完成，但终端提示：\n\n- `command not found: 1cat-tunnel-client`\n\n请先执行：\n\n```bash\nhash -r\nwhich 1cat-tunnel-client\n```\n\n如果 `which` 仍然没有输出，重新打开一个新的终端窗口再试。\n\n### 1.2 不要用 sudo\n\n如果你的 Node.js 是通过 `nvm` 安装的，不要用：\n\n```bash\nsudo npm install -g 1cat-tunnel-client\n```\n\n否则 `sudo` 进入的环境通常拿不到你的 `nvm` 路径。\n\n### 2. 运行后没有进入向导\n\n说明当前用户目录里已经存在旧配置。可以先检查上面的配置目录。\n\n### 3. 为什么仓库里没有源码\n\n这个仓库只用于客户端二进制分发，不用于公开源码托管。\n\n## 开发联调\n\n如果你是在本地开发 npm 包，而不是在客户机安装，可以先生成 release assets：\n\n```bash\nsh ./scripts/build-release-assets.sh\n```\n\n然后在项目根目录执行：\n\n```bash\ncd npm/client\nnpm test\nnpm pack\n```\n","readmeFilename":"README.md"}