
textual-ui-developer
by massgen
textual-ui-developerは、業務プロセスの自動化を支援するスキルです。ワークフロー管理と自動化により、生産性の向上と運用効率の改善を実現します。
SKILL.md
name: textual-ui-developer description: Develop and improve the MassGen Textual TUI by running it in a browser via textual-serve and using Claude's browser tool for visual feedback.
Textual UI Developer
This skill provides a workflow for developing and improving the MassGen Textual TUI with visual feedback.
Purpose
Use this skill when you need to:
- Debug or improve the Textual TUI display
- Add new widgets or features to the TUI
- Fix styling or layout issues
- Test the TUI visually in a browser
Setup
Step 1: Ensure textual-serve is available
The textual-serve package should already be installed. If not:
uv pip install textual-serve
Step 2: Start Claude with Browser Access
Claude Code must be running with Chrome integration:
claude --chrome
Step 3: Start the Textual TUI Server
Run in background so you can continue working:
uv run massgen --textual-serve &
Or with a specific config:
uv run massgen --textual-serve --config massgen/configs/basic/three_haiku_default.yaml
Workflow
Visual Development Loop
-
Start the server in background (with optional test prompt):
# Without prompt (shows welcome screen first) uv run massgen --textual-serve & # With prompt (auto-submits when launched - faster testing!) uv run massgen --textual-serve "What is 2+2?" & -
Open in browser using browser tools:
- First call
tabs_context_mcpto get browser context - Navigate to
http://localhost:8000 - Click on the landing page card to launch the TUI
- Wait 2-3 seconds for the app to fully load
- If you used a prompt, agents will start working immediately!
- First call
-
Take screenshots at key points:
- Welcome screen (initial state)
- After submitting a question (agent panels visible)
- After agents complete (final state)
- Modals (press 's', 'o', 'v' to open Status, Events, Votes)
-
Make changes to the Textual code:
- Widget files:
massgen/frontend/displays/textual_widgets/ - Main display:
massgen/frontend/displays/textual_terminal_display.py - Themes:
massgen/frontend/displays/textual_themes/
- Widget files:
-
IMPORTANT - Restart server after changes: CSS and Python changes require restarting the server:
pkill -f "massgen --textual-serve" && pkill -f "massgen --display textual" sleep 2 uv run massgen --textual-serve &Then open a NEW browser tab to test changes.
Key Files
| File | Description |
|---|---|
massgen/frontend/displays/textual_terminal_display.py | Main Textual app and display logic |
massgen/frontend/displays/textual_widgets/ | Custom widgets (tab bar, tool cards, etc.) |
massgen/frontend/displays/textual_widgets/tab_bar.py | Agent tab switching widget |
massgen/frontend/displays/textual_widgets/tool_card.py | Tool call display cards |
massgen/frontend/displays/textual_themes/dark.tcss | Dark theme CSS |
massgen/frontend/displays/textual_themes/light.tcss | Light theme CSS |
Key Classes in textual_terminal_display.py
| Class | Purpose |
|---|---|
TextualApp | Main Textual application, handles compose, keyboard bindings, modals |
TextualTerminalDisplay | Bridge between orchestrator and TextualApp |
HeaderWidget | Top status bar showing agents, turn, question |
AgentPanel | Scrollable panel for agent output with tool cards |
WelcomeScreen | Initial splash screen with logo |
BaseModal | Base class for all modal dialogs |
VoteResultsModal, OrchestratorEventsModal, SystemStatusModal | Various info modals |
Commands Reference
# Start TUI server (default port 8000)
uv run massgen --textual-serve
# Start with a pre-filled prompt (auto-submits when TUI launches!)
uv run massgen --textual-serve "What is 2+2?"
# Start with specific config
uv run massgen --textual-serve --config path/to/config.yaml
# Start with config AND prompt
uv run massgen --textual-serve --config massgen/configs/basic/three_haiku_agents.yaml "Write a haiku"
# Start on different port
uv run massgen --textual-serve --textual-serve-port 9000
# Run TUI directly in terminal (no browser)
uv run massgen --display textual
# Kill all TUI processes
pkill -f "massgen --textual-serve" && pkill -f "massgen --display textual"
Pro tip: Using --textual-serve "prompt" auto-submits the question when you click the landing page card, saving time during iterative testing!
Keyboard Shortcuts
When the TUI is running:
s- Open System Status modalo- Open Orchestrator Events modalv- Open Voting Breakdown modalq- Quit the application1-9- Switch to agent by numberTab/Shift+Tab- Cycle through agentsCtrl+P- Open command paletteESC- Close modals (may require clicking Close button in browser)
Tips
-
Hot reload limitations: textual-serve spawns new instances per connection, but Python code changes require server restart.
-
CSS changes: Both
dark.tcssandlight.tcssneed updating for theme consistency. -
Check the console: The terminal running textual-serve shows Python errors and tracebacks.
-
Browser limitations: Some keyboard shortcuts (like ESC) may not work properly in textual-serve browser mode. The Close button always works.
-
High CPU warning: Complex tasks with many tool calls can cause high CPU usage. Use simple test prompts like "What is 2+2?" for quick UI testing.
-
Test prompts:
- Simple: "What is 2+2?" (no tools, fast)
- With tools: "Create a poem and write it to a file" (uses filesystem tools)
- Complex: "Search the web for X" (longer running)
-
Tab switching: Click directly on agent tabs or use number keys (1, 2, 3...) to switch between agents.
Common Issues
Server not reflecting changes
Solution: Kill and restart the server, then open a new browser tab.
ESC key not closing modals
Cause: Browser captures ESC before textual-serve. Solution: Click the "Close (ESC)" button instead.
Agents stuck on "Waiting for agent..."
Cause: MCP server initialization can take time. Solution: Wait 5-10 seconds, or check terminal for errors.
High CPU usage
Cause: Complex tool-using tasks or busy loops.
Solution: Use pkill -9 -f "massgen" to force kill, then restart.
Textual Resources
- Textual Docs: https://textual.textualize.io/
- Widget Gallery: https://textual.textualize.io/widget_gallery/
- CSS Reference: https://textual.textualize.io/css_types/
- textual-serve Repo: https://github.com/Textualize/textual-serve
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 500以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です
