Aider Launch API

Aider Launch-Time Configuration via Flags, YAML, and Environment Variables.

Documentation

Specifications

Other Resources

OpenAPI Specification

aider-launch-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Aider CLI Chat Launch API
  version: 0.86.1
  description: Documentation surface for the Aider command-line interface. Aider has no hosted REST API and does not bind to a network port — it runs entirely in a developer's terminal against the local Git working tree. This OpenAPI document models the Aider command surface as if it were a REST API so it can be consumed by API-centric tooling (catalogs, registries, governance rule engines, capability runtimes). Each slash command (`/add`, `/diff`, `/commit`, etc.) is modeled as a path; each launch-flag family is modeled as a configuration path. Servers and security blocks are placeholders — aider's actual security model is "use the user's local shell credentials and the LLM provider API key in the environment."
  contact:
    name: Aider Maintainers
    url: https://github.com/Aider-AI/aider/issues
  license:
    name: Apache 2.0
    url: https://github.com/Aider-AI/aider/blob/main/LICENSE.txt
  x-generated-from: documentation
  x-last-validated: '2026-05-30'
  x-source-urls:
  - https://aider.chat/docs/usage/commands.html
  - https://aider.chat/docs/usage/modes.html
  - https://aider.chat/docs/config/options.html
  - https://aider.chat/docs/llms.html
servers:
- url: cli://aider
  description: Local CLI invocation (not a network endpoint). Modeled as URI scheme `cli://aider` for catalog tooling.
- url: file:///usr/local/bin/aider
  description: Typical install path for the `aider` entrypoint.
security:
- LLMProviderKey: []
tags:
- name: Launch
  description: Aider Launch-Time Configuration via Flags, YAML, and Environment Variables.
paths:
  /launch/config:
    get:
      operationId: getLaunchConfig
      summary: Aider Get Launch Configuration
      description: Inspect the active launch configuration assembled from `.aider.conf.yml`, environment variables, and command-line flags. Modeled here as a configuration resource; no real HTTP endpoint exists.
      tags:
      - Launch
      responses:
        '200':
          description: Launch configuration returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LaunchConfig'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateLaunchConfig
      summary: Aider Update Launch Configuration
      description: Update the launch configuration by writing `.aider.conf.yml` or `.env`. Modeled as an idempotent PUT.
      tags:
      - Launch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LaunchConfig'
      responses:
        '200':
          description: Configuration updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LaunchConfig'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    LaunchConfig:
      type: object
      description: Composite view of `.aider.conf.yml`, `.env`, and the active CLI flag set. Aider does not expose this over HTTP; it is reconstructed from the local environment.
      properties:
        model:
          type: string
          example: anthropic/claude-opus-4
        weak_model:
          type: string
          example: anthropic/claude-haiku-4
        editor_model:
          type: string
          example: anthropic/claude-sonnet-4
        edit_format:
          type: string
          enum:
          - diff
          - whole
          - udiff
          - editor-diff
          example: diff
        chat_mode:
          type: string
          enum:
          - code
          - architect
          - ask
          - help
          - context
          example: code
        reasoning_effort:
          type: string
          example: medium
        thinking_tokens:
          type: string
          example: 16k
        auto_commits:
          type: boolean
          example: true
        dirty_commits:
          type: boolean
          example: false
        auto_lint:
          type: boolean
          example: true
        auto_test:
          type: boolean
          example: false
        test_cmd:
          type: string
          example: pytest -x
        lint_cmd:
          type: string
          example: ruff check --fix
        watch_files:
          type: boolean
          example: false
        stream:
          type: boolean
          example: true
        dark_mode:
          type: boolean
          example: true
        code_theme:
          type: string
          example: monokai
        gitignore:
          type: boolean
          example: true
        chat_history_file:
          type: string
          example: .aider.chat.history.md
        api_keys:
          type: object
          description: Provider-keyed API key map. Keys come from the environment, not from this document.
          additionalProperties:
            type: string
          example:
            ANTHROPIC_API_KEY: <redacted>
            OPENAI_API_KEY: <redacted>
        env_var_prefix:
          type: string
          description: All flags can be set via `AIDER_<UPPERCASE_FLAG>` environment variables.
          example: AIDER_
        config_file_path:
          type: string
          description: Resolution order for the YAML config file.
          example: ./.aider.conf.yml | ~/.aider.conf.yml
  securitySchemes:
    LLMProviderKey:
      type: apiKey
      in: header
      name: X-Provider-API-Key
      description: Placeholder for documentation purposes. Aider does not authenticate with an "aider API"; it reads the relevant upstream provider key (ANTHROPIC_API_KEY, OPENAI_API_KEY, etc.) from the local environment and passes it to the chosen LLM provider directly.