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

terminal-quest

v1.3.0

Published

ストーリー駆動型ターミナルコマンド学習CLI - Learn terminal commands through interactive stories

Readme

Terminal Quest

ストーリーを進めながらターミナルコマンドを学べるインタラクティブCLIアプリ。

╔══════════════════════════════════════════╗
║                                          ║
║        ◆ TERMINAL QUEST ◆               ║
║     ~ターミナルの冒険~                 ║
║                                          ║
╚══════════════════════════════════════════╝

はじめかた

Node.js(v18以上)がインストールされていれば、すぐに遊べます。

npx terminal-quest

グローバルインストールする場合:

npm install -g terminal-quest
terminal-quest

動作環境

  • macOS / Linux / Windows(WSL)
  • Node.js v18 以上
  • 外部依存なし(Docker不要、GUI不要、ネットワーク不要)

純粋なnpmパッケージとして動作するTUIアプリです。Ink(React for CLI)で構築されており、ターミナルさえあればどこでも動きます。

特徴

  • 安全な仮想環境 - すべてのコマンドはインメモリの仮想ファイルシステム上で動作。実際のファイルには一切触れません
  • ストーリー駆動 - 物語を進めながら自然にコマンドを習得
  • 3つのコース - 小学生向け・はじめて・エンジニアの3コースで、レベルに合わせた学習体験
  • 結果ベースの判定 - コマンドの文字列ではなく実行結果で目標達成を判定。grep foo file でも cat file | grep foo でも正解になります
  • 到達目標 - 各ミッションに「何ができるようになるか」を明示
  • 段階的ヒント - 困ったら3段階(方向性→コマンド候補→ほぼ答え)のヒントで学習をサポート
  • 間違いフィードバック - タイプミスには類似コマンドを提案、間違ったコマンドにはミッション固有のガイダンスを表示
  • ふりかえり問題 - ミッション完了後に4択クイズで理解度チェック
  • Tab補完 - コマンド名やファイルパスをTabキーで補完
  • 達成バッジ - 学習の進捗に応じてバッジを獲得
  • やりなおし機能 - 進捗のあるストーリーを「はじめから」やりなおせる

コース一覧

全コースで 21コマンド を10ミッションで学べます。コースごとにストーリーとテーマが異なります。

✨ 小学生向けコース

冒険の世界を舞台に、はじめてのコマンドを楽しく学びます。ひらがな中心のガイダンスで小学生でも安心。

たからさがし大冒険(10ミッション)

| # | ミッション | 学べるコマンド | |---|-----------|--------------| | 1 | 冒険のはじまり | pwd ls | | 2 | 森を冒険しよう | cd cat | | 3 | 秘密基地を作ろう | mkdir touch | | 4 | 宝物を集めよう | cp mv | | 5 | トラップを片付けよう | rm find | | 6 | 暗号を解読しよう | grep echo | | 7 | 古い書物を読もう | head tail wc | | 8 | 仲間リストを整理しよう | sort uniq cut | | 9 | 封印を解こう | chmod | | 10 | 冒険の記録をつけよう | git |

💻 はじめてコース

自分のパソコンを探検しながら、基本操作を身につけます。

はじめてのパソコン冒険(10ミッション)

| # | ミッション | 学べるコマンド | |---|-----------|--------------| | 1 | ここはどこ? | pwd ls | | 2 | フォルダの中を見て回ろう | cd cat | | 3 | 写真アルバムを作ろう | mkdir touch | | 4 | ファイルを整理しよう | cp mv | | 5 | いらないファイルを片付けよう | rm find | | 6 | 日記を書こう | echo grep | | 7 | 長いレポートを確認しよう | head tail wc | | 8 | 連絡先を整理しよう | sort uniq cut | | 9 | 共有ファイルの設定 | chmod | | 10 | 変更履歴を管理しよう | git |

🖥️ エンジニアコース

サーバー管理やGit操作など、実践的なスキルを7つのストーリーで段階的に習得します。

| # | ストーリー | 学べるコマンド | |---|-----------|--------------| | 1 | 初めてのサーバー管理 | pwd ls cd cat grep cp echo | | 2 | 散らかったプロジェクト | mkdir mv rm find touch wc | | 3 | ログ探偵 | head tail sort uniq grep応用 | | 4 | デプロイの日 | chmod cp -r rm -rf mkdir -p | | 5 | Git大事件 | git status log diff stash branch merge | | 6 | パイプの達人 | パイプ(\|) cut 複合コマンド | | 7 | 危険なコマンド | rm安全運用 バックアップ find→削除 |

学べるコマンド一覧

pwd ls cd cat mkdir touch cp mv rm find grep echo head tail wc sort uniq cut chmod git + パイプ(|)・リダイレクト(> >>)

操作方法

| キー | 操作 | |------|------| | Tab | コマンド名・ファイルパスを補完 | | | コマンド履歴 | | Ctrl+H | ヒントを表示 | | Enter | コマンド実行 / 選択決定 | | Esc | 前の画面に戻る |

ゲーム内コマンド:

help        使えるコマンド一覧
hint        ヒントを表示
objectives  現在の目標を確認
cmds        このミッションの新コマンドを確認
man <cmd>   コマンドのマニュアル

アーキテクチャ

src/
├── engine/          コアエンジン(UI非依存)
│   ├── VirtualFS        インメモリ仮想ファイルシステム
│   ├── CommandHandler    23コマンド実装(パイプ・リダイレクト対応)
│   ├── MissionEngine     結果ベースの目標判定
│   ├── HintEngine        3段階ヒント管理
│   ├── CommandFeedback   タイプミス検出・ミッション固有フィードバック
│   └── TabCompletion     コマンド名・パス補完
├── data/stories/    ストーリーデータ(コース別、全9ストーリー)
├── screens/         7画面コンポーネント(Ink/React)
├── components/      再利用UIコンポーネント
└── state/           ゲーム状態管理(~/.terminal-quest/progress.json に永続化)
  • 仮想FS上で完結 — 実際のファイルシステムやシェルは一切使用しません
  • 結果ベースの判定 — ObjectiveCheck がコマンドの出力・FS状態を検査し、解法の自由度を確保
  • コース別UX — kids コースはひらがな中心のガイダンスとエラーメッセージ、engineer コースは実務寄りの表現

開発

git clone https://github.com/nasuda/terminal-quest.git
cd terminal-quest
npm install
npm run dev       # 開発実行
npm test          # テスト実行(184件)
npm run build     # ビルド

技術スタック

  • TypeScript (ESM) + Ink 5 (React for CLI)
  • Vitest(テスト)
  • npm配布(bin/terminal-quest.jsdist/index.js 直接import、tsx不要)

ライセンス

MIT