# @fatelabs/estelle 中文文档

规范地址：https://npmcn.com/package/%40fatelabs/estelle/

版本：0\.4\.6
npm 元数据更新时间：2026-10-29T10:03:05.294Z
中文译文更新时间：2026-11-14T13:38:45.755Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40fatelabs/estelle
原文对照：https://npmcn.com/package/%40fatelabs/estelle/?lang=original
项目主页：https://fatelabs.ca/docs
源码仓库：https://github.com/uqeu/estelle-cli

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

- 包体积（解压后）：44.6 kB，5 个文件
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：0 个
- 首次发布：2026-07-29T22:34:34.689Z
- 最新版本发布：2026-10-29T10:03:04.558Z
- 近 30 天下载量：2032（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：54（近 12 个月 54 个）

## 中文简介

您的 AI 编码代理下的信任层 。 Estelle在你的真密码库里安放每个模型 并拒绝运送不真实的东西: 存储器存储器, 决定性的起落口, 以及有根据的审查。 模型不可知论, BYOK.

## 安装

```sh
npm install @fatelabs/estelle
```

也可以使用：`pnpm add @fatelabs/estelle`、`yarn add @fatelabs/estelle`、`bun add @fatelabs/estelle`

## README

# 埃斯特尔

**您的 AI 编码代理下的信任层 .** Estelle把每个模型都放在你真正的密码库里 拒绝运送不真实的东西.

这不是另一个特工。 它运行在你已经使用的代理 给他们三件事 自己没有: 存储您的存储器, 一个决定门 解决每个符号 a 根据您的真实代码更改名称, 并有根据的审查。 模型不可知论者,自己拿钥匙来.

## 安装

```sh
curl --proto '=https' --tlsv1.2 -fsSL \
  https://github.com/uqeu/estelle-cli/releases/latest/download/install.sh | sh
```

这是整个安装。 它使当地人 `estelle` 二进制中 `~/.local/bin`。 。 。 .

此 npm 包是同一二进制的启动器, 对于已经基于 npm 的机器:

```sh
npm install -g @fatelabs/estelle
```

