Overview
This demo covers VibeCody’s CI/CD integration, which brings pipeline visibility directly into your development workflow. You will learn how to monitor GitHub Actions pipelines, view build logs, trigger workflows, and use the GH Actions agent for automated workflow debugging – all from the CLI and VibeUI.
Time to complete: ~15 minutes
Prerequisites
- VibeCLI installed and configured (Demo 1)
- A GitHub repository with at least one GitHub Actions workflow
- A GitHub personal access token with
repoandworkflowscopes - (Optional) VibeUI for the desktop panel experience
GitHub Token Setup
# Set your GitHub token
export GITHUB_TOKEN="ghp_..."
# Or add to config.toml
cat >> ~/.vibecli/config.toml << 'EOF'
[github]
token = "ghp_..."
EOF
Step-by-Step Walkthrough
Step 1: Check pipeline status
Use the /cicd status REPL command to view the current state of all pipelines in your repository.
vibecli
> /cicd status
Expected output:
CI/CD Pipeline Status (myorg/myrepo)
=====================================
#142 build-and-test main completed success 2m 34s 3 min ago
#141 deploy-staging main completed success 4m 12s 15 min ago
#140 build-and-test fix/auth in_progress running 1m 02s now
#139 lint-check fix/auth completed failure 0m 48s 22 min ago
Active: 1 | Passed: 2 | Failed: 1 | Total runs shown: 4
Step 2: View build logs
Drill into a specific run to see detailed logs.
> /cicd logs 139
Expected output:
Run #139: lint-check (fix/auth)
================================
Status: failure
Trigger: push
Duration: 48s
Job: lint (ubuntu-latest)
Step 1: Checkout passed 2s
Step 2: Setup Rust passed 15s
Step 3: cargo clippy FAILED 31s
--- Error Output ---
error: unused variable `config`
--> src/auth.rs:42:9
|
42 | let config = load_config()?;
| ^^^^^^ help: if this is intentional, prefix with underscore: `_config`
error: could not compile `myproject` (lib) due to 1 previous error
Step 3: Trigger a workflow manually
Re-run a failed workflow or trigger a workflow dispatch.
# Re-run a specific workflow
> /cicd trigger --rerun 139
# Trigger a workflow_dispatch event
> /cicd trigger --workflow deploy.yml --ref main --input environment=staging
Expected output:
Triggered workflow run #143: lint-check on fix/auth
Watch progress: /cicd logs 143 --follow
Step 4: View pipeline history
Review recent CI/CD activity for a branch or the entire repository.
# History for the current branch
> /cicd history
# History for a specific branch
> /cicd history --branch main --limit 20
# Filter by status
> /cicd history --status failure --limit 10
Expected output:
Pipeline History (last 10 runs, branch: main)
==============================================
#142 build-and-test success 2m 34s 2026-03-13 09:41
#141 deploy-staging success 4m 12s 2026-03-13 09:26
#138 build-and-test success 2m 28s 2026-03-13 08:55
#135 build-and-test failure 1m 52s 2026-03-12 17:30
#134 deploy-staging success 4m 05s 2026-03-12 17:15
...
Success rate: 80% (8/10) | Avg duration: 2m 48s
Step 5: Monitor pipelines with alerts
Enable real-time monitoring that notifies you when builds finish or fail.
# Watch a running pipeline
> /cicd logs 140 --follow
# Enable desktop notifications for failures
> /cicd monitor --notify-on failure
When a pipeline fails, VibeCody sends a system notification and displays a summary in the REPL:
[CI ALERT] Run #144 build-and-test FAILED on fix/auth (1m 22s)
cargo test: 2 tests failed (test_login_flow, test_token_refresh)
Use /cicd logs 144 to see details
Step 6: GH Actions agent for automated debugging
When a workflow fails, ask the GH Actions agent to analyze and suggest fixes.
> /cicd debug 139
The agent reads the workflow YAML, inspects the error logs, and proposes a fix:
Analyzing run #139 (lint-check)...
Root cause: Unused variable `config` in src/auth.rs:42
The variable is assigned but never used in the function body.
Suggested fix (src/auth.rs):
- let config = load_config()?;
+ let _config = load_config()?;
Or, if the variable should be used, check that subsequent code
references `config` as intended.
Apply fix? [y/n]:
You can also ask the agent to fix workflow YAML issues:
> /cicd debug-workflow .github/workflows/ci.yml
Analyzing .github/workflows/ci.yml...
Issues found:
1. Line 23: uses: actions/checkout@v2 -- outdated, recommend v4
2. Line 31: Missing `cache: true` on actions/setup-node -- builds are slow
3. Line 45: `continue-on-error: true` suppresses real failures
Suggested .github/workflows/ci.yml patch:
- uses: actions/checkout@v2
+ uses: actions/checkout@v4
...
Apply patch? [y/n]:
Step 7: CI review bot for PR checks
The CI review bot automatically comments on pull requests when checks fail, providing actionable summaries.
# Enable CI review bot for a repository
> /cicd review-bot enable --repo myorg/myrepo
# View bot configuration
> /cicd review-bot config
CI Review Bot Configuration
============================
Repository: myorg/myrepo
Status: enabled
Auto-comment: on failure
Analyze depth: full (logs + code)
Notify: PR author + reviewers
When a PR check fails, the bot posts a GitHub comment like:
## CI Failure Analysis
**Run:** #145 build-and-test | **Status:** failure | **Duration:** 2m 10s
### Failed Step: cargo test
2 tests failed:
- `test_login_flow`: assertion failed at auth.rs:87 — expected `Ok`, got `Err(InvalidToken)`
- `test_token_refresh`: timeout after 30s — likely missing mock for token endpoint
### Suggested Fix
The `InvalidToken` error suggests the test fixture token expired.
Update `tests/fixtures/test_token.json` with a fresh token or use
a time-independent mock.
Step 8: Use the CI/CD panel in VibeUI
Open VibeUI and navigate to the CI/CD panel in the left sidebar.
cd vibeui && npm run tauri dev
The CI/CD panel provides four views:
-
Pipeline Status – Live view of all workflow runs with status badges, durations, and quick-action buttons (re-run, view logs, cancel).
-
Logs Viewer – Streaming log viewer with ANSI color support, search, and jump-to-error. Click any failed step to see its output.
-
History – Timeline chart of pipeline runs with success/failure trends, average duration, and flakiness detection.
-
Actions Agent – Interactive debugging panel where you paste a run URL or ID and the GH Actions agent analyzes the failure, suggests fixes, and can apply patches directly.
Step 9: Configure pipeline alerts in config.toml
[cicd]
github_token = "ghp_..."
poll_interval_seconds = 30
notify_on = ["failure", "cancelled"]
[cicd.review_bot]
enabled = true
auto_comment = true
analyze_depth = "full"
[cicd.alerts]
desktop_notifications = true
slack_webhook = "https://hooks.slack.com/services/T.../B.../..."
Demo Recording
{
"meta": {
"title": "CI/CD Pipeline Integration",
"description": "Monitor GitHub Actions pipelines, view logs, debug failures, and use the CI review bot from VibeCLI and VibeUI.",
"duration_seconds": 300,
"version": "1.0.0"
},
"steps": [
{
"id": 1,
"action": "shell",
"command": "export GITHUB_TOKEN=\"ghp_demo_token\"",
"description": "Set GitHub token for CI/CD access",
"delay_ms": 500
},
{
"id": 2,
"action": "repl",
"commands": [
{ "input": "/cicd status", "delay_ms": 3000 }
],
"description": "View current pipeline status for all workflows"
},
{
"id": 3,
"action": "repl",
"commands": [
{ "input": "/cicd logs 139", "delay_ms": 4000 }
],
"description": "Inspect logs for a failed lint-check run"
},
{
"id": 4,
"action": "repl",
"commands": [
{ "input": "/cicd history --branch main --limit 10", "delay_ms": 3000 }
],
"description": "Review pipeline history for the main branch"
},
{
"id": 5,
"action": "repl",
"commands": [
{ "input": "/cicd trigger --rerun 139", "delay_ms": 2000 }
],
"description": "Re-trigger a failed workflow run"
},
{
"id": 6,
"action": "repl",
"commands": [
{ "input": "/cicd debug 139", "delay_ms": 5000 }
],
"description": "Use the GH Actions agent to analyze the failure and suggest a fix"
},
{
"id": 7,
"action": "repl",
"commands": [
{ "input": "/cicd review-bot enable --repo myorg/myrepo", "delay_ms": 2000 },
{ "input": "/cicd review-bot config", "delay_ms": 1500 }
],
"description": "Enable and configure the CI review bot for automatic PR comments"
},
{
"id": 8,
"action": "shell",
"command": "cd vibeui && npm run tauri dev",
"description": "Launch VibeUI to explore the CI/CD panel",
"delay_ms": 8000
},
{
"id": 9,
"action": "Navigate",
"target": "panel://cicd",
"description": "Open the CI/CD panel in VibeUI"
},
{
"id": 10,
"action": "Click",
"target": ".pipeline-run[data-id='139']",
"description": "Click a failed run to see detailed log output"
},
{
"id": 11,
"action": "Screenshot",
"label": "cicd-panel-logs",
"description": "Capture the CI/CD panel showing streamed build logs"
},
{
"id": 12,
"action": "Click",
"target": ".tab-actions-agent",
"description": "Switch to the Actions Agent tab for interactive debugging"
},
{
"id": 13,
"action": "Type",
"target": "#run-id-input",
"value": "139",
"description": "Enter the run ID for the agent to analyze"
},
{
"id": 14,
"action": "Click",
"target": ".btn-analyze",
"description": "Start the GH Actions agent analysis"
},
{
"id": 15,
"action": "Wait",
"duration_ms": 5000,
"description": "Wait for the agent to complete its analysis"
},
{
"id": 16,
"action": "Screenshot",
"label": "cicd-agent-fix",
"description": "Capture the agent's suggested fix with Apply button"
}
]
}
Troubleshooting
| Problem | Solution |
|---|---|
GitHub token missing |
Set GITHUB_TOKEN env var or add to [github] in config.toml |
403 Forbidden on workflow trigger |
Your token needs the workflow scope – regenerate with correct permissions |
| No runs shown | Ensure you are in a directory with a .git remote pointing to GitHub |
| Review bot not commenting | Check that the token has pull_requests: write permission |
| Logs truncated | GitHub retains logs for 90 days – older runs may not have logs available |
What’s Next
- Demo 14: Cloud Provider Integration – Scan for AWS/GCP/Azure usage and generate IaC
- Demo 12: Kubernetes Operations – Deploy and monitor K8s workloads
- Demo 9: Autofix & Diagnostics – Automatically fix code issues detected by CI