Run Claude Code in CI/CD Pipelines
Claude Code doesn't need a terminal — you can run it headlessly in CI/CD pipelines using the -p flag with --output-format stream-json.
claude -p "Review this diff for security issues" \
--output-format stream-json \
--max-turns 1 \
< <(git diff main...HEAD)
This runs Claude non-interactively and streams structured JSON output, making it easy to parse in CI scripts. Set the ANTHROPIC_API_KEY environment variable in your CI secrets and you're good to go.
A practical GitHub Actions example:
- name: AI Code Review
run: |
npm install -g @anthropic-ai/claude-code
git diff ${{ github.event.pull_request.base.sha }}...HEAD \
| claude -p "Review for bugs, security issues, and style problems. Be concise." \
--output-format stream-json
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
You can also use it for automated changelog generation, migration safety checks, or enforcing conventions that are hard to express as lint rules:
# Check migrations are reversible
claude -p "Check if all pending migrations have a working down() method" --max-turns 3
# Generate changelog from recent commits
git log --oneline v1.0..HEAD | claude -p "Write a user-facing changelog from these commits"
The key principle: anything you'd ask Claude interactively, you can automate in a pipeline.
Log in to leave a comment.
Set up Claude Code as an automated reviewer in your CI pipeline — on every pull request, it reads the diff, checks for bugs, security issues, missing tests, and convention violations, then posts its findings as a PR comment. Your human reviewers get a head start because the obvious issues are already flagged before they look.
Before deploying, tell Claude to read your project — migrations, environment variables, queue workers, scheduled tasks, caching, third-party integrations — and generate a deployment checklist that's specific to your app. Not a generic "did you run migrations?" list, but one that knows YOUR infrastructure and catches the things YOUR deploy can break.
Instead of writing a README from memory or copying a template, tell Claude to read your project and generate one that's actually accurate — real setup instructions from your config, real architecture from your directory structure, real API examples from your routes, and real prerequisites from your dependency files.