Skip to content

feat(cli): make hermes portal the human-readable Portal onboarding alias#38449

Merged
kshitijk4poor merged 2 commits into
NousResearch:mainfrom
kshitijk4poor:portal-login-alias
Jun 3, 2026
Merged

feat(cli): make hermes portal the human-readable Portal onboarding alias#38449
kshitijk4poor merged 2 commits into
NousResearch:mainfrom
kshitijk4poor:portal-login-alias

Conversation

@kshitijk4poor

Copy link
Copy Markdown
Collaborator

What

Running hermes portal with 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 for hermes auth add nous --type oauth and is identical to hermes setup --portal.

The prior status default moves to hermes portal info. status is retained as a hidden back-compat alias so existing muscle memory / docs links keep working. open and tools subcommands are unchanged.

Why

hermes auth add nous --type oauth is a mouthful for the single most common Portal action (logging in). hermes portal is the obvious, memorable front door. Reusing the existing _run_portal_one_shot() (the same wiring behind hermes 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; new login/info parsers, hidden status alias.
  • Updated user-facing hints to prefer hermes portal / hermes portal info: status.py, conversation_loop.py (401 re-auth guidance), SystemPage.tsx, setup.py closing hint, README + README.zh-CN, and website docs (EN + zh-Hans).
  • --manual-paste references keep the explicit hermes auth add nous --type oauth --manual-paste since hermes portal does not expose that flag.

Notes

  • hermes auth add nous --type oauth is unchanged and still works.
  • The 401 re-auth hint can safely point at hermes portal because get_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

  • New tests/hermes_cli/test_portal_cli.py: dispatch (bare/login/info/status/open/tools), unknown-subcommand error, cancelled login, parser registration.
  • Updated test_status.py and test_nous_oauth_401_guidance.py assertions to the new strings.
  • Verified locally on the running CLI: hermes portal -h, hermes portal info, hermes portal status (alias), and bare hermes portal running the full one-shot onboarding.

Closes nothing — UX improvement.

…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.
@alt-glitch alt-glitch added type/feature New feature or request P3 Low — cosmetic, nice to have comp/cli CLI entry point, hermes_cli/, setup wizard area/auth Authentication, OAuth, credential pools provider/nous Nous Research API (OAuth) labels Jun 3, 2026
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.
@kshitijk4poor kshitijk4poor merged commit d4787d3 into NousResearch:main Jun 3, 2026
23 checks passed
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/auth Authentication, OAuth, credential pools comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have provider/nous Nous Research API (OAuth) type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants