[Feature] Implement a Command-Line Interface (CLI) Master Menu using Textual #1421 - #1675
Merged
steam-bell-92 merged 3 commits intoJul 12, 2026
Merged
Conversation
|
@knoxiboy is attempting to deploy a commit to the Anuj's projects Team on Vercel. A member of the Team first needs to authorize it. |
Contributor
|
🎉 Thank you for your contribution! Your Pull Request has been merged successfully. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📝 Description
What: Implements a unified, interactive Terminal UI (TUI) master menu using the Textual framework, replacing the previous
input()-based console launcher.Why: Currently, to run any mini-project (game, utility, math tool), a user must manually navigate to the folder and execute the specific script. This TUI provides a single entry point (
python main.py) to browse, search, filter, and launch all projects interactively.How:
main.pydynamically scans thegames/,math/,security/, andutilities/directories at startup, matching discovered scripts againstprojects_registry.jsonfor rich metadata (emoji, difficulty, description). For scripts not in the registry, it falls back to AST-based docstring extraction.App.suspend()), runs the script viasubprocess.run()in the full terminal, and resumes the TUI on completion.g/m/c/u/afor category switching,sfor search focus,qto exit.main.pyto keep scanning logic and helpers fully decoupled from Textual imports. This allows unit tests (run in CI with onlypytestinstalled) to import and verify scanning logic without throwing import errors.Files changed:
main.pyrequirements.txttextual>=0.50.0tests/test_main_tui.py🔗 Linked Issue
Closes #1421
📋 Contribution Checklist