feat(plugins): tabulate plugin list output#23727
Merged
Merged
Conversation
bdb7518 to
4a214ce
Compare
xli-oai
approved these changes
May 20, 2026
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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
codex plugin listas one table per marketplace with the marketplace manifest path shown above each tableinstalled_versionthrough marketplace listing stateVERSIONempty for cached-but-unconfigured pluginsRationale
The plugin list UX was hard to scan as a flat list and did not show which installed version was active. This change makes the CLI output easier to read in the real multi-marketplace case, keeps the plugin path visible, fixes the Sapphire regression where bundled/runtime marketplace roots were blocking
plugin list, and addresses the two review findings that came out of the follow-up deep review.Key Decisions
VERSIONas the installed version, which means it is empty until a plugin is actually installedinstalled_versionon actual installed state soVERSIONcannot show stale cache state fornot installedrowsValidation
just fmtcargo test -p codex-cli --test plugin_cli(14 passed; 0 failed)cargo run -q -p codex-cli -- plugin add sample@debugcargo run -q -p codex-cli -- plugin listfailed to load configured marketplace snapshot(s)forcustom-marketplacesample@debug not installedrenders with an emptyVERSIONcolumnSample Output