TronCode Tron CLI 命令行模式

概述

除了交互式 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}`
            });