feat(cli): make hermes portal the human-readable Portal onboarding alias#38449
Merged
kshitijk4poor merged 2 commits intoJun 3, 2026
Merged
Conversation
…alias `hermes portal` (no subcommand) now runs the one-shot Nous Portal onboarding — OAuth login, switch provider to Nous, offer Tool Gateway — identical to `hermes setup --portal` and the human-readable alias for `hermes auth add nous --type oauth` (which still works). The prior status default moves to `hermes portal info`; `status` is kept as a hidden back-compat alias. `open`/`tools` subcommands are unchanged. User-facing hints and docs (status.py, conversation_loop 401 guidance, SystemPage, README, website docs + zh-Hans) now point at `hermes portal` / `hermes portal info`. `--manual-paste` references keep the explicit auth command since `hermes portal` does not expose that flag.
The two retry hints inside _run_portal_one_shot (shown when the OAuth login fails) still suggested `hermes auth add nous --type oauth`. Since this path backs both `hermes portal` and `hermes setup --portal`, point users at the new human-readable `hermes portal` for consistency.
davidgut1982
pushed a commit
to davidgut1982/hermes-agent
that referenced
this pull request
Jun 5, 2026
…-alias feat(cli): make `hermes portal` the human-readable Portal onboarding alias
1 task
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.
What
Running
hermes portalwith no subcommand now performs the one-shot Nous Portal onboarding — OAuth login, switch the inference provider to Nous, and offer the Tool Gateway opt-in. It's the human-readable alias forhermes auth add nous --type oauthand is identical tohermes setup --portal.The prior status default moves to
hermes portal info.statusis retained as a hidden back-compat alias so existing muscle memory / docs links keep working.openandtoolssubcommands are unchanged.Why
hermes auth add nous --type oauthis a mouthful for the single most common Portal action (logging in).hermes portalis the obvious, memorable front door. Reusing the existing_run_portal_one_shot()(the same wiring behindhermes setup --portal) keeps the three entry points in lockstep.Implementation
hermes_cli/portal_cli.py: bare/login→_cmd_login→_run_portal_one_shot();info/status→ status view; newlogin/infoparsers, hiddenstatusalias.hermes portal/hermes portal info:status.py,conversation_loop.py(401 re-auth guidance),SystemPage.tsx,setup.pyclosing hint, README + README.zh-CN, and website docs (EN + zh-Hans).--manual-pastereferences keep the explicithermes auth add nous --type oauth --manual-pastesincehermes portaldoes not expose that flag.Notes
hermes auth add nous --type oauthis unchanged and still works.hermes portalbecauseget_nous_auth_status()validates by resolving runtime credentials, so a revoked/expired session re-triggers the device-code flow (it does not get skipped as 'already logged in').Testing
tests/hermes_cli/test_portal_cli.py: dispatch (bare/login/info/status/open/tools), unknown-subcommand error, cancelled login, parser registration.test_status.pyandtest_nous_oauth_401_guidance.pyassertions to the new strings.hermes portal -h,hermes portal info,hermes portal status(alias), and barehermes portalrunning the full one-shot onboarding.Closes nothing — UX improvement.