openapi: 3.0.3 info: title: Aider CLI Chat Editing 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: Editing description: Aider Commands That Drive Code Edits and Diffs. paths: /commands/code: post: operationId: requestCodeEdit summary: Aider Request Code Edit description: Ask for changes to your code. Maps to the `/code` in-chat command (also the default mode behavior). tags: - Editing requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EditRequest' responses: '200': description: Edits applied and committed. content: application/json: schema: $ref: '#/components/schemas/EditResult' x-microcks-operation: delay: 0 dispatcher: FALLBACK /commands/architect: post: operationId: architectMode summary: Aider Enter Architect Mode description: Enter architect/editor mode using 2 different models — a reasoning model proposes, an editor model executes file edits. Maps to `/architect`. tags: - Editing requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EditRequest' responses: '200': description: Architect plan executed by editor model. content: application/json: schema: $ref: '#/components/schemas/EditResult' x-microcks-operation: delay: 0 dispatcher: FALLBACK /commands/diff: get: operationId: showDiff summary: Aider Show Diff Since Last Message description: Display the diff of changes since the last message. Maps to `/diff`. tags: - Editing responses: '200': description: Unified diff returned. content: application/json: schema: $ref: '#/components/schemas/DiffResult' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: EditRequest: type: object required: - prompt properties: prompt: type: string description: Natural-language instruction to apply to the in-chat files. example: Refactor the cache layer to use an LRU eviction policy and add unit tests. edit_format: type: string description: Edit format the LLM should produce. enum: - diff - whole - udiff - editor-diff example: diff auto_commit: type: boolean description: Whether to auto-commit edits via Git. Defaults to the launch-time setting. default: true example: true EditResult: type: object properties: files_changed: type: array description: File paths modified by this edit. items: type: string example: src/main.py example: - src/main.py commit_sha: type: string description: Git commit SHA produced by auto-commit. example: a1b2c3d4e5f6 commit_message: type: string description: Auto-generated conventional commit message. example: 'feat(cache): switch to LRU eviction policy' tokens_in: type: integer description: Prompt tokens sent to the LLM. example: 4231 tokens_out: type: integer description: Completion tokens received from the LLM. example: 1284 DiffResult: type: object properties: unified_diff: type: string description: Unified diff of all files changed since the last user message. example: '--- a/src/main.py +++ b/src/main.py @@ -1,3 +1,3 @@ -print(''hi'') +print(''hello'') ' files_changed: type: array items: type: string example: src/main.py example: - src/main.py 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.