Cantol
  
Canton应用程序开发CLI——项目脚手架、DAML编译、测试、本地沙箱管理和用于AI辅助开发的MCP服务器。
为什么选择Cantol
- 核心命令的单一二进制、零运行时依赖关系。 下载一个文件,
chmod +x,跑。核心CLI(脚手架、MCP服务器、环境、插件)不需要JVM、Node.js或容器运行时。 - 交叉汇编。
GOOS=linux GOARCH=amd64 go build从macOS生成Linux二进制文件。CI构建适用于所有平台。 - 静态链接。 没有共享库冲突,没有版本不匹配,没有容器映像膨胀。将二进制文件复制到气隙环境中,它就可以工作了。
- 插件系统。 可通过JSON-RPC插件进行扩展。核心命令在任何外部插件发布之前证明插件契约。
安装
# Homebrew (macOS)
brew install displacetech/tap/cantool
# Binary download (preferred for institutions)
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m); [ "$ARCH" = "x86_64" ] && ARCH="amd64"
curl -sSL "https://github.com/DisplaceTech/Cantool/releases/latest/download/cantool_${OS}_${ARCH}.tar.gz" \
| tar xz cantool
sudo mv cantool /usr/local/bin/
# Go install (for Go developers)
go install github.com/displacetech/cantool@latest快速开始
# Create a new project
cantool init my-app --template basic
cd my-app
# Check environment status
cantool status
# Manage environments
cantool env add local --host localhost --ledger-port 5011
cantool env use local
# See installed plugins
cantool plugin list也得到 build, test, dev, clean,以及 doctor 命令,启用便利插件(请参阅 插件).
命令
核心命令
| 命令 | 描述 |
|---|---|
cantool init [name] | 从模板创建新的Canton项目(basic 或 token) |
cantool env {add,use,list,remove} | 管理命名环境配置文件 |
cantool status | 显示Canton节点运行状况、版本和连接方 |
cantool mcp serve | 启动MCP服务器进行AI助手集成(stdio) |
cantool plugin list | 列出已安装的插件 |
可选便利命令(插件)
这些命令由内置的 convenience 插件,必须在中启用 cantool.yaml (参见 插件).他们将任务委托给dpm/daml,并将归因行打印到stderr(例如。, -> delegating to dpm build).
| 命令 | 描述 |
|---|---|
cantool build [--watch] | 编译DAML源代码。 --watch 根据文件更改进行重建 |
cantool test [--verbose] | 使用结构化输出运行DAML脚本测试 |
cantool dev [--port P] | 通过热重新加载和参与方配置启动本地沙盒 |
cantool clean [--all] | 删除构建工件 |
cantool doctor | 检查先决条件(Java、SDK、Docker、端口、Go) |
全球旗帜
| 标志 | 描述 |
|---|---|
--format | 输出格式: human (默认), json, quiet |
--version | 打印版本 |
配置
Cantol支持两个级别的配置:
- 全局配置 --按顺序检查:
$XDG_CONFIG_HOME/cantool/config.yaml(默认值~/.config/cantool/),~/Library/Application Support/cantool/config.yaml(仅限macOS),~/.cantool/config.yaml(回退)。适用于所有项目。可用于在所有项目中一次性启用插件。 - 项目配置 —
cantool.yaml在项目根中。项目设置会覆盖全局设置。
全局配置
创建全局配置以设置所有项目的默认值:
# Linux
mkdir -p ~/.config/cantool
cat > ~/.config/cantool/config.yaml ~/Library/Application\ Support/cantool/config.yaml ~/.config/cantool/config.yaml ~/Library/Application\ Support/cantool/config.yaml delegating to dpm build`).
使用 `cantool plugin list` 查看已安装的插件。
### 外部插件
外部插件是独立的二进制文件,通过stdin/stdout上的JSON-RPC 2.0进行通信。插件可以在以下位置找到 `~/.cantool/plugins/` 并且必须做出回应 `--metadata` 使用JSON有效载荷:
{ "name": "my-plugin", "version": "1.0.0", "description": "My custom plugin", "author": "Your Name", "min_host_version": "0.1.0" }
看 `internal/plugin/interface.go` 获取完整的插件接口定义。
## 错误代码
Cantol按子系统使用结构化错误代码:
|范围|子系统|
|-------|-----------|
|CT1xxx|配置|
|CT2xxx |软件开发工具包/工具|
|CT3xxx |沙盒/运行时|
|CT4xxx |构建|
|CT5xxx |测试|
|CT6xxx|分类帐API|
|CT7xxx | MCP服务器|
|CT8xxx |插件系统|
|CT9xxx |环境管理|
每个错误都包含一个人类可读的建议,说明如何修复它。
## 许可证
[Apache 2.0](LICENSE)