Add neo-tui console UI with plugin load and live show state - #1099
Open
cschuchardt88 wants to merge 12 commits into
Open
Add neo-tui console UI with plugin load and live show state#1099cschuchardt88 wants to merge 12 commits into
cschuchardt88 wants to merge 12 commits into
Conversation
System.CommandLine exposes every ConsoleCommand. Spectre.Console provides category menus, a command palette, and a line editor with history, Tab complete, and hotkeys. Hosts MainService so behavior matches neo-cli. No PR; local test build.
RootCommand had no action, so System.CommandLine printed Required command was not provided. Default to the interactive UI and load config.json next to the executable when cwd has none.
Copy plugins next to the exe, register plugin commands after start, and open on a show-state dashboard with connected peers. Command output is a popup with wait spinner and rerun.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master-n3 #1099 +/- ##
=============================================
- Coverage 51.48% 51.47% -0.02%
=============================================
Files 284 284
Lines 16699 16715 +16
Branches 2148 2149 +1
=============================================
+ Hits 8598 8604 +6
- Misses 7527 7536 +9
- Partials 574 575 +1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
17 tasks
Member
|
I like it, @superboyiii could you test it please? |
Member
Sure |
superboyiii
reviewed
Sep 2, 2026
Member
|
Another changes are good. Tested. |
Co-authored-by: Owen <38493437+superboyiii@users.noreply.github.com>
superboyiii
approved these changes
Sep 4, 2026
ajara87
approved these changes
Sep 4, 2026
vncoelho
approved these changes
Sep 4, 2026
Member
|
@shargon merge? |
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.
Summary
neo-tui(src/Neo.ConsoleUI) is a cross-platform console UI for neo-cli (Windows, Linux, macOS). It is meant to replaceneo-gui, the Windows-only desktop app: same node (MainService), same plugins, same commands, without WinForms.It starts the same
MainServicenode, loads plugins the same way, and then shows a live show state dashboard instead of a line prompt.Docs and screenshots:
docs/neo-tui/README.mdStartup flags match neo-cli:
--config/-c,--wallet/-w,--password/-p,--db-engine,--db-path,--plugins,--noverify.Live status
The home screen is neo-cli
show state, refreshed in place: blockchain, memory/CPU, mempool, network, sync bar, wallet, and loaded plugins.CONNECTED PEERS comes from
LocalNode.GetRemoteNodes()(address, height, user agent). The title sits on the time/uptime row; the table lines up with BLOCKCHAIN STATUS. Five rows are visible; extra peers scroll with Up/Down (also J/K, PgUp/PgDn, Home/End).M/ EnterCneo>prompt as neo-cli)HQ/ EscMenus and command output
Output stays on this console:
Command line (
C) — sameneo>prompt as neo-cli:Plugin loading (same path as neo-cli)
AppContext.BaseDirectory(Plugins/,config.json, auto-install zips).MainService.WhenStartedbefore building the command catalog, then scansPlugin.Pluginsfor[ConsoleCommand].--pluginsis forwarded to neo-cli.bin/$(Configuration)/$(TargetFramework)/Plugins/<Name>/(created if missing), plus extra dependency dlls and RID natives (libleveldb.dll, …) next to the exe. Same copy for neo-cli and neo-tui (src/NodePlugins.props,src/CopyNodePlugins.targets).Implementation notes
MainService.WhenStartedcompletes afterStartCoreso the TUI does not race plugin registration.CreateBroadcastTask/GetMaxPeerBlockHeightareinternal(InternalsVisibleToneo-tui).docs/neo-tui/.