无论哪种方式,你得到一个二进制。 见 [安装是如何验证的](https://npmcn.com/package/%40fatelabs/estelle/#readme-how-the-install-is-verified) 为了什么 发射机检查之前 它把任何东西放在你的磁盘上.

**在npm 12上,安装脚本被屏蔽,这很好.** npm 12 拒绝包生命周期脚本 默认情况下,此软件包 `postinstall` 是获取本地二进制的,所以 `npm install` 指纹 `install scripts blocked` 并留下没有运行。 发射器处理它: 你第一次跑 `estelle`,它进行相同的校验和验证下载,然后运行二进制。 你会明白的 一个进步线,一次。 如果下载不能运行——离线,一个代理,一个403——发射器告诉你 为什么,并打印修理, 任何其中之一做的:

```sh
npm install -g @fatelabs/estelle --allow-scripts=@fatelabs/estelle
node "$(npm root -g)/@fatelabs/estelle/install.js"
curl --proto '=https' --tlsv1.2 -fsSL \
  https://github.com/uqeu/estelle-cli/releases/latest/download/install.sh | sh
```

设定 `ESTELLE_SKIP_DOWNLOAD=1` 如果你更希望发射装置永远不能到达网络,然后它就会消失 直接到那个消息。 当软件包目录无法被您写入时—— 通常的结果 `sudo npm install -g` 二进制土地在 `${XDG_CACHE_HOME:-~/.cache}/estelle/v<version>/` 相反, 哪个 `ESTELLE_CACHE_DIR` 超载.

## 两扇门,两扇门的区别

两扇门都到达同一主机服务器 `https://api.fatelabs.ca/mcp`。他们看不到相同的代码.

**门一:插件. 用这个.** 在克洛德代码中:

```
/plugin marketplace add uqeu/estelle-cli
/plugin install estelle@fatelabs
```

插件将钩和服务器条目一起传送. 钩子在每次编辑时而不是在何时 模型决定调用一个工具, 他们发送您的工作树 当你编辑它,所以 **未承付的工作 已索引**。插件没有证书:客户端在浏览器中谈判 OAuth 。 钩子 弹出 `npx`因此,18号节点或更新 必须在机器上.

**门2:远程MCP URL.** 对于无法运行 Claude 代码插件的主机 :

```sh
claude mcp add --transport http estelle https://api.fatelabs.ca/mcp
```

`estelle init` 为它找到的每个编辑器写一个相同的条目, 所以你不必每页粘贴一次 工具.

此门无钩. **它只看到了你所推动的, 所以它的图形从来没有比你最后的新鲜 推向GitHub. (英语).** 如果你问到你过去十分钟写的密码,请用一号门.

## 国家领导才能

**把一个问题放在你真正的仓库里.**

```sh
estelle sweep                 # index this repo into your memory
estelle ask "how does billing retry a failed charge?"
```

回答引用了它们从哪里得到的文件和行. 当艾斯黛儿无法回答时 它却说 发明一个.

**在合并前检查更改 .**

```sh
estelle verify src/http/headers.rs    # resolve every symbol against the repo's real symbol graph
estelle gate                          # run that check over a local diff
```

**每次编辑时运行,而不是当一个模型选择调用工具时运行.**

```sh
estelle install-hooks
```

在七起事件中写出十名处理者(`PreToolUse`, (中文(简体) ), `PostToolUse`, (中文(简体) ), `UserPromptSubmit`, (中文(简体) ), `SessionStart`, (中文(简体) ), `Stop`, (中文(简体) ), `PreCompact`, (中文(简体) ), `SessionEnd`),为克洛德法典和克洛德法典CLI. 这是一号门的装置, 非克洛德码的编辑可用.

每个钩子在设计上都无声不响:没有证书、没有网络、一个慢服务器或一个空内存 在热道上只产生错误. **这个 `UserPromptSubmit` 处理器仍然是 最慢的,它现在被限制.** 它曾经要求服务器进行全面搜索,只读回想 文本中,为它丢弃的未读代码分行支付费用——按133.4 s和8.4 s的同一回扣计算, 字节的字节。 它现在要求它读取的一字段, 在20秒,10秒下放弃 主机的30秒杀出, 因为被主机杀死 丢弃您的提示 和钩子的答案. **地板是服务器的,不是我们的**数字 : `POST /search` 6秒后有一层被观测到的地,所以迅速 如果预算到期, 转弯开始没有增加 上下文。 事情没告诉你.

**确切地说,是编辑钩子的作用.** 它为编辑提供依据,并将四个判决中的一个报告给你和 型号:通过、FLAGGED、装入或无法使用。 ABSINED用自己的话说,它不是一个 通过. **它不屏蔽编辑.** 发现是咨询, 而服务器不验证索引 新鲜度,跑者在文字中说它发出。 屏蔽检查是 `estelle gate`,哪个 返回合并判断符,您可以失败构建.

**而编辑钩只在今天检查Python.** 写入其它文件类型不会产生输出 所有,所以在路径 "没有检查"和"干净"看起来是一样的。 使用 `estelle gate` 如果需要的话,请在 diff 上 对另一种语言的判决,并阅读下文“衡量”下的语言范围.

**联系没有钩子运行时间的助手——其中24个.**

```sh
estelle install --list      # every host, and the exact path each one is reached at
estelle install --user      # install into every assistant this machine actually runs
estelle install --host cursor --project   # or name one, and write it into this repo
estelle uninstall           # take it back out of every host, both scopes, in one command
```

钩子是两种机制之一,不能互换. Claude 代码和代码运行 a 命令在工具调用前; Cursor, Copilot, Windsurf, Cline, Junie, Goose, Quen, Kiro, Devin,, 工厂机器人,Amp,开放码,Kimi码,Kilo,Trae,抗重力和任何荣誉 `AGENTS.md` 读取一个持续指令文件,而一个钩子没有到达它们.

**`--user` 这是最重要的一个.** 指令文件存在于寄存器内, 从而到达 在库房打开之前谁也不许 用户配置安装由主机自己装入 在你选择一个计划之前的每一场会议, 每一回合都不花费什么。 没有 `--host` 这个 仅安装到此机上存在自定义目录的助手中,从而到达 你用什么,别的东西 Claude Code和Goose还得到了一个 `SKILL.md` 他们的本能 目录.

`--project` 写入寄存器; 命名两者都不是。 这里的每一条路都读过 从东道主自己的文献中——无法建立路径的东道主是故意的 缺席而不是猜到,并命名于 `tui/src/host_table.rs`。 。 。 .

写作是添加剂和特异性: 你的文件保存着它所有的字节, Estelle的块进入 已划定的标记,原件被复制到 `.bak` 首先,无法解析的文件是 拒绝而不是覆盖。 运行它两次改变什么.

`uninstall` 把那个街区搬走,别管别的了 只持有 Estelle 字节的文件被删除 完全没有 `.bak` 里面没有你的东西 安装的目录 创造它。 ⚠️ 最后一个部分删除任何它无法删除的 EMPTY 所剩目录 区别于你所创造的空的; `remove_dir` 拒绝任何内容, 所以,你没有写的东西 永远处于危险.

**服侍其他的绳子.**

```sh
estelle mcp-server            # Estelle's tools over MCP, for any agent
estelle acp                   # Agent Client Protocol, over stdio
```

`estelle --help` 列出每个命令。 一些值得早点知道的:

|  |  |
| --- | --- |
| `estelle setup` | 配置, 简短, 扫描, 然后用您 repo 中的真实符号证明 Estelle |
| `estelle init` | 为您安装的每个编辑器编写 MCP 条目 |
| `estelle doctor` | 证书和运行时间准备状态,不打印秘密值报告 |
| `estelle recall` | 一起搜索您的记忆和代码 |
| `estelle research` | 监视 API 漂移的依赖性, 并在移动时提议修复 |
| `estelle monitor` | 生产卫生,终端 |
| `estelle github` | 链接 GitHub, 连接一个安装, 并扫描一个仓库 |

## 测量到什么

Estelle的地上闸门被抓住了 **38,153人发明的API**,与 **6 933个真实的假阳性 符号**超过45 086起标注的案件。 它不叫模特儿: 它分析变化,解决每个变化 符号与您存储器的索引符号图相对应,所以判决是文物的财产 而不是在运行之间移动的分数.

在同一气息中读取限制,因为这个部分决定数字是否适用于您:

-   **这个措施发明了Python的存储器API.** 一个案例是一个代码参考 命名一个寄存器 符号或导入您的代码库不定义.
-   **23种支持语言中的12种** 在一个小地方 Python是唯一一个满满的 保证存在、存在、类型和成员向任何接收者求助。 其他11种语言是: 导航而不是门卫:他们的参考文献被排除在费率之外,而不是算作通行证.
-   **这不是一项正确的主张.** 代码可以完全基于 仍然错误。 门告诉你 符号是存在的,而不是改变符合你的意思.
-   电子控制器不在公共存储器里 所以你不能从这里重新运行它 你可以检查什么 从这里是行为, 根据你自己的代码,与 `estelle verify` 财务报告和审定财务报表 `estelle gate`。 。 。 .

## 把钥匙拿来

Estelle 向任何您配置的模型的路径 . `estelle login --provider <name>` 识十四道: a Claude订阅、Anthropic、OpenAI、Google双子座、GitHub副驾驶、Azure OpenAI、AWS Bedrock、, OpenRouter, DeepSeek, Fireworks, MiniMax, LM Studio, Ollama, 以及任何 OpenAI 兼容的端点, 其中 覆盖在您自己的硬件上运行的模型。 你的钥匙 你的供应商 你的账单 Estelle拥有路线, 和记忆。 它不拥有你的模型.

提出各种解决办法,而不是合并。 默认写给沙盒并打开拉取请求 人类评论. 自动相接是选入的,默认关闭,在固定上门先被沙盒证明为绿色. 有一个 没有自动部署步骤.

## 所需资源

macOS或Linux在arm64上或x86 64上,或Windows 10 (1803)上或更新到x86 64上. 18号节点或更新的 npm 为插件的钩子安装路径.

Windows仅是x64:没有ARM64 Windows的构建,发射机是按名称而不是按 正在获取一个不存在的归档 。 窗口二进制是 `estelle.exe` 与静态连接 C运行时间,所以不需要可视C++再分配. 它的证书文件( E)`%USERPROFILE%\.estelle\auth.json`(中文(简体) ) 由您的用户配置文件的 ACL; POSIX 保护 `0600` 模式在Windows上不存在。 地方会议 服务器( e)`estelle serve` 编号 : `connect`)使用从10 (1803)起Windows支持的Unix-domain socket. Windows上的 CI 驱动器登录, 钩子运行时间( T)`hook stream` 包括),扫荡, `mcp-server` 财务报告和审定财务报表 `install-hooks` 通过真实的二进制; 交互式终端 UI 和会话服务器编译 视窗,但不能在那里使用. 有 Windows 存档的首次发布是 v. 4.2 之后的第一次剪接; 早期版本拒绝 赢32.

## 安装是如何验证的

`install.js` 工作——由 `postinstall` npm 10和11, 以及首次使用的发射器 当npm 12封锁了脚本。 这是相同的代码和相同的检查 两种路径:

-   仅从 HTTPS 下载 `github.com` 或者说 `release-assets.githubusercontent.com` 还有别的地方. 离开这些主机的重定向会中止安装.
-   将每次下载限制在摄取前:64 KiB为出货单,512 MiB为存档,5个重定向, 30秒闲暇超时,每请求5分钟一站,因为单独闲闲超时 不绑定一次拖动一个字节的服务器.
-   需要释放 `SHA256SUMS` 显示您的档案名称一次, 并有一个很好的形状 64-hex 文摘 (中文(简体) ).
-   把档案的SHA-256 和那份文摘相比较 并且没有安装任何不匹配的东西.
-   要求归档包含一个名为 `estelle`,并拒绝任何载有 出乎意料的成员.
-   拒绝一个不是正则文件的二进制,或者该二进制是同义链接.
-   级成为临时目录,并将已核实的二进制移到原子位置.

外壳安装器进行相同的校验和单人检查. 二者均在CI测试:a 损坏的档案和携带额外成员的档案都必须拒绝.

每个版本都是由 GitHub Actions 所建,它发布一个签名的 SLSA 建置出处证明 每个文物。 不检查安装者 证明你, 所以你自己核实 如果你想 更强有力的保证:

```sh
gh attestation verify estelle-<target>.tar.gz --repo uqeu/estelle-cli
```

此包以 npm出处发布. 二进制本身没有代号或公证.

* * *

[经济、社会和文化权利](https://www.fatelabs.ca/) • 妇女 [文档](https://www.fatelabs.ca/docs) • 妇女 [安装指南](https://www.fatelabs.ca/docs/install) • Apache-2.0

## 常见问题

### @fatelabs/estelle 是什么？

您的 AI 编码代理下的信任层 。 Estelle在你的真密码库里安放每个模型 并拒绝运送不真实的东西: 存储器存储器, 决定性的起落口, 以及有根据的审查。 模型不可知论, BYOK\.

### 如何安装 @fatelabs/estelle？

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

### @fatelabs/estelle 支持 TypeScript 吗？

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

### @fatelabs/estelle 需要什么版本的 Node\.js？

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

### @fatelabs/estelle 可以商用吗？

@fatelabs/estelle 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @fatelabs/estelle 的下载量有多少？

根据 npm 官方下载统计，@fatelabs/estelle 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,032 次，日均约 68 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @fatelabs/estelle 还在维护吗？

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

