DSH Hub

fnnas-labs/fnos-cli-skill

fnos-cli-skill

BundleSkills25 GitHub stars· updated 2026-10-19

fnos-cli-skill is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile headless add @fnnas-labs/fnos-cli@latest

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

fnos-cli-skill DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/fnos-cli-skill.svg)](https://dshhub.dev/plugins/fnos-cli-skill)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from fnnas-labs/fnos-cli-skill, cleaned of badges and images.

fnOS CLI Skill

fnOS 的使用指南与公开集成内容。运行时 CLI 与 Skill 来自同一 npm 包版本。

安装 Skill

npx skills add fnnas-labs/fnos-cli-skill --skill fnos-cli -g

独立 Skill 启动器

从当前加载的 Skill 目录定位 scripts/fnos-cli(macOS/Linux)或 scripts/fnos-cli.cmd(Windows),使用绝对路径。将本 Skill 示例中的 fnos-cli 替换为该路径,保留每个参数及其引号。先执行 --version 和相关 --help。

首次执行自动下载本机所需的一份固定版本 CLI;提示写入 stderr,成功后复用当前用户缓存。独立执行无需 Node/npm 或全局 CLI。macOS/Linux 需要系统的 curl、gzip、SHA-256 工具(sha256sum 或 shasum)及常用 shell 工具。下载失败、缓存损坏或镜像配置请读首次运行指南,按其中步骤恢复后重试原命令。更新 Skill 是显式操作,已有入口不自动升级。

Windows 可在 PowerShell 5.1 或 7 中调用 scripts/fnos-cli.ps1;.cmd 入口使用系统 Windows PowerShell。按当前 shell 规则传递参数,PowerShell 的 JSON 参数建议用单引号。Windows 使用系统 .NET 下载和解压,不需要 Unix 工具;缺少 PowerShell 或执行策略阻止启动时先处理本机环境,再重试原入口。

授权与使用

从 Skill 主入口开始。Agent 运行 login --authorize-only 提供链接,用户自行在浏览器登录并回传一次性 code。Agent 保持目标、profile 与执行环境一致,运行 login --code 并验证令牌保存及只读请求。无需用户终端;不要提供密码或 token。详细流程见 OAuth 指南。fnOS 的 DSH 使用同包启动器和 Skill。

许可

标准 MIT,版权主体为 Guangzhou TR Intelligent Manufacturing Technology Co., Ltd.,覆盖分发的 CLI、Skill 与集成代码,不覆盖 NAS 操作系统、服务端或 API 访问授权。详见 LICENSE 与 第三方声明。

fnOS CLI 的 DSH 集成

@fnnas-labs/fnos-cli 包含固定版本的 CLI 启动器、同版本 Skill 和 DSH bundle。bundle 激活 npm/dsh.mjs,向 Skill 服务显式注册 fnos-cli;安装 bundle 与注册 Skill 是两个步骤。

安装到实际使用的 DSH profile,例如:

dsh plugin --profile headless add @fnnas-labs/fnos-cli@latest

npm 处理发布期间 latest 可能仍为上一版。检查安装版本及命令帮助;已有 DSH 安装需要显式升级。复现特定版本时,用明确版本替换 latest。

Skill 根据资源目录定位同包 ../npm/run.cjs,并指导 Agent 通过 Node 调用;不依赖全局命令。适配器仅加载包内文档,不执行命令、不自动添加写确认参数、不登录。

首次运行与共享缓存

轻量包的首次 --version、--help 或业务调用才会下载执行主机对应的一份原生 CLI;安装 bundle、导入适配器和注册 Skill 本身不触发下载。同包运行清单绑定产品、版本和 SHA-256,不使用 PATH 上其他 CLI,也不在运行时解析 latest。

下载按 GitHub、用户配置的兼容 npm 二进制镜像、公共 npmmirror 顺序尝试,配置规则见同包安装说明。网络失败可回退;大小或摘要不符立即停止。下载提示写 stderr,不混入业务 JSON。失败后重试同一个包内入口,业务命令报错不会触发重新安装。

同一系统用户的 npm、DSH 和 Skill 入口按产品、版本和平台共享缓存,命中后不访问下载站。显式更新安装包才使用新版本,不删除其他入口仍可能需要的版本。原生可执行缓存与 OAuth Session 是独立状态:换 DSH profile 不代表换系统用户或迁移登录态。

通过公开 GitHub 桥接安装

dsh plugin --profile headless add github:fnnas-labs/fnos-cli-skill

桥接声明依赖 @fnnas-labs/fnos-cli@latest,由 index.mjs 加载实际安装依赖中的适配器、同包 CLI 与 Skill。无需全局 CLI。Git tag 不锁定 CLI 版本;包管理器 lockfile 可能保留旧依赖,需要显式升级。需要可复现安装时选择明确 npm 版本。公开仓库中的适配器是审阅快照,运行时使用安装依赖提供的适配器。

首次授权

Agent 使用同一个包内启动器,分别执行:

node "<resolved-launcher>" --profile <profile> --host <nas-host> --port <port> login --authorize-only
# 用户打开链接、授权并主动回传一次性 code 后执行:
node "<resolved-launcher>" --profile <profile> --host <nas-host> --port <port> login --code '<code>'

使用用户指定的 NAS 与端口;未知时询问,不猜测 localhost。两步及后续请求保持同一连接参数(含 HTTP/TLS)、profile、执行主机、系统用户和配置环境(包括 FNOS_CLI_CONFIG_DIR)。用户只在浏览器授权并回传 code,无需终端或交互 DSH TTY。完整过期、pending 和 code 保密规则见包内 reference/oauth.md。确认令牌保存并完成只读请求后才报告成功。SSH 和容器需要自己的启动器和状态;macOS Keychain 可能需要系统批准。

手动集成检查

DSH 验收由用户安排,不在每次 CI 自动执行。选择固定候选,成功结果包含包名、版本、tarball SHA-256、运行环境及未覆盖范围;其他哈希的结果不能用于重建后的包,即使版本相同。

需要 Node.js、npm、pnpm 和 DSH 支持的 macOS/Linux shell,对实际 npm tarball 执行:

node npm/dsh-integration.mjs --tarball /absolute/path/fnnas-labs-fnos-cli-0.2.1.tgz

此检查固定 DSH 0.2.0-rc.2,在隔离 DSH Home 安装候选,通过本地脚本模型驱动真实 headless Agent 的 skill 与 bash 工具。无需模型服务密钥、NAS 或 OAuth。覆盖 Skill 发现、从资源推导同包启动器、原生帮助、虚拟 profile 的只读连接尝试和未经确认写操作的拒绝。PATH 仅包含 Node;安装路径包含空格和单引号。日志与隔离配置保存在 .tmp/。

…

Related plugins