Skip to content

feat(cli): add option to hide the startup banner - #74281

Open
konsisumer wants to merge 1 commit into
NousResearch:mainfrom
konsisumer:feat/disable-startup-banner
Open

feat(cli): add option to hide the startup banner#74281
konsisumer wants to merge 1 commit into
NousResearch:mainfrom
konsisumer:feat/disable-startup-banner

Conversation

@konsisumer

Copy link
Copy Markdown
Contributor

What changed and why

  • Supersedes closed feat(cli): add display.show_banner option for minimal startup #23679 with its display.show_banner option for the classic CLI. Set display.show_banner: false to clear the screen without rendering the startup or /clear banner; diagnostic warnings continue to appear.
  • Adds display.show_banner: true to the shared DEFAULT_CONFIG, so fresh, setup, and reset configurations resolve the documented default consistently.
  • Adds coverage for full and compact banner suppression, /clear, and the shared config default.

How to test

  • Run pytest tests/cli/test_cli_show_banner_option.py tests/cli/test_cli_context_warning.py -q -x --timeout=60.
  • Run pytest tests/ -q -x --timeout=60.
  • Start the classic CLI with display.show_banner: false and run /clear; the screen clears without the banner while warnings are still rendered.

What platforms tested on

  • macOS (Darwin)

Fixes #23487

@alt-glitch alt-glitch added type/feature New feature or request comp/cli CLI entry point, hermes_cli/, setup wizard area/config Config system, migrations, profiles P3 Low — cosmetic, nice to have sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades labels Jul 29, 2026

@teknium1 teknium1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for carrying forward #23679 and adding the shared default that its discussion identified as missing. The feature premise remains valid on current main: cli.py:7051-7081 always renders the startup banner, and the prompt-toolkit /clear redraw independently renders one at cli.py:9639-9659.

Problems

  • cli-config.yaml.example:1264 and PR cli.py:4165 say the option applies on /new. On current main, /new only calls new_session() (cli.py:9744-9757); /clear is the command that clears and redraws the banner (cli.py:9614-9674). This should be documented as /clear.

Suggested changes

  • Replace /new with /clear in those two new comments. The implementation correctly gates both the ordinary show_banner() path and the separate prompt-toolkit /clear path, while retaining the diagnostic code after the visual-banner guard.

Automated hermes-sweeper review.

Comment thread cli-config.yaml.example Outdated
@@ -1261,6 +1261,14 @@ display:
# false: Full ASCII banner with tool/skill summary (default)
compact: false

# Show the welcome banner at startup and on /new.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/new only rotates the session; it does not redraw a banner. The redraw path this option gates is /clear (cli.py:9614-9674 on current main), so please name /clear here.

@teknium1 teknium1 added the sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform label Jul 30, 2026
@konsisumer

Copy link
Copy Markdown
Contributor Author

Thanks for the review. Addressed in this push:

  • Command reference: corrected both new show_banner comments to document the startup and /clear banner paths, rather than /new.

Validation: ruff check on changed Python files; focused CLI tests (16 passed); full test suite passed.

@konsisumer
konsisumer force-pushed the feat/disable-startup-banner branch from 48c5807 to 9b5292b Compare August 10, 2026 22:39
@konsisumer

Copy link
Copy Markdown
Contributor Author

Rebased onto current origin/main and resolved the cli.py conflict by retaining main's banner-snapshot path under display.show_banner. Corrected the formatter-required test layout.

Focused CLI tests passed (13 passed); changed-file Ruff and Windows-footgun checks passed. The bounded full suite was started but did not return a usable completion record in this environment.

The 5-file, 456-line diff remains the original feature scope: the 209-line new test file was pre-existing PR content, and the extra cli.py churn is necessary to rebase the guard around main's refactored banner method.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/config Config system, migrations, profiles comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Option to disable new session banner/info

3 participants