# @cryptocadet/cli 中文文档

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

版本：0\.3\.0
npm 元数据更新时间：2026-10-31T20:59:23.209Z
中文译文更新时间：2026-10-31T21:38:32.203Z
软件包许可：UNLICENSED

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

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

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

- 包体积（解压后）：387 kB，158 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=22\.5\.0
- 运行依赖：3 个
- 首次发布：2026-07-08T10:19:31.410Z
- 最新版本发布：2026-10-31T20:59:22.919Z
- 已发布版本数：8（近 12 个月 8 个）

## 中文简介

CryptoCadet v4客户端包：代理热钱包签名者+本地策略引擎（Base/USDC）。

## 安装

```sh
npm install @cryptocadet/cli
```

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

## README

# @cryptocadet/cli -本地签名者+策略引擎（v4指令01）

CryptoCadet v4的买方支出组件。持有 **专用代理热 钱包** 对于有界浮点数，强制a **当地的政策** 随着 _唯一的_ 支出 控制（没有智能账户，没有链上警告执行者），并签署ERC-20付款 **基地**． 用户的 **主钱包密钥从未进入此包** 在任何代码路径中。

> 这是CLIENT包。的cryptocadet **服务器不持有密钥，并且永远不能 导入该模块。**

## 安装

```
macOS:      brew install thetechjd/cryptocadet-cli/cryptocadet
Linux:      curl -fsSL https://cryptocadet.app/install.sh | sh
Node (any): npm i -g @cryptocadet/cli

Then:       cryptocadet init
```

