> ## Documentation Index
> Fetch the complete documentation index at: https://allhandsai-chore-regenerate-agent-sdk-openapi.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Install Skill Endpoint

> Install a skill from a source.

Installs a skill from a git URL, GitHub shorthand, or local path into
the user's installed skills directory (~/.openhands/skills/installed/).

Args:
    request: InstallSkillRequest containing source and options.

Returns:
    InstalledSkillResponse with details about the installation.

Raises:
    HTTPException 409: If skill is already installed and force=False.
    HTTPException 400: If fetching the skill source fails.
    HTTPException 422: If the skill is invalid.



## OpenAPI

````yaml /openapi/agent-sdk.json post /api/skills/install
openapi: 3.1.0
info:
  description: OpenHands Agent Server - REST/WebSocket interface for OpenHands AI Agent
  title: OpenHands Agent Server
  version: 1.52.0
servers: []
security: []
paths:
  /api/skills/install:
    post:
      tags:
        - Skills
      summary: Install Skill Endpoint
      description: |-
        Install a skill from a source.

        Installs a skill from a git URL, GitHub shorthand, or local path into
        the user's installed skills directory (~/.openhands/skills/installed/).

        Args:
            request: InstallSkillRequest containing source and options.

        Returns:
            InstalledSkillResponse with details about the installation.

        Raises:
            HTTPException 409: If skill is already installed and force=False.
            HTTPException 400: If fetching the skill source fails.
            HTTPException 422: If the skill is invalid.
      operationId: install_skill_endpoint_api_skills_install_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstallSkillRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstalledSkillResponse'
          description: Successful Response
        '400':
          description: Failed to fetch skill source
        '409':
          description: Skill already installed (use force=true)
        '422':
          description: Invalid skill (missing SKILL.md, etc.)
      security:
        - APIKeyHeader: []
components:
  schemas:
    InstallSkillRequest:
      description: Request body for installing a skill.
      properties:
        force:
          default: false
          description: If true, overwrite existing installation
          title: Force
          type: boolean
        ref:
          anyOf:
            - type: string
            - type: 'null'
          description: Optional branch, tag, or commit to install
          title: Ref
        repo_path:
          anyOf:
            - type: string
            - type: 'null'
          description: Subdirectory path within the repository (for monorepos)
          title: Repo Path
        source:
          description: >-
            Skill source - git URL, GitHub shorthand, or local path. Examples:
            'https://github.com/OpenHands/extensions/tree/main/skills/github',
            'github:OpenHands/extensions/skills/github', '/path/to/skill'
          minLength: 1
          title: Source
          type: string
      required:
        - source
      title: InstallSkillRequest
      type: object
    InstalledSkillResponse:
      description: Response containing installed skill information.
      properties:
        description:
          default: ''
          description: Skill description
          title: Description
          type: string
        enabled:
          default: true
          description: Whether the skill is enabled
          title: Enabled
          type: boolean
        install_path:
          description: Path where the skill is installed
          title: Install Path
          type: string
        installed_at:
          description: ISO 8601 timestamp of installation
          title: Installed At
          type: string
        name:
          description: Skill name
          title: Name
          type: string
        repo_path:
          anyOf:
            - type: string
            - type: 'null'
          description: Subdirectory path within the repository
          title: Repo Path
        resolved_ref:
          anyOf:
            - type: string
            - type: 'null'
          description: Resolved git commit SHA
          title: Resolved Ref
        source:
          description: Original source (e.g., 'github:owner/repo')
          title: Source
          type: string
        version:
          default: ''
          description: Skill version
          title: Version
          type: string
      required:
        - name
        - source
        - installed_at
        - install_path
      title: InstalledSkillResponse
      type: object
  securitySchemes:
    APIKeyHeader:
      in: header
      name: X-Session-API-Key
      type: apiKey

````

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