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

# Version

> Retrieve the version of the agent.



## OpenAPI

````yaml /references/device-api/v0.2.2/api.yaml get /version
openapi: 3.0.3
info:
  title: Miru Agent API
  description: >-
    The API between the Miru Agent and any external client living on the same
    device as the Miru Agent
  version: v0.2
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  x-release-version: v0.2.2
  x-git-commit:
    sha: 97aec4ae3541349ead148f90acedb59b0f543fdb
    url: >-
      https://github.com/mirurobotics/openapi/commit/97aec4ae3541349ead148f90acedb59b0f543fdb
    message: |-
      docs(stlc): how to change SDK custom code (#307)

      ## Why

      Hand-written SDK code goes back to stlc's intended flow (upstream docs:
      "Custom code" and "Branching and collaboration"):
      1. Edit the code in a local checkout of the staging SDK repo.
      2. Seal it with `stlc build`.
      3. Merge the tracking file through a PR here.

      A tracking file shows only two commit IDs, so the code itself needs
      somewhere to be reviewed. That's why we tried merging PRs into the
      staging repos (mirurobotics/infra#294), which stlc doesn't support.
      mirurobotics/python-device-sdk-staging#3 needed a manual re-seal (#305),
      and mirurobotics/infra#299 turns those merges off again.

      This PR documents the flow, with the review happening in a **review-only
      PR on the staging repo**.

      ## What

      New `docs/sdk-custom-code.md`, linked from the README:
      - **What custom code is:** what tracking files hold and how stlc applies
      them.
      - **Rules:**
        - nothing merges into staging `main`; PRs there are for review only;
        - prefer config over code;
        - put new code in `src/<package>/lib/`.
      - **Steps:**
        1. `stlc build` to get the local checkout.
      2. Commit on a `custom-code/<topic>` branch from staging `origin/main`,
      so the diff is only the change.
      3. Open a review-only PR on the staging repo. GitHub shows the change
      and the AI review runs.
      4. Cherry-pick the commit onto local `main` and `stlc build` to seal it.
      5. Open the tracking-file PR here, linking the staging PR, and close the
      staging PR after it lands.

      An earlier version of this PR added a CI job that commented the
      custom-code diff here. It's removed in favour of reviewing in the SDK
      repo, so the PR is now docs only.

      ## Depends on

      mirurobotics/infra#299. Until it's applied, a review PR on
      `python-device-sdk-staging` could still be merged, which is the
      situation #305 had to repair.

      🤖 Generated with [Claude Code](https://claude.com/claude-code)

      ---------

      Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
    author: ben-miru
    branch: HEAD
    dirty: false
  x-build:
    built_at: '2026-10-09T18:04:19.383464+00:00'
servers:
  - url: http://localhost/v0.2
    description: localhost
security:
  - {}
  - BearerAuth: []
paths:
  /version:
    get:
      tags:
        - Agent
      summary: Version
      description: Retrieve the version of the agent.
      operationId: version
      responses:
        '200':
          description: Successfully retrieved the version of the agent.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionResponse'
      x-codeSamples:
        - lang: curl
          label: curl (Linux)
          source: |-
            curl \
              --unix-socket /run/miru/miru.sock \
              --request GET \
              --url http://localhost/v0.2/version
        - lang: powershell
          label: PowerShell (Windows)
          source: >-
            $api = Get-Content -Raw
            "$env:ProgramData\Miru\device-api\device-api.json" |
            ConvertFrom-Json; `

            Invoke-RestMethod -Method Get `
              -Uri "http://127.0.0.1:$($api.port)/v0.2/version" `
              -Headers @{ Authorization = "Bearer $($api.token)" }
        - lang: Python
          source: |-
            from miru_device_sdk import Miru

            client = Miru()
            response = client.agent.version()
            print(response.api_git_commit)
components:
  schemas:
    VersionResponse:
      type: object
      required:
        - version
        - git_commit
        - api_version
        - api_git_commit
        - api_release_version
        - rust_version
        - build_date
        - os
        - arch
      properties:
        version:
          type: string
          description: The version of the agent.
          example: v1.0.0
        git_commit:
          type: string
          description: The git commit of the agent.
          example: a1b2c3d4
        api_version:
          type: string
          description: The API version of the agent.
          example: v1-0
        api_git_commit:
          type: string
          description: The git commit of the API.
          example: a1b2c3d4
        api_release_version:
          type: string
          description: The API release version of the agent.
          example: v0.2.0-beta.1
        rust_version:
          type: string
          description: The version of Rust.
          example: 1.93.0
        build_date:
          type: string
          format: date-time
          description: The build date of the agent.
          example: '2026-02-24T10:30:00Z'
        os:
          type: string
          description: The operating system of the agent.
          example: linux
        arch:
          type: string
          description: The architecture of the agent.
          example: aarch64
      example:
        version: v1.0.0
        git_commit: a1b2c3d4
        api_version: v1-0
        api_git_commit: a1b2c3d4
        api_release_version: v0.2.0-beta.1
        rust_version: 1.93.0
        build_date: '2026-02-24T10:30:00Z'
        os: linux
        arch: aarch64
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        The token from the agent's discovery file. Required over loopback TCP;
        not used over the Unix socket.

````

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