Skip to content

feat: implement class-based plugin architecture and settings TUI#26

Merged
AkshajSinghal merged 3 commits into
TruFoundation:mainfrom
exlier:truplugin
Jun 6, 2026
Merged

feat: implement class-based plugin architecture and settings TUI#26
AkshajSinghal merged 3 commits into
TruFoundation:mainfrom
exlier:truplugin

Conversation

@exlier
Copy link
Copy Markdown
Contributor

@exlier exlier commented Jun 5, 2026

Summary

This PR implements a robust, class-based plugin architecture for TruShell, allowing developers to extend the shell via simple Python files. It also introduces a visual TUI for managing shell settings.

Key Changes

  • Plugin Engine: Added PluginManager and TruPlugin ABC. Plugins are now instantiated classes with lifecycle hooks (on_load, pre_exec, post_exec).
  • ChronoTerm Plugin: Implemented chronoterm as the first official plugin to demonstrate the new architecture.
  • Settings TUI: Added a settings command using Textual for visual configuration of themes and prompts.
  • Bug Fixes: Resolved merge conflicts in builtin_commands.md and fixed Textual container clearing issues.

Testing

  • Plugins are discovered and loaded automatically from ~/.trushell/plugins/.
  • chronoterm commands (now, world) execute correctly.
  • settings TUI opens and saves preferences to config.json.
  • Unit tests added for PluginManager and settings module.

Why This Matters

This moves TruShell from a script-based tool to a modular platform. Users can now drop a Python file into a folder to add new commands, making TruShell infinitely extensible without complex build steps.

@AkshajSinghal AkshajSinghal merged commit fe70e3a into TruFoundation:main Jun 6, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants