> ## Documentation Index
> Fetch the complete documentation index at: https://docs.runaether.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Choose what your agent thinks with and its model

> Sets what your personal agent thinks with, aether (Aether inference, paid from your balance and held to the daily cap) or claude (your stored Claude Code credential: your Claude plan's setup token or your Anthropic API key), and the model it converses on, together. Scheduled jobs run on Claude Haiku 5.5 unless a job names a model. Hermes applies a change when it next starts: an agent that is running restarts once it takes commands; setting what it already holds changes nothing, except that while the agent is going to sleep or pausing even that is refused (409 agent_host_illegal_transition). 400 for a thinks_with or model outside the listed values; 409 agent_inference_not_connected for claude without your Claude Code credential stored; 409 agent_host_illegal_transition while the agent is going to sleep or pausing.



## OpenAPI

````yaml api-reference/openapi.account.json PUT /agent/inference
openapi: 3.1.0
info:
  title: Aether Account & Integrations API
  version: 0.1.0
  description: >-
    Account, billing, and integration-management endpoints used by the Aether
    web app and CLI. Root-mounted; NOT part of the versioned /v1 contract.
servers:
  - url: https://api.runaether.dev
security:
  - bearerAuth: []
paths:
  /agent/inference:
    put:
      tags:
        - agent
      summary: Choose what your agent thinks with and its model
      description: >-
        Sets what your personal agent thinks with, aether (Aether inference,
        paid from your balance and held to the daily cap) or claude (your stored
        Claude Code credential: your Claude plan's setup token or your Anthropic
        API key), and the model it converses on, together. Scheduled jobs run on
        Claude Haiku 5.5 unless a job names a model. Hermes applies a change
        when it next starts: an agent that is running restarts once it takes
        commands; setting what it already holds changes nothing, except that
        while the agent is going to sleep or pausing even that is refused (409
        agent_host_illegal_transition). 400 for a thinks_with or model outside
        the listed values; 409 agent_inference_not_connected for claude without
        your Claude Code credential stored; 409 agent_host_illegal_transition
        while the agent is going to sleep or pausing.
      operationId: setAgentInference
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetAgentInferenceRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Agent'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgAuthorizationErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
          description: Internal Server Error
components:
  schemas:
    SetAgentInferenceRequest:
      additionalProperties: false
      properties:
        model:
          description: >-
            The model your agent converses on: claude-fable-5-1,
            claude-opus-5-5, claude-sonnet-5-5 or claude-haiku-5-5.
          type: string
        thinks_with:
          description: >-
            What your agent thinks with: aether or claude. claude needs your
            Claude Code credential stored.
          type: string
      required:
        - thinks_with
        - model
      type: object
    Agent:
      additionalProperties: false
      properties:
        browser_tools:
          description: >-
            Whether your agent may drive a browser. Off by default; a change
            applies when Hermes next starts, which a running agent does at once.
          type: boolean
        created_at:
          format: date-time
          type: string
        cron_model:
          description: >-
            The model your agent's scheduled jobs run on, unless a job names
            another.
          enum:
            - claude-fable-5-1
            - claude-opus-5-5
            - claude-sonnet-5-5
            - claude-haiku-5-5
          type: string
        default_project_id:
          description: >-
            The project a task your agent starts runs on when it names no
            repository. Without it such a task is refused.
          format: uuid
          type: string
        id:
          format: uuid
          type: string
        last_used_at:
          description: >-
            When your agent was created or resumed, was sent a message, or last
            worked. Thirty days unused pauses it.
          format: date-time
          type: string
        model:
          description: The model your agent converses on.
          enum:
            - claude-fable-5-1
            - claude-opus-5-5
            - claude-sonnet-5-5
            - claude-haiku-5-5
          type: string
        state:
          description: >-
            The host's lifecycle state. running: Hermes takes messages now;
            suspending and idle: asleep, woken by the next message; waking,
            resuming: coming up for a message; provisioning and booting: being
            created; updating: moving onto a new image; pausing and paused:
            backed up after thirty days unused, or paused by you, and resumed by
            you (a message from the web does not resume it); lost: its machine
            is gone and only deleting it helps; destroying: being deleted.
          enum:
            - provisioning
            - booting
            - running
            - suspending
            - idle
            - waking
            - updating
            - pausing
            - paused
            - resuming
            - lost
            - destroying
            - destroyed
          type: string
        thinks_with:
          description: >-
            What your agent thinks with: aether, Aether inference, paid from
            your balance and held to the daily cap; claude, your Claude Code
            credential, your Claude plan's setup token or your Anthropic API
            key, neither paid from your balance nor held to the cap.
          enum:
            - aether
            - claude
          type: string
      required:
        - id
        - state
        - browser_tools
        - thinks_with
        - model
        - cron_model
        - last_used_at
        - created_at
      type: object
    ErrorResponse:
      additionalProperties: false
      properties:
        code:
          type: string
        error:
          minLength: 1
          type: string
        errors:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
      required:
        - error
      type: object
    OrgAuthorizationErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - org_membership_required
            - org_role_insufficient
            - org_suspended
            - account_deleting
          type: string
        error:
          minLength: 1
          type: string
      required:
        - error
        - code
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.