@descryy/ cli (英语)
这个 descry 命令行工具。 它为Descry建立了一个寄存器,检查安装是否有效,在没有代理的情况下运行Descry的支票.
Descry将寄存器的源头读入一个图表,并告诉一个编码代理一个应用程序运行时所达到的改变,测试的是什么和中断的是什么,以及它无法检查的清晰清单. 该图由 @descryy/mcp;此软件包是它的设置和命令行侧. 一切都运行在你的机器上.
所需资源
- 节点.js 22.5或更新.
- 一个有至少一个承诺的 Git 仓库 .
- 用于沙盒的 Linux 运行服务器报价(
observe, (中文(简体) ),generate_test) (中文(简体) ). Descry自己的测试在Linux上运行;macOS和Windows还没有被验证.
快速启动
-
在存储库中:
npx -y @descryy/cli init写着
.descry/config.json带有明确的寄存器身份和识别寄存器的语言适配器,记录此机已确认这些适配器,并打印下一步要做什么. 其输出的最后一行是精确的注册命令,此安装的服务器版本被填入. -
向您的代理注册服务器 。 克劳德代码:
claude mcp add descry --scope local -- npx -y @descryy/mcp@<version> "$(pwd)"任何其他MCP客户端都采取与stdio命令相同的做法:
npx与论据-y, (中文(简体) ),@descryy/mcp@<version>和寄存器的绝对路径.<version>是那个init打印: 此 CLI 的服务器版本已发布 . -
在经纪人,呼叫
workspace带有动词的工具analyze用来构建图表.
提交 .descry/config.json 财务报告和审定财务报表 .descry/.gitignore数据库和其他所有信息 .descry/ 留在这台机器上,被git忽略.
若为 init 找不到寄存器的适配器, 它说是这样的, 并打印一个的安装命令(npm install @descryy/adapter-<name>; 运行 init 之后再说 如果寄存器的配置已经列出此机尚未确认的适配器, init 列出他们,请您在终点站确认(--yes 未经询问即予以确认)。 没有终点站也没有 --yes 它证实了什么和指纹 descry trust从经纪人, workspace 动词 trust_sources 列出将装入并询问一次的准确内容.
图标
descry init [--workspace <name>] [--repo <name>] [--yes] [--json] [repository-path]
descry trust [--yes] [repository-path]
descry setup [--workspace <name>] [--repo <name>] [--yes] [--hook <agent>] [repository-path]
descry doctor [--json] [--fix] [repository-path]
descry check [--base <ref>] [--require-ready] [--json] [--scenarios] [repository-path]
descry qa gaps [--json] [--limit <number>] [--fail-on P0|P1|P2|none] [repository-path]
descry qa analyze [--json] [--limit <number>] [--fail-on P0|P1|P2|none] [repository-path]
descry qa validate-tests (--test <id>... | --file <path>) [--timeout-ms <number>] [--yes] [--json] [repository-path]
descry browse explore|autopilot|layout|prove-reach --url <address> [--safety <level>] [--yes] [--json] [repository-path]
descry analyze [--no-history] [--max-commits <number>] [--json] [repository-path]
descry approve browser --origin <address>... [--write] [--ttl <8h>] [repository-path]
descry approve tests --command <command> [--ttl <8h>] [repository-path]
descry approve sandbox | store [--ttl <8h>] [repository-path]
descry approve --list | --revoke <id> | --revoke --all
descry approvals list [--json]
descry approvals approve <id> | deny <id>
descry observe tests [--command <command>] [--cwd <folder>] [--no-coverage] [--yes] [--json] [repository-path]
descry scenario record <name> --url <address> [--yes] [--json] [repository-path]
descry feedback [--json] [--hook <agent>] [--refresh] [repository-path]
descry slop [--scope change|repo] [--base <ref>] [--paths <path>...] [--detectors fast|all|S1,S4] [--include introduced|all] [--limit <number>] [--detail minimal|standard] [--format json|text] [--refresh] [--fail-on-findings] [repository-path]
descry slop suppressions [--format json|text] [--limit <number>] [repository-path]
descry slop --hook <agent> [repository-path]
descry hook install|uninstall|restore|test --agent <agent> [repository-path]
descry viz [--port <number>] [repository-path]
descry credential set <name>
init写入寄存器的身份、适配器、.descry/.gitignore,而对于一个没有软件包声明的单曲,则在向您展示准确的diff后,再发布软件包声明.--workspace设置一个工作空间id,用于共享存储器;将其留给一个单独的存储器.--json将一个 JSON 对象与结果和下一步一起打印, 并且永远不要提示, 因此, 软件包声明只有在您也通过时才会被写入--yes。 。 。 .trust列出此寄存器的配置名称, 此机器尚未确认, 在终端询问您, 并记录每个寄存器和每个寄存器的确认 .--yes将问题跳过脚本;没有终端和没有--yes它证实了什么 并打印命令。 这是快速的替代DESCRY_TRUST_CONFIGURED_SOURCES=1,它信任服务器打开的每个寄存器.setup执行存储器在一步或一无所求:init,构建图表,为浏览器工具安装Chrimium,然后对每个工具进行自试. 一个失败的步子 使整个跑回.doctor检查Descry能在这里运行。 它查看了节点版本及其内置的SQLite,安装了一个引擎复制件,这个CLI和旁边的服务器是一起发布的版本,npx的缓存一个半提取的软件包,常备的审批和等待你的审批,在一个寄存器中,它的git状态(一个寄存器,有承诺),配置,适配器,这台机器是否已经确认它们,图形和.gitignore每一个发现名称 它的固定。 退出代码0全部通过,2只是警告,1是失败.--fix仅从 npx 的缓存中删除已断开的 Descry 项, 并列出它们 .check运行更改镜、合同、验证和对您更改的文件的交叉PR检查,当发现缺陷时退出。 它的本意是钩子或者CI步骤. 0出口是干净的,1是屏蔽发现,2是检查无法运行. 过--require-ready在CI中,缺失的图表是失败而不是沉默的通关.qa gaps财务报告和审定财务报表qa analyze报告存储器的测试所证明的内容以及缺少该证据的地方,每个部分都标有完整、部分、不运行或失败的标签.browse, (中文(简体) ),observe tests, (中文(简体) ),qa validate-tests财务报告和审定财务报表scenario record是服务器仅在确认后提供的动词,用于CI和脚本。 每个字都印出服务器会同意的文本,在终端向您询问,并且只运行在“是”;没有终端,除非您通过,否则拒绝--yes,用于输入它的人(一个添加它运行命令的代理商,不管其主机给予它什么 shell 许可, 和trust --yes) (中文(简体) ).browse打开浏览器会话,运行一个动词(explore, (中文(简体) ),autopilot, (中文(简体) ),layout或者说prove-reach并结束会议;explore财务报告和审定财务报表autopilot点击和键入,所以需要--safety write。 。 。 .observe tests在运行前显示精确的命令行.scenario record打开可见浏览器,记录您在其中的所为,直到按 Enter,并保存为descry/scenarios/<name>.scenario.json; 您输入的密码从不存储, 步骤保留一个${credential:NAME}引用和名称都打印出来,这样您就可以用credential set。 。 。 .analyze构建寄存器的代码图, 同样的构建workspace工具的analyze动词运行,所以check, (中文(简体) ),qa财务报告和审定财务报表observe tests可以在它之前没有MCP客户端. 它只装入此机确认的适配器;用未经证实的能建出它所能建的(git history),直言不讳地说没有读出源,2号出口.--no-history跳过历史和--max-commits盖住它.approve是一个客户不能给你一个批准提示的代理人 它显示什么是批准,需要一个终端,你是否输入它;它没有--yes。补助金是以下文件:~/.descry/grants绑在这个仓库里 对你来说是私人的 它会过期的.approve browser --origin允许只读关于您命名的确切起源的会话( 默认为8小时, 最多7天);--write它允许写级会话,只在回回地址上(localhost, 127.0.0.1, [:1]).approve tests --command允许输入准确的测试命令,通过observe tests。 。 。 .approve sandbox允许qa validate_tests财务报告和审定财务报表generate_test verify在此寄存器中, 该寄存器会运行于一个被网络拒绝的沙盒中 .approve store允许写入 Descry 自己的商店( 事件、 答案、 牵引请求范围、 解除共享图链接 )。 除了只读浏览之外,所有东西最多都持续了24小时. 他们没有覆盖已保存的登录或信头 .--list显示赠款和--revoke移除一个或全部。 存储器中的文件不能创建或拓宽 .approvals一次处理一个电话。 门牌动词的首个调用会排队批准~/.descry/approvals(15分钟,最多50分钟,绝不是辩论本身);approvals list说明究竟在等待什么,approvals approve <id>您是否输入 id 并让代理的下一次呼叫运行一次approvals deny <id>拒绝。 它在任何客户端和无头运行中都起作用。 没有--yes。 。 。 .- 这里的每个提示都从控制终端读取,丢弃任何在提示出现前被粘贴的东西,只取您在提示后输入的东西,因此粘贴数个指令一次无法回答更早的问题. 独自运行每个命令 等待它的快。 没有终点站也没有
--yes命令拒绝. feedback列出引入的未承诺的更改中存在的少数合同和配置缺陷.hook在克勞德代碼(Claude Code, Codex),副驾驶,双子座或克爾斯(Cursor)中将它变成一尾钩并可以再去掉.slop在更改中查找低质量代码,或,随--scope repo, 整个寄存器: 引用不存在的东西, 根和占位符, 吞入错误, 添加无用, 和测试 坚持什么。 它报告代码的属性,从来没有谁或什么写它,并且编辑什么. 它需要一个构建的代码图。 输出是用于读取的文本或--format json; 一次部分运行在它的最后一行都这么说,并且从未被报道为干净. 退出 0 是完成运行, 1 是--fail-on-findings满足于一个得到有力支持的快速级发现所引入的更改,2是一个糟糕的论据,3是德斯克里拒绝运行(没有图,不是git寄存器),4是一个出乎意料的失败.slop suppressions列出每个内行descry-slop-ignore标出它的理由.slop --hook <agent>答案作为倒转的钩子:最多有五个一行的发现,当变化是干净的或任何东西出错时则一无所有;用手将其添加到代理的设置中.viz在一个已经建好的图表上为当地检查员服务.credential set读取一个从 stdin 到浏览器方案所使用的本地证书存储处的秘密 .
解决问题
运行 npx -y @descryy/cli doctor 在仓库。 新寄存器库最满足的信息 :
- "没有.descry/config.json"或"没有来源":运行
npx -y @descryy/cli init。 。 。 . - "本机未确认":见"分析说没有读出源"下.
- "不是git仓库"或"还没有承诺":运行
git init并做出第一个承诺. - "descry-mcp:没有找到"或
ENOTEMPTY从 npx: 运行doctor --fix。 。 。 .
分析说没有源代码读取/ 适配器未确认
那么图中只有Git历史,没有代码. 按这个顺序处理:
- 运行
npx -y @descryy/cli init --yes在寄存器中,记录了这台机器对它所写的适配器的确认. 或运行descry trust(见命令). - 如果配置已经列出适配器,请打电话
workspace动词trust_sources并批准它提出的要求 告诉当事人期望这个即时;如果客户端不能显示一个,步骤一就是方法. - 打电话
workspace动词analyze再来一次.
未设置 DESCRY_TRUST_CONFIGURED_SOURCES=1 在一个全球MCP服务器条目中。 它使服务器信任它所打开的每个寄存器的适配器列表,一个寄存器可以通过编辑一个已承诺的文件来更改该列表. 设定它只用于一个单一的,可信任的寄存器,在寄存器自己的服务器条目中.
自动模式中的 Claude 代码
Claude Code在Descry看到之前决定每个工具调用,通过许可规则,询问规则,或者在自动模式下,一个分类器. 规则被命名 mcp__<server-name>__<tool>时 <server-name> 你给的名字 claude mcp add。可自由允许阅读工具:
{
"permissions": {
"allow": [
"mcp__descry__code_context",
"mcp__descry__git_context",
"mcp__descry__disclosure",
"mcp__descry__check",
"mcp__descry__reach",
"mcp__descry__similar_incidents",
"mcp__descry__draw_conclusion"
]
}
}
内 .claude/settings.local.json。运行代码、驱动浏览器或写作的工具也可以按规则允许:它们的首通电话不会改变任何东西,一个人在许可提示中批准准确的句子: descry_confirm,允许规则不能跳过。 如果无法使用该工具(不是 Claude 代码或无头运行),则使用 descry approvals, (中文(简体) ), descry approve 或上述命令线双胞胎。 不要通过剧本或钩子 来赎回任何戴斯克里要求的东西.
已知限制
- Playwright 和其他端到端测试仅通过已执行覆盖连接到代码(
observe动词tests) (中文(简体) ). 测试的静态链接page.goto仅限于精确的文字路径,所以在覆盖运行之前,这样的套房节目是注册的,但没有覆盖任何东西. - 变化镜解答的可靠性类是被接入的边缘上的最低值. 一个宽的diff可以成为C级,因为有少数R0边缘.
- 只有前端寄存器的图中没有 API 路由,所以
check动词contracts在后端寄存器链接到workspace动词link。 。 。 .
隐私
这里没有Descry服务 此工具所撰写的文件在仓库中 .descry/ 文件夹,加上确认和储存的证书 ~/.descry/ 在这个机器上.
许可证
麻省理工学院