CommandCodeAI / CommandCodeAI/command-code

[ Feature Request ] Richer UI options in mods (ANSI support, spinners, layout helpers)

オープン
#591 コメント 1 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
言語のデータがありません
スター
4k
フォーク
350
PR マージ指標
30日以内にマージされた PR はありません

説明

Summary

When building interactive mods, we are limited to displaying raw text strings inside "cmd.ui.select()" and "cmd.ui.notify()". Creating structured layouts or showing background progress currently requires custom ASCII drawing or raw terminal printing, which is complex to keep aligned and does not support native-looking animations like spinners.

Expected Behavior

We would love to see the Mod Harness UI (cmd.ui) enriched with standard CLI primitives:

  1. ANSI Color Support: Allow titles inside selectors to parse standard color codes (e.g. using chalk or ANSI codes) to highlight choices or display clean warnings.
  2. Native Spinners: A simple loading indicator API for long-running processes (e.g., repository checks, configuration setups):
    const spinner = cmd.ui.spinner("Loading configuration...");
    await task();
    spinner.success("Done!");
    
    

3.Layout Primitives: Simple helper functions to display dividers or panels without having to manually calculate character lengths and borders in strings.

Providing these primitives natively would allow developers to build premium, consistent community mods that look and feel like built-in features of Command Code.

Actual Behavior

Installing standard Node/Bun packages like ora or @clack/prompts, but they require direct TTY controls which the harness sandbox does not permit.

Steps to reproduce the issue
  1. create a mod
Command Code Version

1.4.2

Operating System

macOS

Terminal/IDE

ghostty

Shell

command

Additional context

No response

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず Mod Harness API の cmd.ui.select() と cmd.ui.notify() をたどり、次に ora と @clack/prompts に TTY を制御させない sandbox の制約を確認します。ANSI タイトル、ネイティブスピナー、および cmd.ui を通じて公開される divider または panel ヘルパーについて、定義済みでテスト済みのアプローチが得られれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
bun, node.js, typescript
領域
cli, developer-experience
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。