npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

copilot-quest

v1.0.0

Published

An AI-powered text adventure game where GitHub Copilot CLI is your Game Master

Readme

🎮 Copilot Quest

An AI-Powered Text Adventure where GitHub Copilot CLI is Your Game Master

Every playthrough is unique. Every choice matters. Every world is invented on the fly by GitHub Copilot.

╔══════════════════════════════════════════════════════════╗
║   ██████╗  ██████╗ ██████╗ ██╗██╗      ██████╗ ████████╗║
║  ██╔════╝ ██╔═══██╗██╔══██╗██║██║     ██╔═══██╗╚══██╔══╝║
║  ██║      ██║   ██║██████╔╝██║██║     ██║   ██║   ██║   ║
║  ██║      ██║   ██║██╔═══╝ ██║██║     ██║   ██║   ██║   ║
║  ╚██████╗ ╚██████╔╝██║     ██║███████╗╚██████╔╝   ██║   ║
║   ╚═════╝  ╚═════╝ ╚═╝     ╚═╝╚══════╝ ╚═════╝   ╚═╝   ║
║                    Q U E S T                              ║
╚══════════════════════════════════════════════════════════╝

What is Copilot Quest?

Copilot Quest is a terminal-based text adventure game where GitHub Copilot CLI acts as the Game Master. Instead of pre-written stories, every scene, choice, character, and puzzle is dynamically generated by Copilot in real-time.

  • 🎲 Random genres — Fantasy, sci-fi, cyberpunk, horror, steampunk... you never know what you'll get
  • ⚔️ Dynamic combat — HP system with meaningful consequences
  • 🎒 Inventory management — Collect and use items throughout your journey
  • 🎨 ASCII art scenes — Each location comes with AI-generated terminal art
  • ✍️ Free-form actions — Choose from suggestions OR type your own creative actions
  • ♾️ Infinite replayability — No two playthroughs are ever the same

Prerequisites

Installation

Quick Play (no install needed)

npx copilot-quest

Install Globally

npm install -g copilot-quest
copilot-quest

From Source

# Clone the repository
git clone https://github.com/YOUR_USERNAME/copilot-quest.git
cd copilot-quest

# Install dependencies
npm install

# Start the game!
npm start

How to Play

  1. Launch the game with npm start
  2. Enter your name — your adventurer identity
  3. Wait for Copilot to generate your unique world (takes ~10-15 seconds)
  4. Make choices using ↑↓ arrow keys and Enter
  5. Type custom actions by selecting "Type your own action..." option
  6. Survive — keep your HP above 0!
  7. Reach the finale — stories build toward a climax after ~15-20 turns

How It Works

┌─────────────┐     ┌───────────────────┐     ┌──────────────┐
│  Player      │────▶│  Copilot Quest    │────▶│ Copilot CLI  │
│  (Terminal)  │◀────│  (Ink/React TUI)  │◀────│ (AI Engine)  │
└─────────────┘     └───────────────────┘     └──────────────┘
  Arrow keys,         Game state mgmt,         Story generation,
  Enter, Text         UI rendering,            ASCII art,
  input               Prompt engineering        World building

The game uses Copilot CLI's programmatic mode (copilot -p "...") to send structured prompts containing the current game state. Copilot responds with JSON containing the narrative, choices, ASCII art, and game state changes. The app parses this and renders it as a beautiful terminal UI.

Tech Stack

  • TypeScript — Type-safe game engine
  • Ink — React for interactive CLIs
  • GitHub Copilot CLI — AI game master (programmatic mode)
  • Figlet — ASCII art title
  • Chalk — Terminal colors and styling

Project Structure

copilot-quest/
├── src/
│   ├── index.tsx              # Entry point
│   ├── App.tsx                # Main game loop & state machine
│   ├── components/
│   │   ├── TitleScreen.tsx    # Splash screen with ASCII title
│   │   ├── NameInput.tsx      # Player name entry
│   │   ├── NarrativePanel.tsx # Story display with typing effect
│   │   ├── ChoiceMenu.tsx     # Choice selection + free-form input
│   │   ├── StatsBar.tsx       # HP bar, location, inventory
│   │   ├── LoadingScene.tsx   # Animated loading while Copilot thinks
│   │   └── GameOver.tsx       # Victory/defeat screen
│   ├── engine/
│   │   ├── copilot.ts         # Copilot CLI integration layer
│   │   ├── gameState.ts       # Game state management
│   │   ├── promptBuilder.ts   # Structured prompt engineering
│   │   └── parser.ts          # JSON response parsing with fallbacks
│   └── types/
│       └── game.ts            # TypeScript type definitions
├── package.json
├── tsconfig.json
└── README.md

License

MIT


Built with ❤️ and GitHub Copilot CLI for the GitHub Copilot CLI Challenge