Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
- `omnishell tui`: a full-screen terminal UI to browse modules (description,
homepage, package status, platforms, shells) with a `/` filter. Space enables
or disables the selected module in `config.toml`, like `enable` / `disable`.
`a` previews the plan; confirming it closes the UI and runs `omnishell apply`,
`o` edits the module's options (bool, enum, string and int), validated like
`omnishell set`. `a` previews the plan; confirming it closes the UI and runs `omnishell apply`,
which still asks before it changes anything. Modules that cannot run on this
host are dimmed with the reason shown. It needs an interactive terminal. It
brings the first runtime dependencies, Bubble Tea and Lip Gloss, so the
Expand Down
8 changes: 7 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,13 @@ files matters more than any single file:
`Update` stays free of I/O: toggling returns a `tea.Cmd` that writes through
`modedit.Enable`/`Disable` and then re-reads only the module statuses
(`Backend.Statuses`; `Modules` probes the package manager and takes seconds),
one write at a time. The plan screen (`a`) asks `Backend.Plan`, which is
one write at a time. The options screen (`o`) reads `Backend.Options`
(config.toml and the manifest only, so it is cheap) and writes through
`Backend.SetOption`, which is `modedit.SetOption`: bool and enum options
change on one key press, string and int options are typed and validated on
enter (a rejected value keeps the typed text), list options are shown but not
editable. The header's change count includes options whose value differs from
the first value the screen showed. The plan screen (`a`) asks `Backend.Plan`, which is
`Engine.Preview`: the plan text plus apply's own "nothing to do" rule, so the
screen never promises a change apply would not make. `y` only sets
`Result.ApplyRequested`; once the UI has closed, `internal/cli/tui.go` runs
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ your system until you run `omnishell apply`.
|----------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `omnishell init` | Create the omnishell config and hook it into your shells. Idempotent. | — |
| `omnishell list` | List known modules and their status (enabled/disabled, packages, platforms, shells, source, description). | `--json` (emit a JSON array instead of the table; also includes each module's `homepage`) |
| `omnishell tui` | Browse and toggle modules in a full-screen terminal UI: a module list with description, homepage, package status, platforms and shells, a `/` filter, and Space to enable or disable the selected module (written to `config.toml` at once, like `enable` / `disable`). `a` previews the plan; confirming it closes the UI and runs `omnishell apply`, which still asks before it changes anything. Modules that cannot run on this host are dimmed. Needs an interactive terminal (exit 2 otherwise). | — |
| `omnishell tui` | Browse and toggle modules in a full-screen terminal UI: a module list with description, homepage, package status, platforms and shells, a `/` filter, and Space to enable or disable the selected module (written to `config.toml` at once, like `enable` / `disable`). `o` edits the module's options (bool, enum, string and int; each change is written at once and validated like `omnishell set`). `a` previews the plan; confirming it closes the UI and runs `omnishell apply`, which still asks before it changes anything. Modules that cannot run on this host are dimmed. Needs an interactive terminal (exit 2 otherwise). | — |
| `omnishell enable <module>` | Enable a module in the config. Does not apply. | — |
| `omnishell disable <module>` | Disable a module in the config. Does not apply. | — |
| `omnishell set <module>.<key> <value>` | Set a module option in the config, validated against that module's option schema. | — |
Expand Down
Loading
Loading