brew和curl工件是自包含的二进制文件（嵌入了Node 24）——没有节点， npm,或 `node_modules` 在用户的机器上。npm通道需要Node≥22.5（内置） `node:sqlite`）. Windows: 4.0版本使用npm通道。curl安装程序为 [install.sh](https://npmcn.com/package/%40cryptocadet/cli/install.sh) 在回购根(从 [https://cryptocadet.app/install.sh](https://cryptocadet.app/install.sh)）; 构建脚本，Homebrew 公式，以及发布清单 [包装/](https://npmcn.com/package/%40cryptocadet/cli/packaging/).

## 承载保证

每个签署决定都通过了 [`evaluate()`](https://npmcn.com/package/%40cryptocadet/cli/src/policy/evaluate.ts) ——纯粹的, 同步的, **fail-closed** （任何错误/缺少字段/不可解析的金额⇒DENY）。有 是 **一个** 签名呼叫站点为座席支付路径，并对其进行了门控 `gate.allow === true`：

-   大门+单播直播中 [`PaymentSigner.pay()`](https://npmcn.com/package/%40cryptocadet/cli/src/signer/signer.ts).
-   真正的密钥签名原语(`sendTransfer`)被固定在一个地方， [`liveBroadcaster`](https://npmcn.com/package/%40cryptocadet/cli/src/signer/live-broadcaster.ts)的生产尾 单门控路径。
-   [`test/single-gate.test.ts`](https://npmcn.com/package/%40cryptocadet/cli/test/single-gate.test.ts) 通过来源证明了这一点 检查-添加第二个支付签名路径，失败。

唯一的其他事务签名路径是 [`sweep`](https://npmcn.com/package/%40cryptocadet/cli/src/revoke/sweep.ts) - - - 仅限人类撤销，从未在特工运输上登记。

## 信任模型和爆炸半径

被分离的签名者将代理密钥从 **操作系统的钥匙链** (一个操作系统 授权)，并且只在会话的进程内存中保存明文-永远不会 在磁盘上。任何可以在进程运行时读取其内存的程序都可以获得代理 关键。 **这就是为什么浮动是有界的：爆炸半径是浮动，而不是主要的 钱包。** 从主钱包充值永远是人类的行为；没有什么会自动耗尽它。

## 锁的决定

-   **网络:** 仅限基地（8453主网/ 84532 Sepolia）。 **资产:** USDC默认，其他 根据本地允许列表的erc -20。 **从来没有原生代币支出。**
-   **转账收费令牌：在allowlist时间被拒绝** （`edit_allowlist` 拒绝 他们; `evaluate()` 拒绝他们作为担保)。解决方案 难度。
-   **订阅楼:** 可使用的= `balance − subscriptionReserve`． 按支付 可能永远不会越过保护区(`evaluate()` 步骤6)。
-   **`pay` 接受服务器发布的 `quoteId` 只有** -从来没有一个原始的收件人/金额。一个 有毒的“支付0xattack”指令没有引用，而且是伪造的引用 收件人允许列表失败。
-   **取消= `rotate` + `sweep`.** 扫描是 **balance-discovery-driven** (入站 传输日志扫描)，因此被遗忘的长尾令牌也会被清除；天然气是 排最后。

## 表面

客户端是一个二进制(`cryptocadet`、别名 `ccx`)同时担任两个角色-一个帐户可以 同时做买家和卖家。命令按两个轴分组：local-vs-remote状态和 agent-exposed-vs-human-only。

**面向agent的MCP（准确地说是四个动词） [`AGENT_TOOL_NAMES`](https://npmcn.com/package/%40cryptocadet/cli/src/mcp/agent-tools.ts)):** `check_balance`， `quote_payment`， `pay`， `dry_run`． 《连线》杂志在 [runtime.ts](https://npmcn.com/package/%40cryptocadet/cli/src/runtime.ts) 通过 `buildAgentTools` 只有; [测试/ command-surface.test.ts](https://npmcn.com/package/%40cryptocadet/cli/test/command-surface.test.ts) 证明两个曲面是不相交的。

**本地状态-仅限人工（密钥+策略，永远不会离开机器）：** `init`， `wallet:show`， `policy:show`， `policy:set` (帽/储备/升级), `allowlist:add`/ `allowlist:remove` （令牌+收件人）， `topup:request` （人工审批，无自动排水） `checkout` （支付由商户提供的签名报价-见下文）， `rotate` （`--and-sweep --to`)， `sweep --to <addr>`， `reserve:check`.

**`checkout --quote-json <json> | --quote-file <path> [--allowlist-recipient] [--approve|--yes]`** -人类一次性支付动词，用于商家结账流程（例如主机工具充值） 贷方余额)。商人开出了一份报价 _自己的_ 服务器账户，所以买方 不能通过id (`GET /v4/quotes/:id` account-scoped);相反，商人 举手示意 `SignedQuote` 这个动词通过 **相同的 `PaymentSigner.pay()`** 代理传输使用-根据 在单次广播之前，固定了pubkey并根据本地政策重新检查了每个字段， 所以报价的传输不需要被信任。 `--allowlist-recipient` 添加引号 首先支付给接收者allowlist（失败关闭策略不发送）； `--approve` 确认超出阈值（升级）的带外报价。下面是引用自 `--quote-json`， `--quote-file`，或管道stdin。

**远程状态服务器postgres通过认证API（卖方/买方，无关键风险）：** `login`/`logout`， `product:list|create|update|disable`， `payout:set`， `subs:list|create|cancel`， `history`.

**`mcp:serve [--detach|--stop|--status]`** —RDK分离模式：PID文件下 `~/.cryptocadet`，钥匙链解锁分离启动，清洁停止/状态。

## 两个秘密，两个钥匙链条目

这个 **代理钱包密钥** （`keychainRef`)及 **服务器证书** （`serverAuthRef`， API密钥或JWT)是不同的秘密，具有不同的爆炸半径和驻留位置 **单独的** OS-keychain条目。服务器凭证永远不会写入明文dotfile。 重/原生/可选深度(例如： `keytar`)安装 **首次使用时** 通过 [`requireDep`](https://npmcn.com/package/%40cryptocadet/cli/src/util/require-dep.ts)，而不是在包安装时。

## 磁盘布局— `~/.cryptocadet/`

`agent.key.enc` (AES-256-GCM， OS密钥链中的数据密钥 `policy.json` (独家 执行)。 `ledger.sqlite` （幂等+ pending-tx）· `config.json` (非机密的)。

## 构建/测试

```bash
pnpm install
pnpm typecheck     # tsc --noEmit, strict
pnpm test          # vitest — adversarial diagnostics 1–14
pnpm build         # emits dist/, bin: cryptocadet
```

要求节点≥22.5（内置） `node:sqlite`）. 没有本地模块；操作系统密钥链为 达到通过 `keytar` 如果存在，则平台CLI (`secret-tool`/`security`）。

## 常见问题

### @cryptocadet/cli 是什么？

CryptoCadet v4客户端包：代理热钱包签名者\+本地策略引擎（Base/USDC）。

### 如何安装 @cryptocadet/cli？

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

### @cryptocadet/cli 支持 TypeScript 吗？

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

### @cryptocadet/cli 支持 ESM 还是 CommonJS？

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

### @cryptocadet/cli 需要什么版本的 Node\.js？

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

### @cryptocadet/cli 可以商用吗？

@cryptocadet/cli 使用 UNLICENSED 许可。作者声明为 UNLICENSED，即不授予公开使用许可（与公共领域的 Unlicense 不同）。使用前需获得作者授权。以上为概括，不构成法律意见，请以许可原文为准。

### @cryptocadet/cli 还在维护吗？

最新版本 0\.3\.0 发布于 2026/11/01（2 天前）；至今共发布 8 个版本，其中过去 12 个月发布了 8 个；首次发布于 2026/07/08。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

