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

# Aria

> Aria is Patchline's AI assistant for the music business — one orchestrator that coordinates release strategy, A&R research, catalog captioning, playlist matching, audience reads, and connector actions across your full Patchline workspace.

export const SurfaceMatrix = ({feature}) => {
  const FEATURE_SURFACES = {
    aria: {
      web: {
        available: true,
        detail: "Full surface — dashboard home"
      },
      telegram: {
        available: true,
        detail: "@AriaMusicBizBot, public"
      },
      claude: {
        available: true,
        detail: "Via the Patchline plugin"
      },
      mcp: {
        available: true,
        detail: "Product tools via OAuth 2.0 / PKCE"
      }
    },
    "catalog-import": {
      web: {
        available: true,
        detail: "Paste URL in dashboard"
      },
      telegram: {
        available: true,
        detail: "Paste URL to @AriaMusicBizBot"
      },
      claude: {
        available: true,
        detail: "Through Aria plugin actions"
      },
      mcp: {
        available: true,
        detail: "analyze_url tool"
      }
    },
    "sonic-analysis": {
      web: {
        available: true,
        detail: "Auto-runs on upload"
      },
      telegram: {
        available: true,
        detail: "Paste track URL to @AriaMusicBizBot"
      },
      claude: {
        available: true,
        detail: "Through Aria plugin"
      },
      mcp: {
        available: true,
        detail: "get_audio_features / get_song_intelligence"
      }
    },
    "release-planner": {
      web: {
        available: true,
        detail: "Dashboard → Projects"
      },
      telegram: {
        available: false,
        detail: "Conversation only, no full rollout view"
      },
      claude: {
        available: true,
        detail: "Through Aria plugin"
      },
      mcp: {
        available: true,
        detail: "get_releases tool"
      }
    },
    storefront: {
      web: {
        available: true,
        detail: "Dashboard → Store + public /store/[slug]"
      },
      telegram: {
        available: false,
        detail: "Not a Telegram surface"
      },
      claude: {
        available: false,
        detail: "Not yet exposed"
      },
      mcp: {
        available: false,
        detail: "Not yet exposed"
      }
    }
  };
  const f = FEATURE_SURFACES[feature];
  if (!f) return null;
  const surfaces = [{
    key: "web",
    label: "Web dashboard",
    icon: "🖥"
  }, {
    key: "claude",
    label: "Claude",
    icon: "✨"
  }, {
    key: "mcp",
    label: "MCP",
    icon: "⚡"
  }];
  return <table style={{
    width: "100%",
    marginTop: "12px",
    marginBottom: "12px"
  }}>
      <thead>
        <tr>
          <th style={{
    textAlign: "left",
    padding: "8px 12px",
    borderBottom: "1px solid rgba(255,255,255,0.10)"
  }}>Surface</th>
          <th style={{
    textAlign: "left",
    padding: "8px 12px",
    borderBottom: "1px solid rgba(255,255,255,0.10)"
  }}>Status</th>
          <th style={{
    textAlign: "left",
    padding: "8px 12px",
    borderBottom: "1px solid rgba(255,255,255,0.10)"
  }}>Notes</th>
        </tr>
      </thead>
      <tbody>
        {surfaces.map(s => {
    const v = f[s.key];
    return <tr key={s.key}>
              <td style={{
      padding: "8px 12px",
      borderBottom: "1px solid rgba(255,255,255,0.05)"
    }}>
                <span style={{
      marginRight: "8px"
    }}>{s.icon}</span>
                {s.label}
              </td>
              <td style={{
      padding: "8px 12px",
      borderBottom: "1px solid rgba(255,255,255,0.05)"
    }}>
                {v.available ? <span style={{
      color: "#22C55E",
      fontWeight: 600
    }}>✓ Available</span> : <span style={{
      color: "#71717A"
    }}>— Not available</span>}
              </td>
              <td style={{
      padding: "8px 12px",
      borderBottom: "1px solid rgba(255,255,255,0.05)",
      fontSize: "13px",
      color: "inherit"
    }}>
                {v.detail}
              </td>
            </tr>;
  })}
      </tbody>
    </table>;
};

export const AriaPromptCard = ({prompt, surface = "web"}) => {
  const surfaces = {
    web: {
      href: "https://patchline.ai/dashboard",
      label: "Try in dashboard"
    },
    telegram: {
      href: "https://t.me/AriaMusicBizBot",
      label: "Try in Telegram"
    },
    claude: {
      href: "https://patchline.ai/claude",
      label: "Try in Claude"
    },
    mcp: {
      href: "https://patchline.ai/mcp",
      label: "Install MCP first"
    }
  };
  const s = surfaces[surface] ?? surfaces.web;
  return <div style={{
    display: "flex",
    justifyContent: "space-between",
    alignItems: "center",
    gap: "16px",
    padding: "12px 16px",
    marginBottom: "12px",
    borderRadius: "10px",
    border: "1px solid rgba(255,255,255,0.10)",
    background: "rgba(255,255,255,0.03)"
  }}>
      <code style={{
    fontFamily: "var(--font-family-mono)",
    fontSize: "14px",
    color: "inherit",
    flex: 1
  }}>
        "{prompt}"
      </code>
      <a href={s.href} target="_blank" rel="noopener noreferrer" style={{
    fontSize: "12px",
    fontWeight: 600,
    padding: "6px 12px",
    borderRadius: "999px",
    background: "linear-gradient(92deg, #00E6E2, #0068FF)",
    color: "#FFFFFF",
    textDecoration: "none",
    whiteSpace: "nowrap"
  }}>
        {s.label} →
      </a>
    </div>;
};

export const TierBadge = ({tier}) => {
  const styles = {
    free: {
      label: "Free",
      color: "#A1A1AA"
    },
    starter: {
      label: "Starter+",
      color: "#00E6E2"
    },
    pro: {
      label: "Pro+",
      color: "#0068FF"
    },
    scale: {
      label: "Scale+",
      color: "#7A5BFF"
    },
    enterprise: {
      label: "Enterprise",
      color: "#FF7A59"
    },
    all: {
      label: "All plans",
      color: "#22C55E"
    }
  };
  const t = styles[tier?.toLowerCase()] ?? styles.all;
  return <span style={{
    display: "inline-flex",
    alignItems: "center",
    gap: "4px",
    padding: "2px 10px",
    borderRadius: "999px",
    border: `1px solid ${t.color}40`,
    background: `${t.color}1A`,
    color: t.color,
    fontSize: "12px",
    fontWeight: 600,
    fontFamily: "var(--font-family-mono)",
    verticalAlign: "middle"
  }}>
      {t.label}
    </span>;
};

export const AICallout = ({page}) => {
  const slug = page ?? "";
  const mdUrl = `https://docs.patchline.ai${slug}.md`;
  return <div style={{
    marginTop: "32px",
    padding: "16px 20px",
    borderRadius: "12px",
    border: "1px solid rgba(0,230,226,0.25)",
    background: "linear-gradient(135deg, rgba(0,230,226,0.08), rgba(0,104,255,0.05))",
    color: "inherit",
    fontSize: "14px",
    lineHeight: 1.6
  }}>
      <strong style={{
    display: "block",
    marginBottom: "6px",
    color: "#00E6E2"
  }}>
        For AI agents reading this page
      </strong>
      The canonical machine-readable version of this page is at{" "}
      <a href={mdUrl}>
        <code>{mdUrl}</code>
      </a>
      . For product actions, connect to{" "}
      <code>www.patchline.ai/api/mcp/v1</code>
      {" "}and call MCP <code>tools/list</code> for the current tool schema.
      Rules for navigating these docs:{" "}
      <a href="https://docs.patchline.ai/AGENTS.md">
        <code>docs.patchline.ai/AGENTS.md</code>
      </a>
      .
    </div>;
};

Aria is Patchline's AI assistant for the music business. You talk to Aria
the same way you talk to a manager, A\&R, or label-ops person — and Aria
takes action: reads your catalog, queries streaming data, drafts pitches,
plans releases, updates project anchors, generates artwork briefs.

Aria is one assistant with multiple front doors. <TierBadge tier="all" />

## What Aria does

Aria is one assistant covering many disciplines — release strategy,
A\&R research, catalog captioning, playlist matching, audience reads,
storefront ops, content generation, and cross-tool actions through
your connectors.

<CardGroup cols={2}>
  <Card title="Plan a release" icon="rocket" href="/releases/release-planner">
    Generate an intelligent rollout — milestones, launch windows, and
    next-best-actions — tuned to the artist's journey and the
    music-business knowledge graph.
  </Card>

  <Card title="AI-discoverable tracks" icon="waveform" href="/catalog/sonic-analysis">
    Uploaded audio gets an AI-readable caption Aria can reason about
    and any connected AI tool can discover.
  </Card>

  <Card title="Research any artist" icon="binoculars" href="/artists/intelligence-profile">
    Streaming, follower growth, top tracks, similar artists, audience
    demographics, engagement, interests, and health signal for any
    artist on the planet.
  </Card>

  <Card title="Match playlists" icon="list-music" href="/playlists/overview">
    Rank Spotify playlists by sonic fit plus curator responsiveness.
    Inspect a playlist before you pitch.
  </Card>

  <Card title="Read the audience" icon="chart-network" href="/artists/audience">
    Fan graph across your roster, QR attribution from real-world
    moments, growth signal across DSPs and socials.
  </Card>

  <Card title="Generate visuals" icon="palette" href="/visual-library/overview">
    Cover art, promo flyers, and Canvas videos — built from your
    release context and saved to your Visual Library.
  </Card>

  <Card title="Run your storefront" icon="store" href="/storefront/overview">
    Sell direct to fans with 0% platform fees on paid tiers. Aria can
    set up products, smart links, and pricing.
  </Card>

  <Card title="Manage your roster" icon="users" href="/artists/roster">
    Add and claim profiles, pull intelligence in the background, ask
    Aria for cross-roster reads.
  </Card>
</CardGroup>

## When to use Aria

Use Aria for the work that lives between tools — the strategy and
synthesis that usually means hopping between Spotify for Artists, your
DAW, a label spreadsheet, and a notes app.

* **You just finished a track and don't know what to do next.** Paste the
  file or the link. Aria gives you a release plan grounded in your
  catalog, your audience, and what's actually working for artists like you
  right now.
* **A curator asked for a pitch and you have an hour.** "Pitch this track
  to Mint Friday curators" returns a draft you can edit and send.
* **You want to know if you have momentum.** "Summarize my streaming for
  the last month" pulls the real numbers, not vibes.
* **You're managing 5 artists and an upcoming release schedule.** "What
  do I owe on Mira's release this week?" reads the project anchor and
  returns the shortlist.

## Where Aria lives

Same Aria, multiple surfaces. Pick whichever fits the workflow you're
already in — they all hit the same data and the same connectors.

<CardGroup cols={2}>
  <Card title="Web dashboard" icon="browser" href="https://patchline.ai/dashboard">
    The full surface. Profiles, Catalog, Projects, Playlists, Visual
    Library, Music Store, Launchpad, Audience — all wired to Aria
    on the home screen.
  </Card>

  <Card title="Claude (Desktop + Claude Code)" icon="message" href="/for-agents/claude-plugin">
    Official Patchline plugin. Ground every Claude prompt in your real
    catalog, audience, and release context. Includes a progressive
    release-planning workflow inside Claude.
  </Card>

  <Card title="Cursor / Codex / VS Code (MCP)" icon="code" href="/for-agents/mcp-install">
    The Patchline MCP server. OAuth 2.0 with PKCE — your credentials
    never touch the AI client. Your catalog becomes callable tools.
  </Card>

  <Card title="Aria on Slack" icon="hashtag">
    Chat with Aria from your team channels. Briefings, release prompts,
    and deliveries run in-thread.
  </Card>
</CardGroup>

<SurfaceMatrix feature="aria" />

## Quick start

<Steps>
  <Step title="Sign in">
    Go to [patchline.ai](https://patchline.ai) and create a free account.
    Free tier lets you explore the surface with limited credits. See [Pricing](/get-started/pricing) for current limits.
  </Step>

  <Step title="Connect your music">
    Paste a Spotify, YouTube, or SoundCloud URL into Aria, or upload an
    MP3 / WAV / FLAC directly. URL import pulls metadata into your
    catalog. Uploading audio unlocks
    [AI captioning](/catalog/sonic-analysis).
  </Step>

  <Step title="Ask Aria what to do next">
    Try one of these:

    <AriaPromptCard prompt="Plan a release for this track." />

    <AriaPromptCard prompt="Find playlists that fit this song." />

    <AriaPromptCard prompt="Pitch this to lo-fi curators." />

    <AriaPromptCard prompt="What's my best-performing track this month?" />
  </Step>

  <Step title="(Optional) Add Aria to your AI editor">
    Install the [Claude plugin](/for-agents/claude-plugin) or the
    [MCP server](/for-agents/mcp-install) so the AI tool you already use
    can read your catalog.
  </Step>
</Steps>

## Prerequisites

* A free Patchline account ([sign up](https://patchline.ai)).
* At least one track in your catalog (uploaded or imported) for tools
  that reference your catalog. Aria can answer general questions without
  a catalog, but the answers get much sharper once it has your real data.
* For the [Claude plugin](/for-agents/claude-plugin): Claude Desktop or
  Claude Code.
* For the [MCP server](/for-agents/mcp-install): Cursor, Codex, VS Code,
  or any MCP-compatible client.

## One agent, many disciplines

Aria is built as an **orchestrator** — not a single LLM with a long
system prompt, but a coordination layer that holds your full context
and routes work across many specialized capabilities under the hood.

What that means in practice:

* **Aria has access to your Patchline workspace context.** Profiles, catalog,
  releases, playlists, visuals, music store, launchpad, audience,
  connectors. One conversation can pull from all of them.
* **Aria coordinates many specialist capabilities.** Artist research,
  catalog captioning, playlist matching, release strategy, pitch
  drafting, audience reads, visual generation, storefront ops,
  connector actions. You see one assistant. Behind it, dozens of
  capabilities are being chosen, sequenced, and combined to answer
  your prompt.
* **Aria reads the music-business knowledge graph.** Aria isn't just
  reasoning over your data — it's also reasoning over a deep,
  continuously updated model of the music business: what works for
  which artist tier, which playlists are moving, which audiences are
  growing where. That's what makes "what do I do now, and why?" a
  real question with a real answer.

This is why we built Aria as **one agent to rule them all**, instead
of shipping ten separate agents you'd have to switch between. The
work in the music business doesn't live in silos — your audience is
your release strategy is your storefront. Your assistant shouldn't
either.

## Grounded by design

Every Aria answer is grounded in real data — your account state plus
the music-business knowledge graph. Aria does not invent ISRCs,
fabricate stream counts, or guess curator names. If a piece of data
isn't available, Aria says so and offers to fetch it.

You can verify any number Aria gives you. That's the design.

## Developer / agent surface

The same orchestrator is exposed to external AI clients through the
product MCP at
[`www.patchline.ai/api/mcp/v1`](/for-agents/mcp-overview). Cursor,
Claude Code, Codex, and any MCP-compatible client can call into
Aria's capability surface using their own AI.

<Note>
  Every tool call is grounded in your data. Aria never invents an ISRC, a
  streaming number, or a curator name. If the data isn't there, Aria says
  so and offers to fetch it.
</Note>

## Examples

### Example 1 — From a Spotify link to a release plan

> **You:** here's my new single, planning to drop in 6 weeks
> [https://open.spotify.com/track/](https://open.spotify.com/track/)...
>
> **Aria:** Got it. *\[reads title, artist, ISRC, cover art, release
> date]*. This is a metadata import, so upload the audio when you want
> sonic captioning. Closest artists in your roster: Mira, Tessa. I can
> draft a 6-week rollout from the release metadata and your artist
> context:
>
> * Week -6: confirm artwork, write pitch copy
> * Week -4: submit to Spotify editorial via your `submission_status: eligible` flag
> * Week -2: smart link, pre-save, Telegram teaser
> * Week 0: release day, DMs to the 8 curators who added Mira's last single
> * Week +2: post-release: TikTok ad targeting the dreampop cluster
>
> Want me to create the project anchor and schedule the tasks?

### Example 2 — Cross-roster audience read

> **You:** Which artist on my roster is gaining traction fastest right
> now, and which markets is it coming from?
>
> **Aria:** Cleo Bell. Up 18% in monthly listeners over the last 30
> days, +42% on TikTok. Lift is concentrated in three cities — Mexico
> City, São Paulo, and Stockholm — and traces back to a sync placement
> two weeks ago. Want me to draft a localized push for those three
> markets?

### Example 3 — Multi-tool workflow

> **You:** is there a playlist on Spotify with a curator I could pitch
> Mira's new track to, who also added a similar artist recently?
>
> **Aria:** Yes, three:
>
> * **Lush Sounds** (78k followers, curator: @lush\_sounds\_oslo) — added
>   Tessa's "Sleeper" 11 days ago. Submission status: open.
> * **Bedroom Vibes** (210k followers, curator: @bedroomvibes) — added
>   four dreampop tracks this month. Submission status: open.
> * **Future Female Sounds** (190k followers, curator: @futurefemale) —
>   adds quickly, high curator responsiveness score.
>
> Want a pitch draft for the first one?

## Pricing

Plans, AI credits, and limits live on the [pricing page](https://patchline.ai/pricing) — we keep them there so they're always current.

## Related features

* [Talking to Aria — prompts that work](/aria/prompts)
* [Talking to Aria](/aria/prompts) — on-demand summaries
* [MCP server overview](/for-agents/mcp-overview) — Aria's tool surface
* [Claude plugin](/for-agents/claude-plugin) — Aria inside Claude

## FAQ

<AccordionGroup>
  <Accordion title="What model does Aria use?">
    Aria runs on hosted frontier AI models combined with Patchline-built
    tooling. Exact model versions and providers may change as quality,
    latency, and reliability improve.
  </Accordion>

  <Accordion title="Can Aria send emails or post to social media?">
    Aria can act through your [connectors](/integrations/overview) —
    Instagram, ClickUp, Notion, and more. For surfaces not yet available
    as connectors, Aria drafts the copy and you publish it.
  </Accordion>

  <Accordion title="Why did Aria refuse to answer my question?">
    Aria is grounded in your data. If you ask about a track that isn't in
    your catalog or an artist you haven't added to your roster, Aria will
    say so and offer to import. This is by design — better a clear "I
    don't have that" than a confident-sounding wrong answer.
  </Accordion>

  <Accordion title="Is there an API I can call directly?">
    Yes — for AI agents. Patchline's product MCP server at
    [`www.patchline.ai/api/mcp/v1`](/for-agents/mcp-overview) exposes the
    public tool surface. A direct REST API is Enterprise-only today.
  </Accordion>

  <Accordion title="What happens if Aria gets it wrong?">
    Send feedback via the thumbs-down on any chat message. The signal
    feeds product improvement. We
    review every thumbs-down weekly.
  </Accordion>
</AccordionGroup>

<AICallout page="/aria/overview" />
