Convert TUI to PySide6 desktop GUI

Major UI overhaul replacing the urwid-based Terminal UI with a modern
PySide6 desktop application.

New GUI features:
- Sidebar navigation (My Tools, Registry, Providers)
- Tool Builder with visual form for creating/editing tools
- Registry browser with search and one-click install
- Provider management page
- Connect dialog for account pairing
- Publish dialog for sharing tools

- Keyboard shortcuts (Ctrl+N, Ctrl+S, Ctrl+R, Ctrl+1/2/3, Escape, Ctrl+Q)
- Window geometry persistence (remembers size/position)
- Modern clean stylesheet

Removed:
- ui.py, ui_snack.py, ui_registry.py, ui_urwid.py
- ui_urwid/ directory (urwid TUI implementation)

Updated:
- pyproject.toml: PySide6 now required, removed urwid
- CLI entry points to launch GUI
- All documentation (README, CLAUDE.md, AGENTS.md, wiki)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
This commit is contained in:
rob
2026-01-14 04:38:35 -04:00
co-authored by Claude Opus 4.5
parent 604b473806
commit 4fe2d26244
30 changed files with 2726 additions and 5102 deletions
+3 -3
View File
@@ -8,18 +8,18 @@
- `wiki/` contains additional reference material.
## Architecture Overview
- `cli.py` routes subcommands like `list`, `create`, `run`, `test`, `ui`, and `refresh`.
- `cli/` directory routes subcommands like `list`, `create`, `run`, `test`, and `refresh`.
- `tool.py` defines tool/step models and handles YAML config loading and wrapper generation.
- `runner.py` executes steps and performs `{input}`/argument variable substitution.
- `providers.py` shells out to configured AI provider CLIs (or the `mock` provider).
- `ui_urwid.py` and `ui_snack.py` provide the TUI implementations, selected by `ui.py`.
- `gui/` provides the PySide6 desktop GUI with pages for tools, registry, and providers.
## Build, Test, and Development Commands
- `pip install -e ".[dev]"` installs CmdForge in editable mode with dev dependencies.
- `pytest` runs the full test suite.
- `pytest tests/test.py::test_name` runs a focused test.
- `python -m cmdforge.cli` runs the CLI module directly.
- `cmdforge ui` launches the TUI (requires `urwid` or `python-newt`).
- `cmdforge` launches the desktop GUI (requires PySide6).
- `docker-compose build` builds the dev container image.
- `docker-compose run --rm test` runs tests inside Docker.