Skip to content
cccskills
FreePublished on GitHub

terminal-simulation

Generate interactive, animated, responsive HTML-based terminal simulators to showcase CLI commands, scripts, pipelines, or interactive workflows. Use this whenever you need to visually showcase a command line sequence, mock interactive CLI tools, or simulate code executions.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md10.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

terminal-simulation

An agent skill for implementing highly polished, interactive terminal/CLI simulators in web applications or documentations. Rather than presenting static command blocks, this skill details how to render a responsive console that animates log sequences, provides interactive review inputs, and handles error gates.

┌──────────────────────────────────────────────┐
│ curate-chain-simulator.sh             [Run]  │
├──────────────────────────────────────────────┤
│ > Initiating Explore-class Sub-Agent...      │
│ [L1] Reading registry/gaia.json...           │
│ [Gate g1] PASS! 142 existingIds loaded       │
│                                              │
│ [L4] Review Intake Batch:                    │
│ ┌──────────────────────────────────────────┐ │
│ │ Candidate       │ Type    │ Decision     │ │
│ ├─────────────────┼─────────┼──────────────┤ │
│ │ lit-search      │ generic │ [Accept  v]  │ │
│ └─────────────────┴─────────┴──────────────┘ │
│ [Submit Decisions]                           │
└──────────────────────────────────────────────┘

Template Components

Use the following markup, styles, and script structure to generate a terminal simulator.

1. HTML Structure

<div class="simulator-wrapper" id="simWrapper">
  <div class="simulator-header">
    <div class="simulator-dots">
      <span class="dot red"></span>
      <span class="dot yellow"></span>
      <span class="dot green"></span>
    </div>
    <div class="simulator-title">cli-simulator.sh</div>
    <button class="simulator-btn" id="startSimBtn">Run Simulation</button>
  </div>
  <div class="simulator-body" id="simulatorConsole">
    <div class="console-line system">> Click "Run Simulation" to start the command demonstration.</div>
  </div>
</div>

2. Premium CSS (Dark Theme, Responsive)

Inject this block into the head or append it to the main stylesheet. It uses CSS custom variables to inherit existing themes:

.simulator-wrapper {
  background: #08080a;
  border: 1px solid var(--border, #222);
  border-radius: 12px;
  overflow: hidden;
  margin: 2rem 0;
  font-family: var(--font-mono, ui-monospace, monospace);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
}

.simulator-header {
  background: rgba(255, 255, 255, 0.02);
  border-bottom: 1px solid var(--border, #222);
  padding: 0.75rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.simulator-dots {
  display: flex;
  gap: 6px;
}

.simulator-dots .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}
.simulator-dots .dot.red { background: #ef4444; }
.simulator-dots .dot.yellow { background: #fbbf24; }
.simulator-dots .dot.green { background: #22c55e; }

.simulator-title {
  font-size: 0.8rem;
  color: var(--muted, #666);
}

.simulator-btn {
  margin: 0;
  font-size: 0.8rem;
  padding: 0.4rem 0.9rem;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--border, #222);
  color: var(--text, #eee);
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease;
}

.simulator-btn:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.1);
  border-color: var(--text, #eee);
}

.simulator-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.simulator-body {
  padding: 1.25rem;
  font-size: 0.85rem;
  line-height: 1.6;
  height: 300px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  color: #c9d1d9;
  scroll-behavior: smooth;
}

/* Color Coding Ramps */
.console-line {
  word-break: break-all;
}
.console-line.system { color: #8b949e; }
.console-line.agent { color: #58a6ff; }
.console-line.cmd { color: #58a6ff; font-weight: bold; }
.console-line.gate-pass { color: #34d399; }
.console-line.gate-fail { color: #f85149; }
.console-line.user { color: #fbbf24; }

/* Interactive Prompts */
.console-line.input-prompt {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.02);
  padding: 0.75rem;
  border-radius: 6px;
  border: 1px solid var(--border, #222);
  margin-top: 0.5rem;
  font-family: var(--font-body, system-ui, sans-serif);
}

/* Table structure inside simulator */
.sim-interactive-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
  margin: 0.75rem 0;
  font-family: var(--font-mono, ui-monospace, monospace);
}

.sim-interactive-table th, 
.sim-interactive-table td {
  padding: 0.5rem;
  border: 1px solid var(--border, #222);
  text-align: left;
}

.sim-interactive-table th {
  background: rgba(255, 255, 255, 0.02);
  color: var(--muted, #666);
}

.sim-select {
  background: #0d1117;
  color: #ffffff;
  border: 1px solid var(--border, #222);
  border-radius: 4px;
  padding: 0.15rem 0.3rem;
  font-size: 0.75rem;
  outline: none;
  cursor: pointer;
}

.sim-submit-btn {
  background: var(--tier-ultimate, #f59e0b);
  color: #000;
  border: none;
  padding: 0.4rem 0.8rem;
  font-family: var(--font-body, system-ui, sans-serif);
  font-weight: bold;
  border-radius: 4px;
  cursor: pointer;
  margin-top: 0.5rem;
  transition: opacity 0.15s;
}

.sim-submit-btn:hover {
  opacity: 0.9;
}

3. JavaScript Execution Engine

Use this template to model logs and timeline transitions:

(function() {
  const startBtn = document.getElementById("startSimBtn");
  const consoleBox = document.getElementById("simulatorConsole");
  let isRunning = false;

  function addLog(msg, type = "system") {
    const line = document.createElement("div");
    line.className = `console-line ${type}`;
    line.innerHTML = msg;
    consoleBox.appendChild(line);
    consoleBox.scrollTop = consoleBox.scrollHeight;
  }

  if (startBtn && consoleBox) {
    startBtn.addEventListener("click", () => {
      if (isRunning) return;
      isRunning = true;
      startBtn.disabled = true;
      startBtn.innerText = "Running...";
      consoleBox.innerHTML = "";
      
      let currentFrame = 0;

      // Define your timeline frames here
      const timeline = [
        { delay: 400, action: () => addLog("[System] Initiating process...", "system") },
        { delay: 800, action: () => addLog("[CLI] Running `tool --command`", "cmd") },
        { delay: 1200, action: () => addLog("[Agent] Analyzing results...", "agent") },
        
        // Example: Wait for human input (L4 style)
        { 
          delay: 800, 
          action: () => {
            addLog("[System] WAITING FOR HUMAN REVIEW INPUT...", "system");
            
            const promptBox = document.createElement("div");
            promptBox.className = "console-line input-prompt";
            promptBox.innerHTML = `
              <div style="font-weight: bold; margin-bottom: 0.5rem;">Interactive Options:</div>
              <select class="sim-select" id="simUserChoice">
                <option value="yes">Yes, proceed</option>
                <option value="no">No, abort</option>
              </select>
              <button class="sim-submit-btn" id="simSubmitChoice">Submit</button>
            `;
            consoleBox.appendChild(promptBox);
            consoleBox.scrollTop = consoleBox.scrollHeight;

            document.getElementById("simSubmitChoice").addEventListener("click", () => {
              const choice = document.getElementById("simUserChoice").value;
              promptBox.remove();
              addLog(`[User] Choice: <strong>${choice.toUpperCase()}</strong>`, "user");
              
              if (choice === "yes") {
                addLog("[Gate] PASS! Resuming simulation...", "gate-pass");
                currentFrame++;
                runNext();
              } else {
                addLog("[Gate] ABORT! Pipeline halted.", "gate-fail");
                resetSimulator();
              }
            });
          },
          isBlocking: true // Prevents immediate auto-advancing to the next frame
        },

        { delay: 1000, action: () => addLog("[System] Command finished successfully.", "gate-pass") }
      ];

      function runNext() {
        if (currentFrame >= timeline.length) {
          resetSimulator();
          return;
        }

        const frame = timeline[currentFrame];
        setTimeout(() => {
          frame.action();
          if (!frame.isBlocking) {
            currentFrame++;
            runNext();
          }
        }, frame.delay);
      }

      function resetSimulator() {
        startBtn.disabled = false;
        isRunning = false;
        startBtn.innerText = "Run Simulation";
      }

      runNext();
    });
  }
})();

Design and Accessibility Standards

When implementing terminal simulations:

  1. Never block user-interaction: Keep the manual "Run Simulation" trigger. Auto-starting animations on load is jarring and wastes CPU.
  2. Reduced Motion: Respect system settings. If @media (prefers-reduced-motion: reduce) matches, either run the animation instantly (zero delay) or skip the simulation and display the final logs immediately.
  3. Contrast Rules: Make sure custom log colors (like .agent, .gate-pass, .user) hit at least 4.5:1 contrast ratio against the dark background. Do not use dark blue or dark red text.
  4. No Overflow: Enforce word-break: break-all and overflow-x: auto on lines to prevent text clipping on mobile viewports.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Measure CI churn cost for a pull request: how many commits and how many CI-compute seconds were burned on avoidable "fix the CI" push rounds. Use when you want to understand the efficiency cost of a PR's iteration cycle, get actionable pre-push check suggestions, or include a churn summary in a pipeline report. Triggers: "ci churn", "how much CI did we burn", "avoidable commits", "ci efficiency", "wasted CI time", "churn report", "/ci-churn". Called automatically by /fp-drift at pipeline close.

The English summary is being prepared. Showing the original description.

gaia-research/gaia-skill-tree23Updated Oct 17, 2026

Produce the rendered evidence a human-gated frontend PR owes its reviewer: capture each changed surface (plus the before state for anything modified, plus mobile width), then generate one self-contained local HTML page the founder can open and review without checking anything out. Use when a PR is gated by the "Frontend changes are HUMAN-GATED" section of CLAUDE.md, or when the user says "/design-gate", "screenshot evidence for this PR", "prep this for founder review", "build the design evidence page", "what does this look like before and after". The page comes from a template script, not hand-written markup. Output is session-local and never committed. Do NOT use for non-gated changes: typo/grammar/factual fixes in an unchanged block, dead link targets, alt/ARIA fixes with no visual change, cache-bust bumps, or refactors with no rendered diff.

The English summary is being prepared. Showing the original description.

gaia-research/gaia-skill-tree23Updated Oct 17, 2026

One-fix-at-a-time, approval-gated design fix recovery. Given a checklist of fixes (handover doc, CHECKLIST.md, or inline list), applies each individually, presents a diff, and waits for an explicit APPROVE / REJECT / NO CHANGES decision before committing. Trigger phrases: /design-iteration, "go through the checklist one by one", "fix these one at a time", "bucket recovery", "design fix pass".

The English summary is being prepared. Showing the original description.

gaia-research/gaia-skill-tree23Updated Oct 17, 2026

Playbook for correcting a named skill's star level to match its computed Trust Magnitude grade, with an independent post-calibration verification pass and a CLI-logged timeline event (never hand-written). Use when: recalibrating a skill's level, fixing a stale or drifted star rating, running a batch of `gaia dev calibrate` corrections, or confirming a past calibration actually landed. Triggers: "calibrate <skill>", "recalibrate the trust magnitude backlog", "promote/demote <skill> to N stars", "why is <skill> still N stars", "verify a calibration actually landed", "Hall of Heroes ranking is wrong".

The English summary is being prepared. Showing the original description.

gaia-research/gaia-skill-tree23Updated Oct 17, 2026

Close out a completed EPIC / sprint end-to-end: author a fact-verified meta-post announcing what shipped, archive the EPIC's handovers, snapshot orchestrator memory, gate the integration→main merge on CI-green + explicit human go, drive the version bump (merge-commit conventions that auto-sync classifies), and verify the release reached the registry/PyPI. Use when the user says "close out EPIC <n>", "wrap up the sprint", "ship the meta shift", "/epic-close", or asks to finalize an integration branch that is ready to merge to main. Generalizes the EPIC 1002 (Yggdrasil II) close-out. This skill orchestrates — it authors founder docs directly (superadmin) and delegates code/regen to workers; it NEVER merges to main without the human gate.

The English summary is being prepared. Showing the original description.

gaia-research/gaia-skill-tree23Updated Oct 17, 2026

Run this skill for Phase 3 of the evidence verification pipeline — the adversarial audit step. Use when you need to check the evidence data lake for bad data before ingestion: dead links, wrong URL formats (tree/ vs blob/), subjective wording ("elite", "high-quality"), stale migration notes, benchmark catalog misuse/vendor-claim leakage, or skills whose star evidence conflicts with classified evidence level. Triggers on phrases like: "audit the data lake", "adversarial check", "ev-adversarial-audit", "check for noise in evidence", "flag bad evidence", "run the audit phase", "quality check the by-type files", or any reference to Phase 3 of the pipeline.

The English summary is being prepared. Showing the original description.

gaia-research/gaia-skill-tree23Updated Oct 17, 2026

See all skills by gaia-research

Report a problem with this skill