# @michinarai/cli 中文文档

规范地址：https://npmcn.com/package/%40michinarai/cli/

版本：0\.2\.3
npm 元数据更新时间：2026-11-01T19:29:01.104Z
中文译文更新时间：2026-11-01T21:25:48.258Z
软件包许可：Apache-2\.0

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40michinarai/cli
原文对照：https://npmcn.com/package/%40michinarai/cli/?lang=original
项目主页：https://github.com/Monster-Orange/mo-narai-cli#readme
源码仓库：https://github.com/Monster-Orange/mo-narai-cli

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：224 kB，102 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=20
- 运行依赖：5 个
- 首次发布：2026-10-31T15:00:28.078Z
- 最新版本发布：2026-11-01T19:29:00.735Z
- 已发布版本数：7（近 12 个月 7 个）

## 中文简介

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

## 安装

```sh
npm install @michinarai/cli
```

也可以使用：`pnpm add @michinarai/cli`、`yarn add @michinarai/cli`、`bun add @michinarai/cli`

## README

# @michinarai / cli

`narai`命令行，用于构建Narai课程内部运行的工具，对公众开放 [`@michinarai/sdk`](https://github.com/Monster-Orange/mo-narai-sdk).

对Narai工具不熟悉？这门课 [为Narai做一个工具](https://beta.michinar.ai/go/course/narai-tools) 教 一步一个脚印，然后 [mo-narai-labs](https://github.com/Monster-Orange/mo-narai-labs) 有Narai自己的工具吗 阅读。

## 安装

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

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

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

```sh
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](https://beta.michinar.ai/).
2.  询问开发者测试版 [beta.michinar.ai /开发人员](https://beta.michinar.ai/developers)随你怎么说 构建。
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](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` 也是编码特工的技能。

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

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

```sh
narai validate --json
```

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

```sh
node scripts/build.mjs && narai build
```

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

```sh
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`** 撤销它。

```sh
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`.

```sh
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` 打印一次令牌。

```sh
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。一个没有指定路线就到达纳莱的命令说 然后停止；这改变不了什么。

## 开发

```sh
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的新克隆：

```sh
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 是什么？

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 和提交记录判断。

