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

# Qovery Agent Skills

> Skills that give your AI agent the ability to deploy, troubleshoot, optimize, and manage Kubernetes infrastructure.

<div className="ai-section">
  One install. Your agent picks the right skill automatically.

  ```bash theme={null}
  curl -fsSL https://skill.qovery.com/install.sh | bash
  ```

  → [Compatible tools and setup guide](/getting-started/quickstart/ai-agent)
</div>

***

## Available Skills

<div className="skills-selector">
  <input type="radio" name="qovery-skill" id="sk-onboard" defaultChecked className="skill-radio" />

  <input type="radio" name="qovery-skill" id="sk-deploy" className="skill-radio" />

  <input type="radio" name="qovery-skill" id="sk-troubleshoot" className="skill-radio" />

  <input type="radio" name="qovery-skill" id="sk-optimize" className="skill-radio" />

  <input type="radio" name="qovery-skill" id="sk-speedup" className="skill-radio" />

  <input type="radio" name="qovery-skill" id="sk-preview" className="skill-radio" />

  <input type="radio" name="qovery-skill" id="sk-builder-env" className="skill-radio" />

  <input type="radio" name="qovery-skill" id="sk-builder-portal" className="skill-radio" />

  <div className="skills-grid">
    <label htmlFor="sk-onboard" className="skill-card">
      <span className="skill-card-name">qovery-onboard</span>
      <span className="skill-card-desc">Guided setup</span>
    </label>

    <label htmlFor="sk-deploy" className="skill-card">
      <span className="skill-card-name">qovery-deploy</span>
      <span className="skill-card-desc">Code to running app</span>
    </label>

    <label htmlFor="sk-troubleshoot" className="skill-card">
      <span className="skill-card-name">qovery-troubleshoot</span>
      <span className="skill-card-desc">20+ error patterns</span>
    </label>

    <label htmlFor="sk-optimize" className="skill-card">
      <span className="skill-card-name">qovery-optimize</span>
      <span className="skill-card-desc">Cost analysis</span>
    </label>

    <label htmlFor="sk-speedup" className="skill-card">
      <span className="skill-card-name">qovery-speedup</span>
      <span className="skill-card-desc">Build acceleration</span>
    </label>

    <label htmlFor="sk-preview" className="skill-card">
      <span className="skill-card-name">qovery-preview</span>
      <span className="skill-card-desc">Per-PR environments</span>
    </label>

    <label htmlFor="sk-builder-env" className="skill-card">
      <span className="skill-card-name">qovery-builder-env</span>
      <span className="skill-card-desc">Team self-service</span>
    </label>

    <label htmlFor="sk-builder-portal" className="skill-card">
      <span className="skill-card-name">qovery-builder-portal</span>
      <span className="skill-card-desc">Web portal</span>
    </label>
  </div>

  <div className="skills-desc-wrap">
    <span className="sk-desc sk-desc-onboard">Guided setup — evaluates your stack, recommends the right cluster config, and walks you through onboarding step by step.</span>
    <span className="sk-desc sk-desc-deploy">From source code to running app — Dockerfile, database, env vars, deployment, and auto-fix on failure.</span>
    <span className="sk-desc sk-desc-troubleshoot">8-layer diagnostic against 20+ error patterns. Outputs a structured report with fixes.</span>
    <span className="sk-desc sk-desc-optimize">Analyzes costs across 7 dimensions. Recommends right-sizing, spot instances, and sleep mode. CSV export.</span>
    <span className="sk-desc sk-desc-speedup">Measures full pipeline timing, finds bottlenecks, fixes Dockerfile layers and build cache.</span>
    <span className="sk-desc sk-desc-preview">Full-stack preview environment per PR — app, database, unique URL. Auto-deleted on merge.</span>
    <span className="sk-desc sk-desc-builder-env">Self-service environments for non-technical teams — with RBAC so they can't touch production.</span>
    <span className="sk-desc sk-desc-builder-portal">Generates and deploys a web portal — SSO login, one-click environments, no CLI needed.</span>
  </div>

  <div className="terminal-window skills-terminal">
    <div className="terminal-bar">
      <div className="terminal-dots">
        <div className="terminal-dot terminal-dot-red" />

        <div className="terminal-dot terminal-dot-yellow" />

        <div className="terminal-dot terminal-dot-green" />
      </div>

      <div className="terminal-title-bar">claude</div>

      <div className="terminal-actions">
        <button
          className="terminal-open-cursor"
          onClick={() => {
        const prompts = {
          'sk-onboard': "I'm new to Qovery, help me get started",
          'sk-deploy': 'Deploy my application with Qovery',
          'sk-troubleshoot': 'My deployment is failing',
          'sk-optimize': 'Optimize my Qovery costs',
          'sk-speedup': 'My deployments are slow',
          'sk-preview': 'Set up preview environments for my project',
          'sk-builder-env': 'Set up builder environments for non-tech teams',
          'sk-builder-portal': 'Generate a builder portal for my team',
        };
        const checked = document.querySelector('input[name="qovery-skill"]:checked');
        const text = checked ? prompts[checked.id] : '';
        if (text) window.open(`cursor://anysphere.cursor-deeplink/prompt?text=${encodeURIComponent(text)}`, '_blank');
      }}
        >
          <svg width="12" height="12" viewBox="0 0 24 24" fill="currentColor" style={{flexShrink: 0}}>
            <path d="M11.503.131 1.891 5.678a.84.84 0 0 0-.42.726v11.188c0 .3.162.575.42.724l9.609 5.55a1 1 0 0 0 .998 0l9.61-5.55a.84.84 0 0 0 .42-.724V6.404a.84.84 0 0 0-.42-.726L12.497.131a1.01 1.01 0 0 0-.996 0M2.657 6.338h18.55c.263 0 .43.287.297.515L12.23 22.918c-.062.107-.229.064-.229-.06V12.335a.59.59 0 0 0-.295-.51l-9.11-5.257c-.109-.063-.064-.23.061-.23" />
          </svg>

          Open in Cursor
        </button>

        <button
          className="terminal-copy"
          title="Copy"
          onClick={(e) => {
        const prompts = {
          'sk-onboard': "I'm new to Qovery, help me get started",
          'sk-deploy': 'Deploy my application with Qovery',
          'sk-troubleshoot': 'My deployment is failing',
          'sk-optimize': 'Optimize my Qovery costs',
          'sk-speedup': 'My deployments are slow',
          'sk-preview': 'Set up preview environments for my project',
          'sk-builder-env': 'Set up builder environments for non-tech teams',
          'sk-builder-portal': 'Generate a builder portal for my team',
        };
        const checked = document.querySelector('input[name="qovery-skill"]:checked');
        const text = checked ? prompts[checked.id] : '';
        if (text) navigator.clipboard.writeText(text);
        const btn = e.currentTarget;
        btn.classList.add('terminal-copy-success');
        setTimeout(() => btn.classList.remove('terminal-copy-success'), 1500);
      }}
        >
          <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
            <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z" />

            <path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z" />
          </svg>
        </button>
      </div>
    </div>

    <div className="terminal-body">
      <span className="terminal-prompt sk-prompt sk-prompt-onboard">I'm new to Qovery, help me get started<span className="terminal-cursor" /></span>
      <span className="terminal-prompt sk-prompt sk-prompt-deploy">Deploy my application with Qovery<span className="terminal-cursor" /></span>
      <span className="terminal-prompt sk-prompt sk-prompt-troubleshoot">My deployment is failing<span className="terminal-cursor" /></span>
      <span className="terminal-prompt sk-prompt sk-prompt-optimize">Optimize my Qovery costs<span className="terminal-cursor" /></span>
      <span className="terminal-prompt sk-prompt sk-prompt-speedup">My deployments are slow<span className="terminal-cursor" /></span>
      <span className="terminal-prompt sk-prompt sk-prompt-preview">Set up preview environments for my project<span className="terminal-cursor" /></span>
      <span className="terminal-prompt sk-prompt sk-prompt-builder-env">Set up builder environments for non-tech teams<span className="terminal-cursor" /></span>
      <span className="terminal-prompt sk-prompt sk-prompt-builder-portal">Generate a builder portal for my team<span className="terminal-cursor" /></span>
    </div>
  </div>
</div>

***

## Why Qovery for AI agents?

<CardGroup cols={2}>
  <Card title="Your cloud, your control" icon="server">
    Deploys to your own AWS, GCP, Azure, or Scaleway. Direct billing, no shared infra.
  </Card>

  <Card title="Full audit trail" icon="list-check">
    Every agent action logged — what changed, when, by which agent.
  </Card>

  <Card title="RBAC for agents" icon="shield-check">
    Agents respect your permission model. Builders deploy, can't touch cluster config.
  </Card>

  <Card title="Ephemeral by design" icon="clock">
    Environments up and down in minutes. Sleep mode and TTL handle cleanup.
  </Card>

  <Card title="Self-healing" icon="rotate">
    Auto-fixes common failures. No waiting for a human.
  </Card>

  <Card title="Open source" icon="github">
    MIT-licensed. Fork, customize, extend. [github.com/Qovery/qovery-skills](https://github.com/Qovery/qovery-skills)
  </Card>
</CardGroup>

***

<CardGroup cols={2}>
  <Card title="Get Started" icon="rocket" href="/getting-started/quickstart/ai-agent">
    Install and deploy your first app
  </Card>

  <Card title="Source Code" icon="github" href="https://github.com/Qovery/qovery-skills">
    View or fork on GitHub
  </Card>
</CardGroup>
