Overview
Andi AIRun scripts are perfect for CI/CD workflows: automated testing, code review, documentation generation, and more. This guide covers how to run scripts reliably in automation environments.Running Scripts in CI/CD
Basic CI Script
--apikey— Use API key authentication (setANTHROPIC_API_KEYenvironment variable)--haiku— Fast, cost-effective model for routine tasks--skip— No permission prompts (required for unattended execution)
GitHub Actions Example
.github/workflows/ai-review.yml
GitLab CI Example
.gitlab-ci.yml
Permission Flags for Automation
The --skip Shortcut
For quick automation, use --skip (shorthand for --dangerously-skip-permissions):
The --bypass Alternative
Use --bypass (shorthand for --permission-mode bypassPermissions) when you need composability with other permission settings:
Granular Tool Access
For better security, restrict to specific tools with--allowedTools:
Permission Flag Precedence
ai resolves permission shortcuts before passing flags to Claude Code. When conflicts are detected, explicit flags take precedence:
--permission-mode <value>and--dangerously-skip-permissionsare explicit — they always win--skipand--bypassare shortcuts — ignored with a warning if an explicit flag is also present- CLI flags override shebang flags — if you run
ai --permission-mode plan script.mdand the script has--skipin its shebang, plan mode is used
| You use | What happens |
|---|---|
ai --skip | Same as --dangerously-skip-permissions (nuclear — overrides all permission modes) |
ai --bypass | Same as --permission-mode bypassPermissions (mode-based — composable) |
ai --skip --permission-mode plan | Plan mode used, --skip ignored (warning shown) |
ai --bypass --permission-mode plan | Plan mode used, --bypass ignored (warning shown) |
ai --permission-mode plan script.md (script has --skip) | Plan mode used, shebang --skip ignored |
Exit Codes and Error Handling
Exit Codes
Andi AIRun returns standard Unix exit codes:0— Success1— General error (AI task failed, tool error, etc.)2— Invalid arguments or configuration
Handling Failures in Scripts
Use standard shell error handling:Conditional Execution
Retry Logic
Real-World Examples
Example 1: Automated Test Runner
run-tests.md
Example 2: Documentation Generator
generate-docs.md
Example 3: Security Audit
security-audit.md
Example 4: PR Description Generator
pr-description.md
Flag Precedence
ai resolves flags from multiple sources. Higher sources override lower ones:
| Priority | Source | Example |
|----------|--------|---------||
| 1 (highest) | CLI flags | ai --aws --opus script.md |
| 2 | Shebang flags | #!/usr/bin/env -S ai --ollama --low |
| 3 | Saved defaults | ai --aws --opus --set-default |
| 4 (lowest) | Auto-detection | Current Claude subscription |
Example: A script has #!/usr/bin/env -S ai --ollama --low. Running ai script.md uses Ollama (shebang). Running ai --aws script.md uses AWS (CLI overrides shebang).
Passing Claude Code Flags
Any flag not recognized byai is passed directly to Claude Code. Useful flags for automation:
| Flag | Purpose | Example |
|------|---------|---------||
| --skip | Shortcut for --dangerously-skip-permissions | Quick automation |
| --bypass | Shortcut for --permission-mode bypassPermissions | Quick automation |
| --max-turns N | Limit agentic loop iterations | Prevent runaway scripts |
| --output-format stream-json | Structured JSON output | Pipeline integration |
| --live | Stream text in real-time | Long-running scripts |
Combine with ai flags freely: