概述
除了交互式 TUI 界面,Tron 也支持非交互式命令行模式,非常适合在脚本、自动化流程和 CI/CD 管道中使用。
使用场景
命令行模式适合批量处理、自动化任务、代码审查流程和 GitHub Actions 等 CI/CD 集成场景。
基本用法
使用 -p 或 --prompt 参数直接传入问题,Tron 会输出结果后退出:
tron -p "解释一下这个项目的架构"
这是一个 TypeScript + React 的前端项目...
# 指定工作目录
tron --cwd /path/to/project -p "有哪些 TODO 注释?"
# 使用特定模型
tron -m gpt-4o -p "帮我写一个 README"
命令行参数
Tron 支持以下命令行参数:
| 参数 | 简写 | 说明 |
|---|---|---|
--prompt |
-p |
直接传入提示词,进入非交互模式 |
--model |
-m |
指定使用的模型(如 claude-opus-4-6, gpt-4o) |
--no-interactive |
— | 强制非交互模式,禁止 TUI 启动 |
--output |
— | 输出格式:text(默认)、json、markdown |
--cwd |
— | 指定工作目录(默认为当前目录) |
--version |
-v |
显示当前版本号 |
--help |
-h |
显示帮助信息 |
管道输入
Tron 支持通过管道接收标准输入(stdin),非常适合与其他命令行工具配合使用:
# 解释代码文件
cat src/utils/parser.ts | tron -p "解释这段代码的作用"
# 生成 commit message
git diff | tron -p "根据这些变更生成一条 commit message"
# 分析错误日志
npm test 2>&1 | tron -p "分析测试失败原因并给出修复建议"
脚本集成
将 Tron 集成到 Shell 脚本中,实现批量自动化处理:
bash
#!/bin/bash
# 批量为所有 TypeScript 文件生成 JSDoc 注释
FILES=$(find src -name "*.ts" -not -name "*.d.ts")
for FILE in $FILES; do
echo "正在处理: $FILE"
cat "$FILE" | tron -p "为这个文件中缺少注释的函数添加 JSDoc 注释,直接输出修改后的完整文件内容" \
--output text > "${FILE}.tmp"
if [ $? -eq 0 ]; then
mv "${FILE}.tmp" "$FILE"
echo "✓ $FILE 处理完成"
else
rm -f "${FILE}.tmp"
echo "✗ $FILE 处理失败"
fi
done
echo "批量处理完成"
CI/CD 集成
在 GitHub Actions 中集成 Tron,实现自动 Code Review:
yaml
name: AI Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
code-review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 安装 Tron CLI
run: |
curl -fsSL https://upgrade.lianwo123.com/troncode/cli/install | bash
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: 执行 AI Code Review
env:
TRON_API_KEY: ${{ secrets.TRON_API_KEY }}
run: |
git diff origin/${{ github.base_ref }}...HEAD > changes.diff
cat changes.diff | tron --no-interactive \
-p "作为代码审查者,请审查这些代码变更。指出潜在的 Bug、安全问题、性能问题和代码风格问题。" \
--output markdown > review.md
cat review.md
- name: 发布 Review 评论
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const review = fs.readFileSync('review.md', 'utf8');
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: `## AI Code Review\n\n${review}`
});