QubeはAmazon Q CLIのためのReactベースのTUI(ターミナルユーザーインターフェース)ラッパーです。
Amazon Q CLIにインタラクティブなシェル体験を提供:
- 永続的なチャットセッション
- コマンド履歴管理
- リアルタイムストリーミング出力
- 直感的なキーバインディング
# 依存関係のインストール
npm install
# 開発モードで起動
npm run dev
# テスト実行
npm test
# ビルド
npm run buildタスクはtasks/ディレクトリに定義されています:
- [完了] CLI ブートストラップ - TypeScript/Node.js環境構築
- [完了] TDD セットアップ - Vitestによるテスト環境
- [完了] Q CLI 検出とプロセス起動 - バイナリ検出と子プロセス管理
- [次] TUI シェル - Inkによるインタラクティブインターフェース
- ストリーム処理 - ANSIエスケープシーケンスとJSON解析
- コマンドとフラグ - 引数解析と検証
- 設定とテレメトリ - ユーザー設定管理
- E2Eテスト - 統合テスト
詳細は各タスクファイル(tasks/XX-*.md)を参照してください。
/
├── src/
│ ├── cli.tsx # メインエントリポイント
│ ├── components/ # UIコンポーネント
│ ├── lib/ # ユーティリティ
│ │ ├── q-cli-detector.ts # Q CLIバイナリ検出
│ │ ├── spawn-q.ts # プロセス起動(単発実行)
│ │ └── q-session.ts # セッション管理(永続的対話)
│ └── types/ # TypeScript型定義
├── tasks/ # 開発タスク定義
└── docs/ # ドキュメント
- Q CLI検出: 環境変数とPATHからバイナリを検出
- プロセス起動:
spawnQ()で単発コマンド実行 - セッション管理:
QSessionクラスで永続的な対話(基本実装)
- TUIシェル: Inkベースのインタラクティブインターフェース
- ストリーム処理: リアルタイム出力とANSI処理
- 履歴管理: コマンド履歴の保存と検索
TDD(テスト駆動開発)を採用:
# 全テスト実行
npm test
# 特定のテストファイル実行
npm test -- src/lib/spawn-q.test.ts
# ウォッチモード
npm run test:watch- タスクファイル(
tasks/)を確認 - TDDサイクルに従って実装:
- Red: 失敗するテストを書く
- Green: テストを通す最小限の実装
- Refactor: コードを改善
- コミットメッセージは日本語でも英語でも可
- PRを作成
MIT