@michinarai/cli

中文文档
0.2.3发布于 2026/11/02Apache-2.0ES Module构建来源已验证

narai命令:脚手架,验证,构建,运行和注册narai课程工具。

中文使用文档
文档目录7 节
  1. 安装
  2. 五分钟:一个工具在挽具上运行
  3. 获得
  4. 命令
  5. 开发
  6. 稳定
  7. 释放

@michinarai / cli

narai命令行,用于构建Narai课程内部运行的工具,对公众开放 @michinarai/sdk.

对Narai工具不熟悉?这门课 为Narai做一个工具 教 一步一个脚印,然后 mo-narai-labs 有Narai自己的工具吗 阅读。

安装

npm install -g @michinarai/cli
narai --help

节点20及以上版本。或者在没有安装的情况下运行任何命令: npx @michinarai/cli <command>.

五分钟:一个工具在挽具上运行

narai init hello --publisher you   # a new tool in ./hello, its id you/hello
cd hello
npm install                        # the SDK, from npm
npm run dev                        # builds it, then `narai dev`: open the host address it prints

马具页面是Narai的主机,你的工具在另一个原点的沙盒框架中,就像一个课程一样。 它显示了该工具发送的每一条信息,以及纳莱的主人会给它的判决,并发送了清单 命令,就像导师那样。改变 src/tool.js、运行 npm run dev 再一次。

获得

narai init, validate, build 和 dev 无需帐户:线束只在您的机器上运行。把工具放入 身着传统的教训:

  1. 在Narai开个账户 beta.michinar.ai.
  2. 询问开发者测试版 beta.michinar.ai /开发人员随你怎么说 构建。
  3. 申请通过后,你会收到一封电子邮件,告诉你接下来的步骤。
  4. narai login:您在浏览器中登录,会话保存在您的操作系统密钥链中。没有API密钥可以复制。
  5. narai tools register,然后 narai tools push,在工具的文件夹中。
  6. 在置信区间: narai tools tokens create并对印刷的内容保密 NARAI_TOKEN.

在你获得资助前签到?浏览器是这么说的;关闭它,然后 narai login 以“你不开发工具”结束 然而:要求开发者测试 https://beta.michinar.ai/developers”。另一个Narai(你自己的,或者测试的) --narai-url <address> 每一个命令,或者 NARAI_URL.

命令

每个命令都需要 --json, --yes 和 --no-input. 结果去标准,进步去标准。退出代码:0,好的, 1错误,2使用,3验证。 --narai-url (或 NARAI_URL)选择Narai交谈;默认值为 https://beta.michinar.ai.

narai init <name> --publisher <slug> 从模板中写入一个新工具: narai.tool.json (舱单), 页面(src/),它的构造,还有 AGENTS.md 也是编码特工的技能。

narai init fretboard --publisher you --dir tools/fretboard

narai validate 支票 narai.tool.json 就像Narai的注册表所做的那样:模式,那么什么是 模式不能说(命名的每个有效负载都被声明了,没有答案携带结论,命令需要一个运行 SDK)。它打印每个原因,以及SDK的警告。

narai validate --json

narai build 在工具自己的构建之后密封一个发布:每个文件 dist/ 它的sha256和bundle 文摘,写进 dist/narai.tool.json.

node scripts/build.mjs && narai build

narai dev 在本地线束中运行构建的工具。

narai dev --locale ja --task task.json   # task.json: the task Narai would start it on ({id, kind, assist, prompt})
narai dev --preset preset.json --port 4000
narai dev --grant microphone             # as a step that grants the microphone: only if capabilities.microphone is true

narai login 在浏览器中登录Narai。答案只返回到这台机器(127.0.0.1),并且 session保存在操作系统的keychain中。 narai logout 撤销它。

narai login            # or --no-browser, to print the address instead
narai logout

narai tools register, push 和 list 与Narai的登记处合作;先签到。 register 建立你的 发布者(每个组织一次)和工具。 push 上传密封的构建(narai build的 dist/)作为草稿 版本,每个版本一次:相同的构建再次改变不了什么,并且在相同的版本下的不同构建 拒绝(提高版本)。两者都计划,然后在确认后申请。 --plan 只显示了变化,并与 --detailed-exitcode 有时退出2,无时退出0。在CI中,设置 NARAI_TOKEN (工具的标记) 并通过 --yes.

narai tools register --org "Your Org" --plan   # what would change
narai tools register
narai tools push
narai tools list --publisher you

narai tools tokens create, list 和 revoke 管理工具的CI令牌:什么 NARAI_TOKEN 适用于 CI。令牌仅在此环境中读取并上传此工具的版本。 create 打印一次令牌。

narai tools tokens create --label github-actions --days 90
narai tools tokens list
narai tools tokens revoke <id>

今天,工具是自托管的: surfaces.embed.url 是它自己的 https:// 地址。由Narai(亲戚)主持的捆绑包 embed.url,例如 index.html)需要更新的Narai。一个没有指定路线就到达纳莱的命令说 然后停止;这改变不了什么。

开发

npm ci
npm test
npm run lint
npm run typecheck

稳定

0.合约(清单、连接、注册中心的API)仍然可以在小版本之间更改 Changelog告诉你怎么做。1.0会hold住它。

释放

npm的可信发布:没有npm令牌,无论是在CI中还是在其他任何地方。工作流程如下 .github/workflows/release.yml.

每一个版本。 合并一个有问题的PR version 在包中。Json(并说明在 CHANGELOG.md): 释放。每次推送到main时,工作流都会询问npm该版本是否已发布。当它不是,它 工作流运行闸门,打包tarball及其 SHA256SUMS,标记提交。 v<version>, 发布 它在NPM上 超过OIDC (npm publish),并在GitHub上发布这两个文件。一个已经在npm上的版本:什么都不会发生。 没有人的步骤,没有标签可以推动,也没有什么需要批准。

包的首次发布,一次。 可信发布不能创建包,因此维护者发布 第一个版本(0.1.0)手工编写,只有一行,来自main的新克隆:

rm -rf /tmp/narai-cli && git clone -q --depth 1 https://github.com/Monster-Orange/mo-narai-cli.git /tmp/narai-cli && cd /tmp/narai-cli && npm ci && npm test && npm login --auth-type=web && npm publish --access public && npm logout

然后,在npmjs.com上,安装包›设置›可信发布者›GitHub Actions:组织 Monster-Orange, 存储库 mo-narai-cli、工作流 release.yml,允许直接发表;出版权限: 需要 双因素身份验证和禁用令牌. 在包存在之前,工作流的检查会发现它丢失了 停止并发出警告(没有运行失败)。

CLI依赖于 @michinarai/sdk 从npm,在一个确切的版本:工作流拒绝git,文件或URL 依赖。

思想:

  • 可信发布者字段是区分大小写的,npm在保存它们时不会检查它们。不匹配失败 只有在发布时间,作为一个 E404 看起来像是丢失了一个包裹。package.json的 repository.url 一定是这个 存储库。
  • 新的可信发布者配置必须在2天内发布,否则将过期。
  • NPM信任工作流的文件名, release.yml:重命名会破坏发布 E404),直到 受信任的发布者更改为匹配。
  • 来源是on的:npm在可信发布下为公共存储库和公共包生成它 国旗。package.json的 repository.url 是NPM检查它的依据。一次性第一 从维护人员的机器上发布则没有。

版本与发布记录

@michinarai/cli 共发布 7 个版本,首次发布于 2026/10/31;过去 12 个月发布了 7 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.2.3latest2026/11/021 天前
0.2.22026/11/021 天前
0.2.12026/11/011 天前
0.2.02026/11/012 天前
0.1.12026/10/312 天前
0.1.02026/10/312 天前

关于 @michinarai/cli 的常见问题

@michinarai/cli 是什么?

narai命令:脚手架,验证,构建,运行和注册narai课程工具。

如何安装 @michinarai/cli?

在项目目录运行 npm install @michinarai/cli,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 narai,可以用 npx narai 直接运行。

@michinarai/cli 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/michinarai__cli 是否存在。

@michinarai/cli 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@michinarai/cli 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@michinarai/cli 可以商用吗?

@michinarai/cli 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@michinarai/cli 还在维护吗?

最新版本 0.2.3 发布于 2026/11/02(1 天前);至今共发布 7 个版本,其中过去 12 个月发布了 7 个;首次发布于 2026/10/31。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。