trim-cli 是 TRIM NAS / fnOS 的命令行客户端,对应 npm 包 @trimjs/trim-cli@0.1.1,需要 Node.js 18+。它通过 HTTP API proxy 访问系统业务接口和原生应用 API,覆盖认证、文件、相册、百度网盘、应用中心、Docker、下载、日志、监控、网络、电源、存储和用户管理等场景。安装 Skill 不会自动安装 CLI,也不会自动登录 NAS。
准备与安装
首次使用前执行 trim-cli --version;未安装或版本不匹配时,可安装匹配版本: npm install -g @trimjs/trim-cli@0.1.1 也可将命令中的 trim-cli 替换为 npx -y @trimjs/trim-cli@0.1.1,无需全局安装。
主要用途与能力
按任务入口使用:登录、session、连接失败、profile 参考 entries/trim-shared.md 与 reference/_index.md;文件、finder、共享目录、ACL、上传下载参考 entries/trim-file.md 与 reference/workflows/file-routing.md;相册搜索、AI 搜图、详情、预览参考 entries/trim-photos.md 与 reference/workflows/photos-routing.md;百度网盘授权状态、文件、分享链接保存、传输任务、同步任务参考 entries/trim-baidu-netdisk.md 与 reference/baidu-netdisk.md;应用中心、Docker、下载、日志、监控参考对应 entries/ 文件与 reference/_index.md;存储写操作参考 entries/trim-storage.md 与 reference/workflows/storage-dangerous-ops.md;用户、用户组、权限参考 entries/trim-user.md 与 reference/user.md;真机验证参考 reference/workflows/device-validation.md。
使用方式
登录唯一使用 OAuth 2.0 Authorization Code + PKCE,固定 OAuth client_id=YJNMPJUGA9,按模块申请 trim.* scopes,完整列表见 reference/oauth.md,授权 URL 不含 redirect_uri。生产环境只使用交互式 login:CLI 生成授权链接并保持等待,用户自行在浏览器登录、确认授权、复制一次性 code,再粘贴到 CLI 的 Authorization code 提示中。Agent 不代填账号密码、不自动点击授权、不读取页面 code,也不把 code 放进命令参数。
最小认证流程: trim-cli --profile home --host <host> --port <port> --scheme https login trim-cli --profile home login --refresh trim-cli --profile home logout login 会输出授权链接并尝试打开浏览器,无法自动打开时使用 login --no-open。远程明文设备示例: trim-cli --profile home --host <host> --port 5666 --scheme http --allow-insecure-http login --no-open
连接选项包括 --host、--port、--profile、--scheme、--allow-insecure-http、--tls-insecure。未显式传连接参数时复用当前 profile 保存的 host、port、scheme 和 TLS 设置;默认 loopback 为 http://localhost:5666,远程 IP 默认 HTTPS 5667,域名默认 HTTPS 443。
常用只读命令示例: trim-cli --profile home system info trim-cli --profile home file ls /vol1 trim-cli --profile home file ls-dir /vol1 trim-cli --profile home file usage 1 trim-cli --profile home photos folders trim-cli --profile home photos search <keyword> --limit 20 trim-cli --profile home baidu-netdisk status trim-cli --profile home baidu-netdisk ls / trim-cli --profile home app list trim-cli --profile home docker image ls trim-cli --profile home download ls trim-cli --profile home monitor cpu trim-cli --profile home storage pools trim-cli --profile home user info
原始请求:系统业务缺少命名命令时使用 raw;Photos 原生 HTTP API 使用 photos request。raw 只有内置、已审计的只读端点可以省略 --yes,其他端点一律先确认并显式传 --yes;命令仍会校验路径和请求体。原始请求结果必须同时检查 HTTP 状态和业务响应 code/终态。
输出约定:命名命令默认输出 JSON 计划或业务数据。Photos 搜索的 total 才是匹配总数;AI 搜图只有在响应提供稳定总数时才能报告精确数量,否则只能报告本次返回条数。预览 URL 通常仍需要已登录浏览器 cookie。file ls-dir 汇总所有目录分段为 JSON 数组;file usage 汇总容量分类为 JSON 数组,同一分类身份取最后一次结果而不是累加。
适用场景与限制
适用于需要登录 TRIM NAS / fnOS、管理文件、相册或百度网盘、查看应用/Docker/存储状态、执行真机验证的用户。影视/Media API 当前不属于本 skill,不要探测或调用 CLI 中可能存在的 media 命令。百度账号授权只能在 NAS 的百度网盘应用登录页完成;CLI 只检查状态,不生成授权链接、不接收百度账号密码或 OAuth code。Agent 或非交互流程执行写命令时一律显式传 --yes;高风险存储命令还需要必要的密码预校验。远程明文 HTTP 必须显式 --allow-insecure-http;自签 HTTPS 使用 --tls-insecure。session 保存 access/refresh token、过期时间和 OAuth device 信息,敏感值只进入平台安全存储或显式选择的文件后端。access token 临期会自动刷新;收到 HTTP 401 时会 refresh 并只重试一次,连续 401 或 refresh 失败时要求重新 OAuth 登录。保存的 session 缺少当前模块 scope 时必须重新登录,refresh 不能扩展已授权 scope。logout 清理当前 profile 的 session 和 OAuth pending 文件,但不声称服务端令牌已撤销。
进一步阅读:reference/_index.md、reference/oauth.md、reference/photos.md、entries/trim-baidu-netdisk.md、reference/baidu-netdisk.md、entries/trim-shared.md、reference/workflows/device-validation.md。