CIberus: A Three-Headed ASCII Guardian for Your CI Pipeline

Published: (February 14, 2026 at 03:43 PM EST)
5 min read
Source: Dev.to

Source: Dev.to

CIberus is a zero‑dependency, terminal‑native DevOps companion that monitors your repository’s health and reflects it as a living ASCII creature – a three‑headed Cerberus that evolves, emotes, and suffers based on real CI signals.

The idea is simple: dashboards get ignored, Slack alerts get muted, and broken builds become background noise. But a visibly suffering three‑headed guardian in your terminal? That gets attention.

Health signals it tracks

  • GitHub Actions – run status and conclusion (via gh run list)
  • Green streak – length of recent successful CI runs
  • Flaky‑test heuristic – count of success/failure transitions
  • Code coverage – from coverage-summary.json or lcov.info
  • Documentation freshness – commits since README.md was last touched

Evolution stages

ScoreStageDescription
0‑39PupSingle head, small, struggling
40‑59SentinelTwo heads, lean, alert
60‑74GatekeeperThree heads, muscular, gate base
75‑89Infernal GuardianThree fierce heads, horns, armor plating, braille flames
90‑100Ascended CerberusThree majestic heads, braille wings, aura, pedestal

Moods

Five moods (calm, alert, worried, angry, critical) change the creature’s facial expression, aura effects, and coloring in real time.

Theme modes

ThemeDescription
MythicDetailed pixel‑art using Unicode block elements (█▓▒░▀▄▛▜) and braille characters (⣿⣷⢰⢾⣦⣄) for fine detail, fur texture, and flame effects. No emoji – pure terminal‑safe characters.
MinimalClean ASCII (/\_/\), 5‑8 lines.
CorporateBox‑drawing status panels. Intentionally bland.
ChaosProcedurally corrupts the mythic art with deterministic braille‑noise injection (seeded PRNG) so watch mode doesn’t flicker.

The mythic art uses a template composition system instead of duplicating full art for every mood. Body templates contain {EYES}, {MOUTH}, {SNOUT}, {AURA}, and {FLAME} tokens that get swapped per mood, keeping the codebase clean while supporting 25 visual combinations (5 stages × 5 moods) from just 5 body templates.

Core Commands

ciberus init                     # Initialize config
ciberus status                   # Render current health
ciberus watch --interval 30      # Live monitoring loop
ciberus theme set chaos          # Switch visual theme
ciberus copilot run              # Non‑interactive Copilot analysis
ciberus copilot chat             # Interactive Copilot session with context

Demo

Repository:

Mythic Theme – Ascended Cerberus (calm)


   ⣠⣴⣿⣿    ✧  ✧  ✧    ⣿⣿⣦⣄
  ⣸⣿⣿⣿  ┌───┐┌─────┐┌───┐  ⣿⣿⣿⣇
  ⣸⣿⣿  █▛ ◕‿◕ ▜█▛ ◕‿◕ ▜█▛ ◕‿◕ ▜█  ⣿⣿⣇
  ⣹⣿⣿  █  ᴖᴖ  █  ᴖᴖ  █  ᴖᴖ  █  ⣿⣿⣏
   ⣹⣿  █▄ ─  ▄█▄ ─  ▄█▄ ─  ▄█  ⣿⣏
    ⢹   ██▓══════════════▓██   ⣏
  ░░░░░ █▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓█ ░░░░░
  ░░░░░ █▓▓▓▓████████▓▓▓▓█ ░░░░░
  ░░░░░ █▓▓█▒▒▒▒▒▒▒▒▒▒█▓▓█ ░░░░░
  ░░░░░ █▒█▒▒   ▒▒   ▒▒█▒█ ░░░░░
  ░░░░ ▄▄▄▄     ▄▄     ▄▄▄▄ ░░░░
  ░░ ════════════════════════ ░░
     ════════════════════════

Mythic Theme – Pup (calm)


      ┌─────┐
     █▀ ◕‿◕ ▀█
     █  ᴖᴖ  █
     █▄ ─  ▄█
      ███████
      █▒█  █▒█
      ▄▄    ▄▄

