Skip to content

[Feature]: Feature Request: Support Claude Code / Claude Team Authentication as Hermes Provider #32392

Description

@vimox-shah-genea

Problem

Currently Hermes supports Anthropic models through the anthropic provider, which requires API access and API billing.

However, many users already have access to Claude through:

  • Claude Team / Enterprise plans
  • Claude Pro subscriptions
  • claude CLI login (claude login)
  • Claude Code terminal workflows

At the moment, Hermes appears to route Claude models through the Anthropic API endpoint only, which means users with valid Claude Team access cannot use Hermes without separate API billing.

Example behavior:

model:
  default: claude-opus-4-7
  provider: anthropic

Results in:

Provider: anthropic
Endpoint: https://api.anthropic.com
HTTP 429 / API quota / API key requirement

even when claude terminal login is already authenticated and working.

Expected Behavior

Allow Hermes to use an authenticated Claude Code session (claude login) as a provider/backend.

Example:

model:
  default: claude-opus-4-7
  provider: claude-code

or:

hermes model
# select:
Provider → Claude Code

Hermes should reuse existing local Claude credentials and invoke Claude through the local CLI instead of direct Anthropic API calls.

Proposed Implementation

Introduce a new provider:

claude-code

Implementation concept:

Hermes Provider Interface
        ↓
ClaudeCodeProvider
        ↓
spawn local `claude -p`
        ↓
stream stdout/stderr
        ↓
return response to Hermes

Potential benefits:

  • Enables Claude Team / Pro / Enterprise users
  • Avoids requiring separate Anthropic API billing
  • Better alignment with Claude Code workflows
  • Easier adoption for developers already using claude terminal
  • Can reuse existing authenticated session (claude login)

Environment

  • Hermes Agent: v0.14.0
  • Claude Code CLI: authenticated and working
  • Claude Team subscription
  • Hermes configured with provider: anthropic

Observed that claude-code currently exists as a skill, but not as a model/provider backend.

Proposed Solution

Proposed Solution

Add a new Hermes provider that uses an authenticated local Claude Code session instead of the Anthropic API.

New Provider

Introduce a provider such as:

model:
  default: claude-opus-4-7
  provider: claude-code

or expose it through:

hermes model
Provider:
- anthropic
- openai
- bedrock
- claude-code

Authentication

Reuse the existing authenticated Claude Code session from:

claude login

Hermes should detect and leverage the local Claude authentication state rather than requiring ANTHROPIC_API_KEY.

Example flow:

User logs into Claude Code
        ↓
claude login
        ↓
Hermes detects active Claude session
        ↓
Hermes uses Claude Code as backend

Execution Model

Instead of sending requests to:

https://api.anthropic.com

Hermes invokes the local Claude CLI:

claude -p "<prompt>"

or equivalent structured CLI mode if available.

High-level flow:

Hermes Agent
      ↓
ClaudeCodeProvider
      ↓
Local `claude` CLI process
      ↓
Streaming response
      ↓
Hermes orchestration layer

Benefits

  • Enables Claude Team / Pro / Enterprise users without separate API billing
  • Reuses existing authenticated Claude Code session
  • Better developer experience for users already working in Claude terminal
  • Consistent with local-agent workflows
  • Removes friction for experimentation and adoption

Fallback Behavior

If Claude Code is not installed or not authenticated:

claude auth status

Hermes should surface a clear setup message and optionally fall back to configured providers.

Example:

Claude Code not authenticated.
Run `claude login` or select another provider.

Alternatives Considered

No response

Feature Type

New tool

Scope

None

Contribution

  • I'd like to implement this myself and submit a PR

Debug Report (optional)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low — cosmetic, nice to havearea/authAuthentication, OAuth, credential poolsprovider/anthropicAnthropic native Messages APIsweeper:not-plannedSweeper: closed per standing maintainer policy (design direction)type/featureNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions