GitHub built an animated ASCII banner for Copilot CLI that required over 6,000 lines of TypeScript to handle terminal inconsistencies and accessibility constraints. The project involved creating custom tooling for frame-by-frame animation editing, mapping brand colors to ANSI codes that work across different terminals and accessibility settings, and using Ink (React for terminals) to render animations without flickering. The team treated color as a semantic system rather than literal RGB values, made the animation opt-in for accessibility, and separated frame content from styling to create a maintainable architecture. A designer built the initial prototype using GitHub Copilot and contributed their first engineering PR, later open-sourcing the ASCII animation tool.

14m read timeFrom github.blog
Post cover image
Table of contents
What’s new in GitHub Copilot CLIWhy animated ASCII is a hard engineering problemPart 1: A request that didn’t fit any workflowPart 2: Building an ASCII animation editor from scratchPart 3: ANSI color theory and the real-world limitationsAdding a color “brush” toolPart 4: Exporting to Ink (React for the terminal)Part 5: Terminal animation isn’t solved technologyChallenge 4: Accessibility-first designPart 6: An architecture built to scalePart 7: What this project reveals about building for the terminalTags:Written by
8 Comments

Sort: