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

# Marketplace

> Browse, install, and publish agents, skills, and MCP servers. One install resolves every dependency — skills, MCP servers, and credentials — automatically.

<div className="mxp-hero xc-border">
  <div className="exp-eyebrow mxp-rise">ONE INSTALL</div>

  <h2 className="mxp-hero-title mxp-rise" style={{animationDelay:'0.06s'}}>
    The whole community's work, <span style={{background:'linear-gradient(90deg,#24A4FF,#9000FF,#E3008E)',WebkitBackgroundClip:'text',backgroundClip:'text',color:'transparent'}}>behind one click.</span>
  </h2>

  <p className="mxp-hero-dek mxp-rise" style={{animationDelay:'0.13s'}}>
    The Marketplace holds production-ready agents, reusable skills, and community MCP servers. Install a complex agent and Actionist resolves every dependency before the first run.
  </p>
</div>

<div className="w-full py-10">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">What is inside</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Three things you can install.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      Each kind has its own tab. Browse them independently, or install an agent that brings its skills and MCP servers along automatically. Pick a kind to see a live listing card with its real badge types.
    </p>

    <ul className="text-base text-gray-600 dark:text-gray-400 max-w-3xl mt-2 space-y-1 list-none pl-0">
      <li><strong>Agents</strong> — production-ready agents that do real work: triage tickets, review PRs, draft digests. Skills and MCPs travel with them as resolved dependencies.</li>
      <li><strong>Skills</strong> — reusable knowledge units: style guides, rubrics, templates. Install once and drop them into any agent in your workspace.</li>
      <li><strong>MCP Servers</strong> — connectors to the tools your work already lives in. Install once, wire your secrets, done.</li>
    </ul>
  </div>

  <div className="xmk-kind exp-tool-shell xc-try">
    <div className="xmk-kind-chips mxp-srch-chips">
      <label htmlFor="xmk-ka"><input className="mxp-r" type="radio" name="xmk-k" id="xmk-ka" defaultChecked />Agents</label>
      <label htmlFor="xmk-kb"><input className="mxp-r" type="radio" name="xmk-k" id="xmk-kb" />Skills</label>
      <label htmlFor="xmk-kc"><input className="mxp-r" type="radio" name="xmk-k" id="xmk-kc" />MCP Servers</label>
    </div>

    {/* --- AGENTS panel --- */}

    <div className="xmk-kp xmk-kp-a">
      <div className="xmk-card">
        <div className="xmk-card-icon ag">A</div>

        <div className="xmk-card-body">
          <div className="xmk-card-title">
            PR Review Agent
            <span className="xmk-badge hot">Hot</span>
          </div>

          <div className="xmk-card-desc">Reviews GitHub pull requests for logic errors, style violations, and missing tests. Posts inline comments and a summary block.</div>

          <div className="xmk-card-meta">
            <span className="xmk-install-count">12,480 installs</span>
            <span className="xmk-badge installed">Installed</span>
            <span className="xmk-badge update">Update</span>
          </div>
        </div>

        <div className="xmk-install-btn">Open</div>
      </div>

      <div className="xmk-card" style={{marginTop:10}}>
        <div className="xmk-card-icon ag">A</div>

        <div className="xmk-card-body">
          <div className="xmk-card-title">
            Weekly Digest Agent
            <span className="xmk-badge new">New</span>
          </div>

          <div className="xmk-card-desc">Compiles a weekly activity digest from Slack, email, and your calendar. Sends it every Friday at 17:00.</div>

          <div className="xmk-card-meta">
            <span className="xmk-install-count">341 installs</span>
          </div>
        </div>

        <div className="xmk-install-btn">Install</div>
      </div>

      <div className="xmk-badge-legend">
        <span><span className="xmk-badge hot">Hot</span> high install count</span>
        <span><span className="xmk-badge new">New</span> published within 14 days</span>
        <span><span className="xmk-badge update">Update</span> newer version available</span>
        <span><span className="xmk-badge installed">Installed</span> already in your workspace</span>
      </div>
    </div>

    {/* --- SKILLS panel --- */}

    <div className="xmk-kp xmk-kp-b">
      <div className="xmk-card">
        <div className="xmk-card-icon sk">S</div>

        <div className="xmk-card-body">
          <div className="xmk-card-title">
            Email Summarise
            <span className="xmk-badge hot">Hot</span>
            <span className="xmk-badge installed">Installed</span>
          </div>

          <div className="xmk-card-desc">Groups unread email by sender, ranks by urgency, returns one-sentence summaries. Never marks messages as read.</div>

          <div className="xmk-card-meta">
            <span className="xmk-install-count">9,120 installs</span>
          </div>
        </div>

        <div className="xmk-install-btn">Open</div>
      </div>

      <div className="xmk-card" style={{marginTop:10}}>
        <div className="xmk-card-icon sk">S</div>

        <div className="xmk-card-body">
          <div className="xmk-card-title">
            Competitor Brief
            <span className="xmk-badge new">New</span>
          </div>

          <div className="xmk-card-desc">Researches a named company and returns a structured brief: overview, news, positioning, pricing signals, and customer segments.</div>

          <div className="xmk-card-meta">
            <span className="xmk-install-count">218 installs</span>
          </div>
        </div>

        <div className="xmk-install-btn">Install</div>
      </div>

      <div className="xmk-badge-legend">
        <span><span className="xmk-badge hot">Hot</span> high install count</span>
        <span><span className="xmk-badge new">New</span> published within 14 days</span>
        <span><span className="xmk-badge update">Update</span> newer version available</span>
        <span><span className="xmk-badge installed">Installed</span> already in your workspace</span>
      </div>
    </div>

    {/* --- MCP SERVERS panel --- */}

    <div className="xmk-kp xmk-kp-c">
      <div className="xmk-card">
        <div className="xmk-card-icon mc">M</div>

        <div className="xmk-card-body">
          <div className="xmk-card-title">
            GitHub MCP
            <span className="xmk-badge hot">Hot</span>
            <span className="xmk-badge installed">Installed</span>
          </div>

          <div className="xmk-card-desc">Reads and writes GitHub issues, pull requests, and comments. Requires a Personal Access Token with <code>repo</code> scope.</div>

          <div className="xmk-card-meta">
            <span className="xmk-install-count">21,340 installs</span>
            <span className="xmk-badge update">Update</span>
          </div>
        </div>

        <div className="xmk-install-btn">Open</div>
      </div>

      <div className="xmk-card" style={{marginTop:10}}>
        <div className="xmk-card-icon mc">M</div>

        <div className="xmk-card-body">
          <div className="xmk-card-title">
            Notion MCP
            <span className="xmk-badge new">New</span>
          </div>

          <div className="xmk-card-desc">Read and write Notion pages and databases. Needs an Integration Token from your Notion workspace settings.</div>

          <div className="xmk-card-meta">
            <span className="xmk-install-count">1,847 installs</span>
          </div>
        </div>

        <div className="xmk-install-btn">Install</div>
      </div>

      <div className="xmk-badge-legend">
        <span><span className="xmk-badge hot">Hot</span> high install count</span>
        <span><span className="xmk-badge new">New</span> published within 14 days</span>
        <span><span className="xmk-badge update">Update</span> newer version available</span>
        <span><span className="xmk-badge installed">Installed</span> already in your workspace</span>
      </div>
    </div>
  </div>
</div>

{/* TODO(image): marketplace-hero — IMAGE SPEC: Full-width Marketplace screen on the Agents tab. Three kind tabs at the top (Agents / Skills / MCP Servers) with item counts visible. Editor's Pick hero banner showing one featured agent with an Install and Open button. Trending this week row below the hero, with 3 cards showing rank badges (1, 2, 3) and formatted install counts. Browse by category tile grid below that, showing icons for productivity, development, design, research, marketing, and operations categories. — replace this CSS mock with the real screenshot */}

<div className="w-full py-10 xc-rise">
  <div className="xmk-mock-window">
    <div className="xmk-mock-titlebar">
      <div className="xmk-mock-dots">
        <span />

        <span />

        <span />
      </div>

      <div className="xmk-mock-bar-label">Marketplace — Agents</div>
      <div className="xmk-mock-search-pill">Search apps, agents, skills, MCPs...</div>
    </div>

    <div className="xmk-mock-kind-bar">
      <span className="xmk-mock-kind-tab active">Agents <span className="xmk-mock-count">284</span></span>
      <span className="xmk-mock-kind-tab">Skills <span className="xmk-mock-count">139</span></span>
      <span className="xmk-mock-kind-tab">MCP Servers <span className="xmk-mock-count">97</span></span>
    </div>

    <div className="xmk-mock-hero-banner">
      <div className="xmk-mock-hero-eyebrow">Editor's Pick</div>
      <div className="xmk-mock-hero-name">PR Review Agent</div>
      <div className="xmk-mock-hero-desc">Reviews GitHub pull requests for logic errors, style violations, and missing tests.</div>

      <div className="xmk-mock-hero-btns">
        <span className="xmk-mock-btn-primary">Install</span>
        <span className="xmk-mock-btn-ghost">Open</span>
      </div>
    </div>

    <div className="xmk-mock-section-label">Trending this week</div>

    <div className="xmk-mock-trending-row">
      <div className="xmk-mock-trend-card"><span className="xmk-mock-rank r1">1</span><span className="xmk-mock-trend-name">GitHub MCP</span><span className="xmk-mock-trend-stat">21,340 installs</span></div>
      <div className="xmk-mock-trend-card"><span className="xmk-mock-rank r2">2</span><span className="xmk-mock-trend-name">PR Review Agent</span><span className="xmk-mock-trend-stat">12,480 installs</span></div>
      <div className="xmk-mock-trend-card"><span className="xmk-mock-rank r3">3</span><span className="xmk-mock-trend-name">Email Summarise</span><span className="xmk-mock-trend-stat">9,120 installs</span></div>
    </div>

    <div className="xmk-mock-section-label">Browse by category</div>

    <div className="xmk-mock-cat-grid">
      <div className="xmk-mock-cat-tile">Productivity</div>
      <div className="xmk-mock-cat-tile">Development</div>
      <div className="xmk-mock-cat-tile">Design</div>
      <div className="xmk-mock-cat-tile">Research</div>
      <div className="xmk-mock-cat-tile">Marketing</div>
      <div className="xmk-mock-cat-tile">Operations</div>
    </div>
  </div>
</div>

<div id="browse-and-install" className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">Getting around</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">What you see when you open Market.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      Click <strong>Market</strong> in the left sidebar. The page title reads <strong>Marketplace</strong> and opens on the Agents tab. Here is how the page is laid out.
    </p>
  </div>

  <Steps>
    <Step title="Kind tabs" icon="layout-panel-top">
      Three tabs run across the top: <strong>Agents</strong>, <strong>Skills</strong>, and <strong>MCP Servers</strong>. Each shows a live item count. Click a tab to switch. If the listing is less than 30 seconds old it switches instantly without a spinner.
    </Step>

    <Step title="Hero banner" icon="star">
      Below the tabs, an <strong>Editor's pick</strong> banner spotlights one curated listing with a direct <strong>Install</strong> or <strong>Open</strong> button. When you activate a search or filter, the banner switches to a stats view showing Available / Installs / Categories / Yours counts.
    </Step>

    <Step title="Trending this week" icon="trending-up">
      Three cards ranked 1-3 by install count. A fast read on what the community is using most right now.
    </Step>

    <Step title="Browse by category" icon="layout-grid">
      Up to 12 category tiles drawn from the current listings. Click any tile to narrow the card grid to that category. The same 12-tile cap applies on the Skills and MCP Servers tabs.
    </Step>

    <Step title="Sidebar and toolbar" icon="sliders-horizontal">
      The left sidebar has single-select <strong>Category</strong> pills and multi-select <strong>Tags</strong> pills (up to 16 tags shown, ranked by frequency). The toolbar above the card grid has <strong>All / Installed / Updates</strong> tabs and a sort dropdown: <strong>Most installed</strong> (default) or <strong>Newest</strong>. The 16-tag cap and 50-items-per-page limit apply on all three tabs.
    </Step>

    <Step title="Search" icon="search">
      Type in the top search bar (the label reads "Search apps, agents, skills, MCPs..."). Results update after a short pause. The hero switches to the stats view while a search is active.
    </Step>
  </Steps>

  <Tip>
    Cards carry status badges: <strong>Hot</strong> (high install count), <strong>New</strong> (recently published), <strong>Update</strong> (a newer version is available), and <strong>Installed</strong> (already in your workspace). Use the <strong>Updates</strong> tab in the toolbar to find everything you can upgrade in one place.
  </Tip>
</div>

<hr className="xc-divider" />

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">How an agent install works</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Every dependency, resolved before the first run.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      When an agent requires skills or MCP servers, the Install plan drawer lists every dependency and what needs to happen. Each row carries a state: nothing to do, already have it, will install silently, or needs credentials from you.
    </p>
  </div>

  <div className="xmk-plan exp-tool-shell xc-try">
    <div className="xmk-plan-header">
      <div>
        <div className="xmk-plan-title">Install plan: PR Review Agent</div>
        <div className="xmk-plan-sub">4 dependencies</div>
      </div>

      <span className="xmk-badge installed">3 ready</span>
    </div>

    {/* Row 1: Bundled — nothing to do */}

    <div className="xmk-dep">
      <div className="xmk-dep-icon bundled">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <path d="m7.5 4.27 9 5.15" />

          <path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z" />

          <path d="m3.3 7 8.7 5 8.7-5" />

          <path d="M12 22V12" />
        </svg>
      </div>

      <div className="xmk-dep-body">
        <div className="xmk-dep-name">agent-browser</div>
        <div className="xmk-dep-blurb">Bundled with Actionist. Always present, cannot be toggled off.</div>
      </div>

      <div className="xmk-dep-state bundled">Built-in</div>
    </div>

    {/* Row 2: Have — already installed */}

    <div className="xmk-dep">
      <div className="xmk-dep-icon have">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#6EE3B5" strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round">
          <polyline points="20 6 9 17 4 12" />
        </svg>
      </div>

      <div className="xmk-dep-body">
        <div className="xmk-dep-name">email-summarise</div>
        <div className="xmk-dep-blurb">Skill already installed. The agent will use your existing version.</div>
      </div>

      <div className="xmk-dep-state have">Have</div>
    </div>

    {/* Row 3: Install — will be added silently */}

    <div className="xmk-dep is-install">
      <div className="xmk-dep-icon install">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#24A4FF" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />

          <polyline points="7 10 12 15 17 10" />

          <line x1="12" x2="12" y1="15" y2="3" />
        </svg>
      </div>

      <div className="xmk-dep-body">
        <div className="xmk-dep-name">code-review</div>
        <div className="xmk-dep-blurb">Skill not yet in your workspace. Will be downloaded and installed automatically.</div>
      </div>

      <div className="xmk-dep-state">Install</div>
    </div>

    {/* Row 4: Setup — needs credentials */}

    <div className="xmk-dep">
      <div className="xmk-dep-icon setup">
        <svg className="xmk-key-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#F5C050" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
          <circle cx="7.5" cy="15.5" r="5.5" />

          <path d="m21 2-9.6 9.6" />

          <path d="m15.5 7.5 3 3L22 7l-3-3" />
        </svg>
      </div>

      <div className="xmk-dep-body">
        <div className="xmk-dep-name">github-mcp</div>
        <div className="xmk-dep-blurb">MCP server requires <code>GITHUB\_TOKEN</code>. Paste a value or pick a saved credential. Install is blocked until this field is complete.</div>
      </div>

      <div className="xmk-dep-state setup">Setup</div>
    </div>

    <div className="xmk-plan-footer">
      <div className="xmk-plan-ready">
        <div className="xmk-plan-ready-dot" />

        Ready to install: 1 field remaining
      </div>

      <div className="xmk-plan-btn">Install 2 items</div>
    </div>
  </div>

  <div className="exp-surface-grid" style={{marginTop:'22px'}}>
    <div className="exp-surface-tile">
      <strong>One confirm, everything lands.</strong> Skills download silently in the background. You only fill in fields for MCP servers that need credentials.
    </div>

    <div className="exp-surface-tile">
      <strong>Install is blocked until all Setup rows are complete.</strong> The Install button stays disabled until every required env-var field has a value.
    </div>

    <div className="exp-surface-tile">
      <strong>Desktop required for all Marketplace write actions.</strong> Install, update, and publish are disabled in the web build. Use the desktop app.
    </div>
  </div>
</div>

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">Installation</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Installing agents, skills, and MCP servers.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      Each kind has a slightly different install path. Select the tab for the kind you are working with.
    </p>
  </div>

  <Tabs>
    <Tab title="Agents" icon="users">
      Agent installs fall into two paths: quick install for agents with no dependencies, and the <strong>Install plan</strong> drawer for agents that require skills or MCP servers.

      <Steps>
        <Step title="Find the agent and click Install">
          On the Agents tab, locate the agent and click <strong>Install</strong> on the card.
        </Step>

        <Step title="Quick install — no dependencies">
          If the agent has no skill or MCP requirements, it installs directly from the card. The badge changes to <strong>Installed</strong> and no drawer opens. This is expected and not a sign that something is missing.
        </Step>

        <Step title="Install plan — agent has dependencies">
          If the agent requires skills or MCP servers, the <strong>Install plan</strong> drawer opens on the right. It lists every dependency and what needs to happen before the agent can run. Review each row, fill any required env-var fields, and click <strong>Install</strong>.
        </Step>

        <Step title="Open the agent">
          When the install finishes, click <strong>Open</strong> in the success state to go straight to the agent in the studio.
        </Step>
      </Steps>

      <Note>
        Install, update, and publish buttons require the Actionist desktop app. A "Desktop required" overlay appears in the web build. Use the desktop app for all Marketplace write actions.
      </Note>
    </Tab>

    <Tab title="Skills" icon="puzzle">
      Skills install with a single click. No configuration drawer, no secrets to fill in.

      <Steps>
        <Step title="Open the Skills tab">
          Click <strong>Skills</strong> in the Marketplace kind strip.
        </Step>

        <Step title="Click Install">
          Click <strong>Install</strong> on the skill card. Actionist downloads the skill package, verifies its integrity, and unpacks it into your workspace.
        </Step>

        <Step title="Enable the skill per agent">
          The skill is now available in your workspace. Open any agent in the studio, go to the <strong>Skills</strong> tab, and toggle the skill on for that agent.
        </Step>
      </Steps>

      <Check>
        The card badge updates to <strong>Installed</strong> and the listing refreshes immediately after install.
      </Check>
    </Tab>

    <Tab title="MCP Servers" icon="plug">
      MCP servers require configuration before they can run, usually API keys or endpoint URLs.

      <Steps>
        <Step title="Open the MCP Servers tab">
          Click <strong>MCP Servers</strong> in the kind strip. Click through to a card's detail page to review the full env-var table with Required, Optional, and Secret tags and the transport type before installing.
        </Step>

        <Step title="Click Install — the configure drawer opens">
          Click <strong>Install</strong> on the card. A configuration drawer opens. You can also click through to the detail page first to review the full env-var table with Required / Optional / Secret tags before committing.
        </Step>

        <Step title="Fill the required fields">
          Required env-var fields must be completed before install proceeds. For secret fields (API keys and tokens), paste a raw value or click <strong>Use a saved credential</strong> to bind a vault credential stored in Settings → Credentials.
        </Step>

        <Step title="Click Install">
          The MCP server is configured and available for agents to use.
        </Step>
      </Steps>

      <Tip>
        Create your credentials in Settings → Credentials before opening any MCP install drawer. The <strong>Use a saved credential</strong> picker appears next to each secret field, and one vault entry can back multiple MCP servers. Rotate once in the vault and all consumers update automatically.
      </Tip>
    </Tab>
  </Tabs>
</div>

{/* TODO(image): install-plan-drawer — IMAGE SPEC: AgentInstallPlanSheet drawer (right panel, 560px wide) open for a sample agent. Show four dependency rows: one row labeled 'Have' (a skill already installed), one labeled 'Install' (a skill to be added), one labeled 'Setup' (an MCP server with an env-var field expanded and the 'Use a saved credential' link visible below the field), and one labeled 'Built-in' (a bundled dependency). Footer shows an 'Install 3 items' button and a preflight summary section reading 'Ready to install'. — replace this CSS mock with the real screenshot */}

<div className="w-full py-10 xc-rise">
  <div className="xmk-mock-drawer">
    <div className="xmk-mock-drawer-header">
      <div className="xmk-mock-drawer-title">Install plan: Daily Standup Agent</div>
      <div className="xmk-mock-drawer-sub">4 dependencies</div>
    </div>

    <div className="xmk-mock-dep-row state-builtin">
      <div className="xmk-mock-dep-dot builtin" />

      <div className="xmk-mock-dep-info"><strong>agent-browser</strong><span>Bundled with Actionist</span></div>
      <div className="xmk-mock-dep-badge builtin">Built-in</div>
    </div>

    <div className="xmk-mock-dep-row state-have">
      <div className="xmk-mock-dep-dot have" />

      <div className="xmk-mock-dep-info"><strong>email-summarise</strong><span>Skill already installed</span></div>
      <div className="xmk-mock-dep-badge have">Have</div>
    </div>

    <div className="xmk-mock-dep-row state-install">
      <div className="xmk-mock-dep-dot install" />

      <div className="xmk-mock-dep-info"><strong>code-review</strong><span>Will be downloaded and installed automatically</span></div>
      <div className="xmk-mock-dep-badge install">Install</div>
    </div>

    <div className="xmk-mock-dep-row state-setup">
      <div className="xmk-mock-dep-dot setup" />

      <div className="xmk-mock-dep-info">
        <strong>github-mcp</strong>
        <span>MCP server requires <code>GITHUB\_TOKEN</code></span>

        <div className="xmk-mock-field-row">
          <div className="xmk-mock-field-input">ghp\_••••••••••••••••</div>
          <div className="xmk-mock-field-link">Use a saved credential</div>
        </div>
      </div>

      <div className="xmk-mock-dep-badge setup">Setup</div>
    </div>

    <div className="xmk-mock-drawer-footer">
      <div className="xmk-mock-preflight"><span className="xmk-mock-preflight-dot" />Ready to install: 1 field remaining</div>
      <div className="xmk-mock-install-cta">Install 3 items</div>
    </div>
  </div>
</div>

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">Install plan</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Understanding the Install plan drawer.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      Every row in the Install plan drawer carries a state badge. Here is what each one means and what action (if any) you need to take.
    </p>
  </div>

  <AccordionGroup>
    <Accordion title="Built-in — nothing to do" icon="box" defaultOpen={true}>
      <Badge color="gray" size="sm">Built-in</Badge>

      The dependency is bundled with the agent and will be present after install without any action on your part.
    </Accordion>

    <Accordion title="Have — already installed" icon="circle-check">
      <Badge color="green" size="sm">Have</Badge>

      This skill or MCP server is already in your workspace. The agent will use your existing install. No action required.
    </Accordion>

    <Accordion title="Install — will be added silently" icon="download">
      <Badge color="blue" size="sm">Install</Badge>

      A skill that is not yet in your workspace. It will be downloaded and installed automatically when you confirm the plan. No extra input needed.
    </Accordion>

    <Accordion title="Setup — MCP server needs configuration" icon="settings">
      <Badge color="yellow" size="sm">Setup</Badge>

      An MCP server that requires env vars before it can run. Fill the required fields inline in the drawer, or click <strong>Use a saved credential</strong> to bind a vault credential. The Install button stays disabled until all required fields are complete.
    </Accordion>

    <Accordion title="Mismatch — version differs from what you have" icon="triangle-alert">
      <Badge color="orange" size="sm">Mismatch</Badge>

      The agent needs a different version of a dependency than the one currently in your workspace. The drawer defaults to switching to the agent's required version. If other agents depend on your current version, toggle the row to keep your existing version instead before confirming.
    </Accordion>

    <Accordion title="Conflict or Unavailable — needs attention" icon="circle-x">
      <Badge color="red" size="sm">Conflict</Badge>
      <Badge color="red" size="sm">Unavailable</Badge>

      <strong>Conflict</strong> means two agents in your workspace require incompatible versions of the same dependency. You must choose which version to keep before the install can proceed.

      <strong>Unavailable</strong> means the dependency cannot be resolved. The listing may have been removed or the version is no longer published. Install is blocked until this is resolved.

      <Warning>
        If any dependency ends up in a partial-failure state after install, the panel stays open and shows a <strong>Retry</strong> button next to each failed row. The full hint reads: "Some dependencies failed to materialize. Click Retry next to each failed row above, or leave the panel and retry from the Skills or MCP tab." Close the panel and retry the individual skill or MCP server from its own tab when ready.
      </Warning>
    </Accordion>
  </AccordionGroup>
</div>

{/* TODO(image): mcp-install-modal — IMAGE SPEC: ConfigureMcpOnInstallModal drawer for a sample MCP server. One secret field (labeled with a 'Secret' tag) with the 'Use a saved credential' picker open, showing a credential name in the dropdown. One non-secret URL field (labeled 'Optional') pre-filled with an existing endpoint value from a previous config. Required and Optional and Secret tags visible on the field labels. Install button at the bottom of the drawer. — replace this CSS mock with the real screenshot */}

<div className="w-full py-10 xc-rise">
  <div className="xmk-mock-drawer xmk-mock-drawer-narrow">
    <div className="xmk-mock-drawer-header">
      <div className="xmk-mock-drawer-title">Configure: GitHub MCP</div>
      <div className="xmk-mock-drawer-sub">Fill required fields before installing</div>
    </div>

    <div className="xmk-mock-field-block">
      <div className="xmk-mock-field-label">
        GITHUB\_TOKEN
        <span className="xmk-mock-tag secret">Secret</span>
        <span className="xmk-mock-tag required">Required</span>
      </div>

      <div className="xmk-mock-field-input">ghp\_••••••••••••••••</div>

      <div className="xmk-mock-cred-picker">
        <div className="xmk-mock-cred-picker-header">Use a saved credential</div>
        <div className="xmk-mock-cred-option selected">github-pat-prod</div>
        <div className="xmk-mock-cred-option">github-pat-staging</div>
      </div>
    </div>

    <div className="xmk-mock-field-block">
      <div className="xmk-mock-field-label">
        GITHUB\_API\_URL
        <span className="xmk-mock-tag optional">Optional</span>
      </div>

      <div className="xmk-mock-field-input xmk-mock-field-prefilled">[https://api.github.com](https://api.github.com)</div>
    </div>

    <div className="xmk-mock-drawer-footer">
      <div className="xmk-mock-install-cta xmk-mock-install-cta-full">Install</div>
    </div>
  </div>
</div>

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">How a single install resolves everything.</h2>
  </div>

  <div className="mxp-pipe">
    <div className="mxp-pipe-node"><strong>Card click</strong><span>You click Install on an agent card. Actionist reads its dependency manifest.</span></div>

    <div className="mxp-pipe-link" />

    <div className="mxp-pipe-node"><strong>Dependency scan</strong><span>Every required skill and MCP server is checked against your workspace.</span></div>

    <div className="mxp-pipe-link d2" />

    <div className="mxp-pipe-node"><strong>Install plan</strong><span>Have / Install / Setup / Built-in rows are assembled and shown in the drawer.</span></div>

    <div className="mxp-pipe-link d3" />

    <div className="mxp-pipe-node"><strong>Confirm</strong><span>You fill any Setup fields and click Install. Missing items download in parallel.</span></div>

    <div className="mxp-pipe-link d4" />

    <div className="mxp-pipe-node"><strong>Agent ready</strong><span>Every dependency is present. Click Open to go straight to the studio.</span></div>
  </div>
</div>

<hr className="xc-divider" />

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">Time to value</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Live in minutes, not hours.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      One install and every dependency lands automatically. Here is how quickly three different users went from the Marketplace to a working agent.
    </p>
  </div>

  <div className="xc-recipes">
    <div className="xc-recipe">
      <div className="xc-recipe-who">
        <i style={{background:'linear-gradient(135deg,#9000FF,#00DBFF)'}} />

        Omar · Agency owner
      </div>

      <div className="xc-recipe-flow">
        Omar opens the Marketplace for a new client workspace, finds the <em>Weekly Digest Agent</em>, clicks <em>Install</em>, and fills in one Slack credential in the Install plan drawer. The agent starts compiling cross-channel activity summaries <em>on the same day</em> — no manual wiring, no custom prompt work.
      </div>

      <div className="xc-recipe-save">live in 8 min</div>
    </div>

    <div className="xc-recipe">
      <div className="xc-recipe-who">
        <i style={{background:'linear-gradient(135deg,#E3008E,#FD840C)'}} />

        June · E-commerce founder
      </div>

      <div className="xc-recipe-flow">
        June installs the <em>Email Summarise</em> skill from the Skills tab with a single click — no drawer, no credentials required. She opens her support agent in the studio, toggles the skill on under the <em>Skills</em> tab, and the agent immediately starts grouping unread messages by sender and urgency before she replies.
      </div>

      <div className="xc-recipe-save">live in 4 min</div>
    </div>

    <div className="xc-recipe">
      <div className="xc-recipe-who">
        <i style={{background:'linear-gradient(135deg,#486EFF,#9000FF)'}} />

        Sam · Solo founder
      </div>

      <div className="xc-recipe-flow">
        Sam installs the <em>Notion MCP</em> server from the MCP Servers tab. The configure drawer opens with one required field: an Integration Token from Notion workspace settings. Sam pastes a saved credential from the vault picker, clicks <em>Install</em>, and every agent in the workspace can now read and write Notion pages.
      </div>

      <div className="xc-recipe-save">live in 6 min</div>
    </div>
  </div>
</div>

<hr className="xc-divider" />

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">Publishing</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Share your work with the community.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      Agents, skills, and MCP servers each have their own publish path. Published items appear in the Marketplace once they pass review.
    </p>
  </div>

  <Tabs>
    <Tab title="Publish an agent" icon="users">
      Before you start, every skill and MCP server the agent depends on must already have an active, approved marketplace listing.

      <Warning>
        If your agent uses a skill or MCP server that is not yet published, the publish action is blocked with: "Your agent uses custom content that isn't on the marketplace yet. Subscribers can't install your agent until each one has a live listing." Publish the missing dependencies first, then return here.
      </Warning>

      <Steps>
        <Step title="Open the Agent Studio">
          In the sidebar, open <strong>Agents</strong> and click the agent you want to publish.
        </Step>

        <Step title="Click Publish to Marketplace">
          Click <strong>Publish to Marketplace</strong> in the Agent Studio, or go to <strong>My Submissions</strong> and choose <strong>Submit an agent</strong> from the submit menu.
        </Step>

        <Step title="Fill in the listing metadata">
          The <strong>Submit to marketplace</strong> modal walks through three steps. Step 2 is where you fill the listing details:

          * <strong>Name</strong> — how it appears in the listing.
          * <strong>Short description</strong> — one punchy sentence, maximum 160 characters.
          * <strong>Category</strong> — Productivity, Developer, Marketing, Finance, Data & Analytics, Communication, or Other.
          * <strong>Tags</strong> — optional; helps with discovery.
          * <strong>Version</strong> — the release version string.
        </Step>

        <Step title="Review and submit">
          Step 3 shows a summary. Confirm and submit. The modal closes with "Submitted for review". Track the status in <strong>My Submissions</strong>.
        </Step>
      </Steps>
    </Tab>

    <Tab title="Publish a skill" icon="puzzle">
      Skills use a dedicated publish flow initiated from the Skills page, not the Submit modal.

      <Steps>
        <Step title="Open the Skills page">
          In the sidebar, open <strong>Skills</strong> and find the skill you want to publish.
        </Step>

        <Step title="Click Publish to Marketplace">
          From the skill's detail view or the Skills page actions menu, click <strong>Publish to Marketplace</strong>.
        </Step>

        <Step title="Actionist packs and verifies the skill">
          The main process compresses your skill folder, checks the file sizes against the limits below, computes a checksum, and uploads the package. If any limit is exceeded, publish is aborted. Fix the overage and resubmit.

          | Component                  | Limit  |
          | -------------------------- | ------ |
          | Total package (compressed) | 5 MB   |
          | SKILL.md                   | 256 KB |
          | Each resource file         | 128 KB |
        </Step>

        <Step title="Wait for review">
          On success, the skill status shows <strong>Pending review</strong>. Once approved it changes to <strong>Published</strong> and becomes discoverable. If rejected, the status shows <strong>Rejected</strong>. Address the feedback and resubmit using the resubmit flow.
        </Step>
      </Steps>

      <Tip>
        The 5 MB limit is on the compressed package, not the uncompressed folder. Keep each resource file under 128 KB and SKILL.md under 256 KB. Both are checked individually before the overall size limit.
      </Tip>
    </Tab>

    <Tab title="Publish an MCP server" icon="plug">
      MCP server publishing happens from the <strong>Integrations</strong> page, not from the Marketplace UI.

      <Steps>
        <Step title="Open Integrations and find your MCP server">
          In the sidebar, open <strong>MCP Servers</strong> (under Integrations). Click the custom MCP server you want to publish to open its detail drawer.
        </Step>

        <Step title="Click Publish this custom MCP server to the marketplace">
          This option appears in the drawer for custom servers you have added yourself.
        </Step>

        <Step title="Review the secret-stripping preview">
          The publish dialog shows exactly which env and header keys will be converted to <code>requiredEnvVars</code> declarations (the fields installers must supply). Keys whose names contain TOKEN, KEY, SECRET, PASSWORD, CREDENTIAL, PRIVATE, API\_KEY, or similar patterns are stripped from the published config.

          Review the list before confirming. If a key holds a credential but its name does not match the pattern, rename the key to include TOKEN, KEY, or SECRET so it is stripped correctly before you submit.
        </Step>

        <Step title="Confirm and submit">
          Confirm the dialog. The server is submitted for review. Track its status in <strong>My Submissions</strong>.
        </Step>
      </Steps>
    </Tab>
  </Tabs>
</div>

{/* TODO(image): submit-modal-step2 — IMAGE SPEC: SubmitToMarketplaceModal at Step 2 (fill metadata). Name field filled with a sample agent name. Short description field showing a character counter at roughly 83 / 160. Category dropdown open, displaying all 7 options: Productivity, Developer, Marketing, Finance, Data & Analytics, Communication, Other. Tags field with 2 tags already added. Step indicator at the top showing Step 2 of 3. — replace this CSS mock with the real screenshot */}

<div className="w-full py-10 xc-rise">
  <div className="xmk-mock-modal">
    <div className="xmk-mock-modal-steps">
      <span className="xmk-mock-step done">1</span>

      <span className="xmk-mock-step-line done" />

      <span className="xmk-mock-step active">2</span>

      <span className="xmk-mock-step-line" />

      <span className="xmk-mock-step">3</span>
      <span className="xmk-mock-step-label">Step 2 of 3 — Listing details</span>
    </div>

    <div className="xmk-mock-field-block">
      <div className="xmk-mock-field-label">Name</div>
      <div className="xmk-mock-field-input xmk-mock-field-prefilled">PR Review Agent</div>
    </div>

    <div className="xmk-mock-field-block">
      <div className="xmk-mock-field-label">Short description <span className="xmk-mock-char-counter">83 / 160</span></div>
      <div className="xmk-mock-field-input xmk-mock-field-prefilled">Reviews GitHub PRs for logic errors, style violations, and missing tests. Posts inline comments and a summary block.</div>
    </div>

    <div className="xmk-mock-field-block">
      <div className="xmk-mock-field-label">Category</div>

      <div className="xmk-mock-dropdown-open">
        <div className="xmk-mock-dropdown-item selected">Developer</div>
        <div className="xmk-mock-dropdown-item">Productivity</div>
        <div className="xmk-mock-dropdown-item">Marketing</div>
        <div className="xmk-mock-dropdown-item">Finance</div>
        <div className="xmk-mock-dropdown-item">Data & Analytics</div>
        <div className="xmk-mock-dropdown-item">Communication</div>
        <div className="xmk-mock-dropdown-item">Other</div>
      </div>
    </div>

    <div className="xmk-mock-field-block">
      <div className="xmk-mock-field-label">Tags</div>

      <div className="xmk-mock-tags-row">
        <span className="xmk-mock-tag-chip">github</span>
        <span className="xmk-mock-tag-chip">code-review</span>
        <span className="xmk-mock-tag-add">+ Add tag</span>
      </div>
    </div>
  </div>
</div>

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">My Submissions</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Track everything you have submitted.</h2>

    <p className="text-base text-gray-600 dark:text-gray-400 max-w-3xl">
      <strong>My Submissions</strong> is where you monitor the review status, install counts, and ratings for every item you have published or submitted for review.
    </p>
  </div>

  <div className="xmk-sub-strip">
    <div className="xmk-sub-row">
      <div className="xmk-sub-info">
        <span className="xmk-sub-kind-tag ag">Agent</span>

        <div>
          <div className="xmk-sub-name">PR Review Agent</div>
          <div className="xmk-sub-stat">Submitted Jun 4, 2026</div>
        </div>
      </div>

      <span className="xmk-review-badge pending">Pending review</span>
    </div>

    <div className="xmk-sub-row">
      <div className="xmk-sub-info">
        <span className="xmk-sub-kind-tag sk">Skill</span>

        <div>
          <div className="xmk-sub-name">email-summarise</div>
          <div className="xmk-sub-stat">9,120 installs · 4.8 rating</div>
        </div>
      </div>

      <span className="xmk-review-badge published">Published</span>
    </div>

    <div className="xmk-sub-row">
      <div className="xmk-sub-info">
        <span className="xmk-sub-kind-tag mc">MCP</span>

        <div>
          <div className="xmk-sub-name">internal-db-mcp</div>
          <div className="xmk-sub-stat">Submitted May 29, 2026</div>
        </div>
      </div>

      <span className="xmk-review-badge rejected">Rejected</span>
    </div>
  </div>

  <Steps>
    <Step title="Open My Submissions">
      Click <strong>My submissions</strong> in the Marketplace top bar, or click the My Submissions pill in the kind strip (the list icon at the right of the Agents / Skills / MCP Servers tabs). The page is at <code>/marketplace/submissions</code>.
    </Step>

    <Step title="Read the review status">
      Each submitted item shows one of three status badges:

      * <strong>Pending review</strong> — submitted and awaiting moderation.
      * <strong>Published</strong> — live in the Marketplace and discoverable by all users.
      * <strong>Rejected</strong> — not approved; address the feedback and resubmit.
    </Step>

    <Step title="Monitor engagement">
      Published items show install counts and ratings. Use these to understand which listings gain traction and where a refreshed description or a new version might help.
    </Step>

    <Step title="Deep-link to a submitted item">
      Each item links directly to its detail page at <code>/marketplace/submissions/agent/:id</code>, <code>/marketplace/submissions/skill/:id</code>, or <code>/marketplace/submissions/mcp-server/:id</code>.
    </Step>
  </Steps>

  {/* TODO(image): my-submissions — IMAGE SPEC: My Submissions page at /marketplace/submissions. Four kind tabs visible at the top (Workflows / Skills / Agents / MCP). One agent card showing a 'Pending review' status badge, the agent name, description excerpt, and install count metric. One skill card below it with a 'Published' status badge and engagement metrics. — replace this CSS mock with the real screenshot */}

  <div className="xmk-mock-submissions">
    <div className="xmk-mock-subs-tabbar">
      <span className="xmk-mock-subs-tab">Workflows</span>
      <span className="xmk-mock-subs-tab active">Agents</span>
      <span className="xmk-mock-subs-tab">Skills</span>
      <span className="xmk-mock-subs-tab">MCP</span>
    </div>

    <div className="xmk-mock-subs-card">
      <div className="xmk-mock-subs-card-icon ag">A</div>

      <div className="xmk-mock-subs-card-body">
        <div className="xmk-mock-subs-card-name">PR Review Agent</div>
        <div className="xmk-mock-subs-card-desc">Reviews GitHub pull requests for logic errors, style violations, and missing tests.</div>
        <div className="xmk-mock-subs-card-meta">0 installs</div>
      </div>

      <span className="xmk-review-badge pending">Pending review</span>
    </div>

    <div className="xmk-mock-subs-card">
      <div className="xmk-mock-subs-card-icon sk">S</div>

      <div className="xmk-mock-subs-card-body">
        <div className="xmk-mock-subs-card-name">email-summarise</div>
        <div className="xmk-mock-subs-card-desc">Groups unread email by sender, ranks by urgency, returns one-sentence summaries.</div>
        <div className="xmk-mock-subs-card-meta">9,120 installs · 4.8 rating</div>
      </div>

      <span className="xmk-review-badge published">Published</span>
    </div>
  </div>
</div>

<div className="w-full py-10 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Tips that save time.</h2>
  </div>

  <AccordionGroup>
    <Accordion title="Browse before building a custom skill" icon="search">
      Check the <strong>Skills</strong> tab before authoring a new skill. Marketplace skills receive automatic version updates and already satisfy the dependency check when you later publish an agent that uses them. A maintained community skill beats one you have to keep current yourself.
    </Accordion>

    <Accordion title="Use vault credentials during MCP install" icon="key">
      Create your API credentials in <strong>Settings → Credentials</strong> before opening any MCP install drawer. The <strong>Use a saved credential</strong> picker appears next to each secret field. One vault entry backs multiple MCP servers. Rotate it once and all consumers update without any re-configuration.
    </Accordion>

    <Accordion title="Version-mismatch defaults to switch — check before confirming" icon="git-branch">
      When an agent needs a different version of an MCP server you already have, the Install plan drawer defaults to switching to the required version. If other agents depend on your current version, toggle <strong>Keep my version</strong> per row before clicking Install.
    </Accordion>

    <Accordion title="Agent publish requires marketplace-approved dependencies" icon="lock">
      Every skill and MCP server an agent uses must have an active, approved marketplace listing before the agent itself can be published. If publish is blocked, publish the missing skill or MCP server first, wait for its status to reach <strong>Published</strong>, then return to publish the agent.
    </Accordion>

    <Accordion title="Skill size limits apply to the compressed package" icon="archive">
      The 5 MB limit is on the compressed tar.gz, not the uncompressed folder. Check each resource file is under 128 KB and that SKILL.md is under 256 KB. Both are checked individually before the overall size limit. Large reference images and data files are the most common cause of publish failures.
    </Accordion>

    <Accordion title="Write the listing description in one sentence" icon="pen">
      The <strong>Short description</strong> field has a 160-character cap. One clear sentence covering the "what" and "for whom" is more effective than a truncated paragraph. The full detail page has no length limit for a longer description.
    </Accordion>

    <Accordion title="Most installed is the quality proxy right now" icon="trending-up">
      The sort dropdown offers <strong>Most installed</strong> and <strong>Newest</strong> only. Use <strong>Most installed</strong> as the quality signal when choosing between similar listings.
    </Accordion>
  </AccordionGroup>
</div>

<hr className="xc-divider" />

<div className="w-full py-10 xc-rise">
  <div className="actionist-cta-panel xc-border">
    <div className="relative z-10 flex flex-col items-center gap-5 max-w-2xl mx-auto">
      <span className="actionist-eyebrow">One install away</span>

      <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-white leading-tight">
        Your next agent is one install away.
      </h2>

      <p className="text-base md:text-lg text-white/85">
        Open the Marketplace, find an agent built for your use case, and let Actionist resolve every dependency before the first run.
      </p>

      <div className="flex flex-wrap items-center justify-center gap-3 pt-2">
        <a className="actionist-cta-btn-primary" href="https://app.actionist.ai" target="_blank" rel="noreferrer">
          Open the Dashboard

          <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round">
            <path d="M5 12h14" />

            <path d="m12 5 7 7-7 7" />
          </svg>
        </a>

        <a className="actionist-cta-btn-secondary" href="mailto:support@actionist.ai">
          Email the team
        </a>
      </div>
    </div>
  </div>
</div>

<div className="w-full pt-2 pb-6">
  <p className="actionist-trust-line">
    Every install resolves automatically: skills, MCP servers, and credentials in one confirm.<br />
    Desktop required for Marketplace write actions · Vault-backed secrets · Automatic version updates.
  </p>
</div>

<div className="w-full pb-16 xc-rise">
  <div className="actionist-tight flex flex-col gap-2 mb-6">
    <span className="actionist-section-eyebrow">Keep going</span>
    <h2 className="text-2xl md:text-3xl font-semibold tracking-tight text-gray-900 dark:text-gray-50">Next steps.</h2>
  </div>

  <Columns cols={4}>
    <Card title="Skills" icon="puzzle" href="/Folders/skills">
      Author, publish, and manage reusable behavior packs for your agents.
    </Card>

    <Card title="Agents" icon="users" href="/Folders/agents">
      Build the agent you want to publish, or one that uses the skills you just installed.
    </Card>

    <Card title="MCP Servers" icon="plug" href="/Folders/mcp">
      Install and configure MCP servers, manage transports, and browse the full integration catalog.
    </Card>

    <Card title="Credentials" icon="key" href="/Folders/credentials">
      Store API keys and tokens in the vault before opening any MCP install drawer.
    </Card>
  </Columns>
</div>
