slopsentral command installs, updates, and removes plugins for selected harnesses.
It supports Codex CLI, GitHub Copilot CLI, Amp, and Pi.
The command uses a locked Python script through uv.
Install the command
Use a qualified release that includesinstall.sh, slopsentral.py, and its lock:
uv is absent from PATH.
An older installed uv fails the minimum-version rule without an implicit replacement.
The bootstrap preserves shell startup files.
The command needs Python 3.12 or 3.13. uv can download that runtime.
Consumers need no checkout, npm, or Pkl.
The launcher resides at ~/.local/bin/slopsentral.
It records absolute paths to uv and an immutable script copy.
If that directory is absent from PATH, add it for the shell:
Session audit
Runslopsentral audit --help for the audit commands.
See the session audit guide for Pi runs and transcript views.
Guided setup
Start the selector with either command:fzf-bin dependency supplies fzf 0.73.1 through the existing uv runtime.
A separate fzf installation is unnecessary.
The selector ignores personal FZF_* options and honors NO_COLOR.
It needs terminal input and stderr. Redirected stdout still contains one JSON result.
For automation, supply --host and --all without a selector.
Install or update all plugins
--host, these bulk commands open the harness selector and action summary.
install --all reads the catalog from the stable release archive after its digest examination.
It installs every catalog plugin. Existing native installations keep their enabled choices.
update --all selects installed Slopsentral plugins for Codex and Copilot.
For Amp, it selects links that the command manages.
An empty update succeeds without host changes. Foreign plugins remain outside the selection.
Pi delegates its aggregate operation to the existing qualified installer.
--all and --plugin are mutually exclusive. Removal needs explicit selections.
The command stops at the first harness failure and names completed harnesses on stderr.
Earlier successful operations remain in effect.
Select a host and plugins
Bootstrap installs the command only. Explicit host operations use--host.
Codex, Copilot, and Amp accept --plugin selections or --all.
Pi uses the aggregate package and rejects plugin selections.
Codex and Copilot need their host commands on
PATH.
Amp uses $XDG_CONFIG_HOME/amp/plugins or ~/.config/amp/plugins.
Pi needs the dependencies in the Pi guide.
A different existing Amp directory or an unknown marketplace named slopsentral stops installation.
Update and remove plugins
Use the same explicit scope for updates and removal:--version X.Y.Z for a named stable release.
Codex and Copilot reject that option because native marketplaces own their channels.
These commands use personal or system scope. Project registrations stay outside their scope.
Repeated installation preserves enabled choices.
Codex rejects an update for a disabled selected plugin because its reinstall operation can enable it.
Copilot uses its native update operation.
A failed native operation stops the command. Earlier successful operations remain in effect.
Amp compares installed bytes with the cached release before replacement or removal.
Removal deletes managed links and keeps cached bytes.
Pi removal preserves unrelated settings, project registrations, payloads, and private recovery records.
Its native bootstrap owns project installation and rollback.
Update or remove the command
$XDG_DATA_HOME/slopsentral/command or ~/.local/share/slopsentral/command.
Self-update keeps previous copies.
Self-removal examines their recorded digests before deletion and preserves edited files.
It preserves uv and installed host plugins.
Interrupted updates can leave an incomplete receipt or lock that later operations preserve as a conflict.
Inspect Kotlin package layout
Use the advisory detector without a host or plugin installation:--repo selects another directory. --all also supports directories outside Git.
The detector inspects packages under src/main/kotlin, src/test/kotlin, and src/integrationTest/kotlin.
It also inspects their ancestor packages within each source root.
Other Kotlin source sets remain outside this heuristic.
Repeat --changed-file for explicit paths.
Use --changed-files-file for a UTF-8 list of repository-relative paths, one per line.
An empty explicit list inspects no packages.
Missing repositories, unreadable lists, paths outside --repo, and failed Git discovery return a nonzero status.
JSON is the default output format. --format text selects text.
--summary emits JSON with ok, status, and findingCount.
A completed inspection returns status 0, including findings with status: advisory.
File counts and filename clusters cannot prove semantic defects.
The command changes no Kotlin files and needs no host command, checkout, npm, or Pkl.
The installed command bundles the canonical detector and its lock.
If an update from an older command reports an absent helper, run slopsentral self update again.
Older command versions downloaded only the Python entry point and its lock.
The second update uses the new inventory and fetches the helper.