| name | hsk-cli |
| description | HSK CLI 运维助手 — 内网穿透、文件托管、项目部署。
触发词:公网访问、外网访问、暴露端口、上传文件、部署预览、内网穿透
|
HSK CLI — 零配置公网预览
功能说明
提供零配置的内网穿透、文件托管和项目部署能力,支持 Windows/macOS/Linux 多平台。
安装
前置要求:Node.js >= 14
npm install -g @aweray/hsk-cli
npx @aweray/hsk-cli <command>
首次运行时,CLI 会自动检测当前平台并下载对应的原生客户端二进制到 ~/.hsk/bin/,无需手动配置。
支持平台:macOS (Intel/Apple Silicon)、Linux (amd64)、Windows (amd64)
如果用户环境中尚未安装 hsk-cli,先引导用户执行上述安装命令,再继续后续操作。
调用方式
- 所有操作通过
hsk-cli 命令行工具执行(使用 Bash 工具)
- 推荐追加
--format json 获取结构化输出,便于解析
- 可用
--dry-run 预览不执行
何时使用
✅ 应该使用:
- 用户需要暴露本地服务到公网(内网穿透)
- 用户需要上传文件或目录获取公网链接(文件托管)
- 用户需要构建并部署前端项目(Build + Upload)
- 用户提到「公网访问」「外网访问」「暴露端口」「上传文件」
❌ 不应该使用:
- 简单的文件系统操作(使用 bash 直接操作)
- 纯网络诊断(使用 curl/wget 等工具)
- 不依赖公网预览的本地开发任务
策略选择(严格优先级)
- 用户要分享文件/目录 →
host(多文件项目必须上传整个目录)
- 用户要部署前端项目 →
deploy(自动 build 后上传构建产物)
- 用户要暴露 WebSocket/API/动态服务 →
tunnel
- 不确定时 → 先
deploy,失败再 tunnel
支持的命令
文件托管
hsk-cli host ./document.pdf --format json
hsk-cli host ./dist/ --format json
hsk-cli host ./dist/ --entry-file version.html --format json
hsk-cli host ./dist/ --resource-id <id> --format json
hsk-cli host ./dist/ --reuse --format json
构建并部署
hsk-cli deploy --format json
hsk-cli deploy --no-build --format json
hsk-cli deploy --resource-id <id> --format json
内网穿透
hsk-cli tunnel --ip 127.0.0.1 --port 9000 --format json
hsk-cli tunnel --ip 127.0.0.1 --port 9000 --detach --format json
hsk-cli tunnel --ip 127.0.0.1 --port 9000 --reuse --format json
隧道管理
hsk-cli tunnel list
hsk-cli tunnel stop --pid <PID>
hsk-cli tunnel stop --all
状态检测
hsk-cli status --format json
系统命令
hsk-cli download [--arch <arch>]
hsk-cli update [--arch <arch>] [--force]
hsk-cli platform
沙盒环境规则
- 浏览器打不开 → 直接告诉用户链接,不要
--open
- 进程保活不了 → 前台运行,不要
--detach
- 网络不通 → 改用
host,不要重复 tunnel
检测方法:
echo $CI — 非空表示沙盒/CI
[ -w "$HOME" ] — 失败表示文件系统受限
[ -d "$HOME/.hsk" ] — 不存在表示无法持久化
输出格式
结果以 JSON 格式输出(--format json),包含:
public_url:公网访问链接
resource_id:资源 ID(用于后续更新)
success:操作是否成功
mode:操作模式(create/update/reused)
错误码
| 错误码 | 场景 | 应对 |
|---|
TIMEOUT | 启动超时(30秒) | 检查本地服务是否监听、网络是否正常 |
BINARY_NOT_FOUND | 客户端未下载 | 运行 hsk-cli download 或 hsk-cli update |
FILE_NOT_FOUND | 文件不存在 | 提示用户检查路径 |
INVALID_PORT | 端口无效 | 端口号 1-65535;macOS/Linux < 1024 需 root |
UPLOAD_FAILED | 上传失败 | 检查网络、文件大小 |
PROCESS_EXIT | 进程异常退出 | 检查本地服务、端口冲突 |
PERMISSION_DENIED | 权限不足 | macOS 检查"本地网络"权限;端口 < 1024 需 sudo |
ENTRY_FILE_MISSING | 目录无入口文件 | 提示使用 --entry-file |
注意事项
- 首次运行时自动下载对应平台的原生客户端二进制到
~/.hsk/bin/
- 多文件项目必须上传整个目录,不能只传单个 HTML 文件
- macOS 下隧道无法连接时检查「本地网络」权限
- 用户更新内容后,先用
hsk-cli status 检测链接是否有效,不要直接说"继续使用旧链接"