Infernal Guardian (angry) – with braille flames

     ⢰⢾⣿⣷⣆     ⢰⢾⣿⣷⣆     ⢰⢾⣿⣷⣆
      ✧        ✧        ✧
     ┌────┐  ┌─────┐  ┌────┐
    █▛ ◉_◉ ▜█▛ ◉_◉ ▜█▛ ◉_◉ ▜█
    █  ᴖᴖ  █  ᴖᴖ  █  ᴖᴖ  █
    █▄ ⨷  ▄█▄ ⨷  ▄█▄ ⨷  ▄█
     ██▓══════════════▓██
       █▓▓▓▓▓▓▓▓▓▓▓▓▓▓█
       █▓▓▓▓██████▓▓▓▓█
       █▓▓█▒▒▒▒▒▒▒▒█▓▓█
       █▒█▒▒    ▒▒█▒▒█▒█
      ▄▄▄▄      ▄▄▄▄▄▄▄
    ═══════════════════════

Full status output

CIberus

  [creature art rendered in color]

  CIberus is calm. The gates are secure.

  Stage: Gatekeeper
  ████████████████░░░░ 78/100

  Signals
  CI:                completed/success
  Green streak:      5
  Flaky transitions: 1
  Coverage:          85%
  Docs freshness:    3 commits since README.md
  Branch:            main

  Wins:
    + Latest CI run passed
    + Coverage is 85%

My Experience with GitHub Copilot CLI

CIberus has first‑class Copilot CLI integration baked into its command structure. The ciberus copilot sub‑commands bridge the gap between passive health monitoring and active remediation.

How the integration works

CommandDescription
ciberus copilot checkVerifies that the standalone copilot CLI is installed and authenticated. This validates the toolchain before attempting any AI‑assisted workflows.
ciberus copilot promptGenerates a context‑rich remediation prompt from live repo metrics (branch, CI status, green streak, flaky transitions, coverage, docs freshness) and wraps them into a structured request for prioritized fixes and exact terminal commands.
ciberus copilot runSends that prompt directly to the copilot CLI in non‑interactive mode. CIberus builds the full argument list (-p --stream off -s), handles auth errors gracefully, and prints the AI response. You can pass --model gpt‑5 or --allow-all-tools flags through.
ciberus copilot chatOpens an interactive Copilot session (copilot -i ) pre‑seeded with the same repo context, allowing a back‑and‑forth conversation about what to fix.

The workflow in practice

ciberus status           # See health at a glance
ciberus copilot run      # Get AI‑powered fix suggestions
# …apply fixes…
ciberus status           # Watch the creature evolve

End of cleaned markdown.

Overview

CIberus transforms a general‑purpose assistant into a DevOps‑aware one. Instead of manually providing context (“what’s wrong with my repo?”), CIberus automatically gathers signals, formats the context, and hands it off to the assistant.

  • The creature’s mood indicates when to ask for help.
  • The Copilot integration tells you exactly what to do.

Development Experience

During the build I used Copilot CLI to:

  • Scaffold shell‑command wrappers.
  • Debug gh run list JSON‑parsing edge cases.
  • Iterate on the scoring algorithm.

The copilot CLI’s ability to understand terminal context proved especially useful for:

  • Testing spawnSync argument patterns.
  • Validating ANSI escape sequences across different terminal emulators.

Project Details

  • Zero‑dependency: Node.js 18+ only, no external npm packages.
  • Testing: All 20 tests pass with the built‑in test runner:
node --test

The project remains lightweight, fully self‑contained, and ready for further DevOps integration.

0 views
Back to Blog

Related posts

Read more »

The Vonage Dev Discussion

Dev Discussion We want it to be a space where we can take a break and talk about the human side of software development. First Topic: Music 🎶 Speaking of musi...

MLflow: primeiros passos em MLOps

Introdução Alcançar uma métrica excelente em um modelo de Machine Learning não é uma tarefa fácil. Imagine não conseguir reproduzir os resultados porque não le...