OpenClaw v2026.3.31起支持Prettier与Black双引擎自动格式化,需通过opencode.json启用、验证工具版本、配置路径及忽略规则,并在保存时按扩展名自动触发。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用OpenClaw进行代码开发时发现生成或编辑的代码风格不统一,可能是由于未启用或未正确配置格式化工具。以下是为OpenClaw集成Black和Prettier以实现跨语言自动格式化的具体操作步骤:
一、确认OpenClaw版本与格式化支持能力
OpenClaw v2026.3.31起正式支持基于项目配置的多语言格式化规则注入,其格式化引擎可识别并调用本地已安装的Prettier(用于JavaScript/TypeScript/CSS等)及Black(用于Python)二进制命令。该功能依赖于opencode.json中codeStyle字段的显式声明,并需确保对应工具已在系统PATH中可用。
1、打开终端,执行openclaw --version确认当前运行版本不低于v2026.3.31。
2、运行prettier --version与black --version,验证两个工具是否已全局安装且版本兼容(Prettier ≥ 3.0,Black ≥ 24.0)。
3、若任一命令报错,需按对应工具官方方式补装:对Prettier执行npm install -g prettier;对Black执行pip install black。
二、配置opencode.json启用双格式化引擎
OpenClaw通过opencode.json中的codeStyle节控制格式化行为,必须同时启用Prettier与Black,并为不同语言指定匹配规则,否则仅默认语言生效。
1、在项目根目录创建或编辑opencode.json文件。
2、写入以下结构化配置,确保prettier与black均设为true:
{"$schema":"https://opencode.ai/config.json","codeStyle":{"prettier":true,"black":true,"rules":{"javascript":{"printWidth":80,"semi":true,"singleQuote":true},"python":{"lineLength":88,"skipStringNormalization":true}}}}
3、保存文件后,在同一目录下启动OpenClaw服务:openclaw serve,系统将自动加载新配置。
三、设置语言专属格式化路径与参数
当Prettier或Black未安装在标准PATH位置,或需指定项目级局部版本时,必须显式声明可执行文件路径与参数,否则OpenClaw将跳过对应语言的格式化流程。
1、查找本地Prettier CLI实际路径:执行which prettier(Linux/macOS)或where prettier(Windows),记录返回值(如/usr/local/bin/prettier)。
2、查找Black CLI路径:执行which black或where black,记录结果(如~/.local/bin/black)。
3、在opencode.json的codeStyle节内追加binaries对象:
监控一个或多个 GitCode 仓库的 PR,通过 OpenClaw Gateway 自动执行 AI 审查,发布 PR 评论,并发送钉钉和企业微信通知。
"binaries": {"prettier":"/usr/local/bin/prettier","black":"~/.local/bin/black"}
4、重启OpenClaw服务使路径变更生效。
四、定义项目级格式化忽略规则
为避免第三方代码或构建产物被误格式化,需通过.prettierignore与pyproject.toml分别声明Prettier与Black的排除路径,OpenClaw在格式化前会主动读取这两个文件。
1、在项目根目录创建.prettierignore,逐行填写需跳过的路径模式:
node_modules/
dist/
build/
**/*.min.js
**/*.bundle.js
2、在项目根目录创建pyproject.toml,添加Black专属忽略段:
[tool.black]
exclude = '''
/(__pycache__|venv|env)/
^/migrations/
'''
line-length = 88
3、确保两个文件均未被.gitignore覆盖,以便OpenClaw运行时可访问。
五、验证格式化行为是否触发
OpenClaw在完成AI生成代码或用户手动保存文件后,会依据文件扩展名自动调用对应格式化器。验证过程需观察实时输出日志,确认无“formatter not found”或“skipped due to ignore rule”类警告。
1、在项目中新建test.py,输入未缩进的Python代码:def hello():print("hi")。
2、保存文件,观察终端日志是否出现[FORMAT] black applied to test.py字样。
3、新建test.js,输入function foo(){return 'bar';},保存后检查是否输出[FORMAT] prettier applied to test.js。
4、若任一文件未触发格式化,检查对应扩展名是否在opencode.json中被languages节显式禁用。

















