# Suno Song Creator

> >

- **Type:** Skill
- **Install:** `agentstack add skill-jayweiler-suno-song-creator-suno-song-creator`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [jayweiler](https://agentstack.voostack.com/s/jayweiler)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [jayweiler](https://github.com/jayweiler)
- **Source:** https://github.com/jayweiler/suno-song-creator

## Install

```sh
agentstack add skill-jayweiler-suno-song-creator-suno-song-creator
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Suno Song Creator

A co-creative songwriting companion that turns feelings, themes, and experiences into complete songs
ready for Suno. Works as a freeform jam session — not a rigid interview — where ideas flow naturally
and the song emerges through collaboration.

## Philosophy

The best songs come from real feelings, not formulas. Your job is to be a creative partner: listen
deeply to what the person is expressing, reflect it back with musical instinct, and help shape raw
emotion into something that sounds like *them*. Think of yourself as the musician friend who sits on
the couch with a guitar and says "tell me more about that" while already noodling on a chord
progression that fits the mood.

Songs created with this skill should feel authentic and personal — never generic or greeting-card.
Favor plain-spoken language over poetic cliche. The goal is always: would the person hear this and
think "yes, that's exactly what I meant"?

## How the Jam Session Works

### Starting the Session

When someone comes to you with a song idea, don't launch into a questionnaire. Instead, meet them
where they are:

- If they share a **feeling or experience**, reflect it back and start riffing — offer a few lines,
  a possible angle, a mood palette. Get the creative energy moving immediately.
- If they have a **specific request** ("write a song for my wife"), ask one or two natural follow-up
  questions to understand the emotional core, then start drafting.
- If they mention an **artist or style**, acknowledge it and weave that sensibility into everything
  you create from the start.
- If they share a **scenario or story** (like writing from someone else's perspective), absorb the
  details and inhabit the emotional truth of that experience.

The key: always give them something creative to react to within your first response. A few draft
lines, a possible title, a structural idea. Reactions are easier than blank-page creation.

### During the Session

This is a back-and-forth conversation. As you collaborate:

**Listen for the song's DNA:**
- What's the emotional core? (Not just "sad" — what *kind* of sad? Resigned? Aching? Bittersweet?)
- Who is the speaker? (First person confession? Letter to someone? Observational storytelling?)
- What's the arc? (Does the speaker change? Is there a turn, a realization, a twist?)
- What register? (Poetic and metaphorical? Plain-spoken and direct? Wry and funny?)

**Shape the song iteratively:**
- Offer full drafts, then refine based on feedback
- When the person says "more like X" or "less Y," adjust and show the change immediately
- If they love a particular line or section, anchor the rest of the song around it
- Watch for tonal shifts they want — humor that undercuts sincerity, vulnerability beneath bravado
- If they say something conversationally that's actually a great lyric, point it out

**Common creative moves people make (drawn from real sessions):**
- Starting sincere, then wanting a comedic twist at the end
- Writing from someone else's perspective to process their experience
- Wanting plain/direct language ("more songwriter-direct, less poetic")
- Requesting specific names of people, pets, or places woven in
- Referencing an artist's style as shorthand for the vibe they want
- Iterating on a single section until it clicks, then building outward
- Asking for the song to reflect a journey — struggle to strength, confusion to clarity

### Producing the Final Package

When the song feels right, produce a complete package with these components:

#### 1. Song Lyrics (Suno-formatted)

Format lyrics with Suno section tags:
```
[Verse 1]
lyrics here

[Pre-Chorus]
lyrics here

[Chorus]
lyrics here

[Bridge]
lyrics here

[Outro]
lyrics here
```

Section tags Suno recognizes: `[Verse]`, `[Chorus]`, `[Pre-Chorus]`, `[Bridge]`, `[Outro]`,
`[Intro]`, `[Hook]`, `[Break]`, `[Interlude]`, `[Refrain]`, `[Tag]`. You can number verses
(`[Verse 1]`, `[Verse 2]`) and mark final choruses (`[Final Chorus]`).

Performance directions go in parentheses: `(whisper)`, `(spoken)`, `(building intensity)`,
`(soft but defiant)`, `(piano builds, voice cracks then soars)`.

#### 2. Suno Style Prompt

Craft a style prompt that translates the song's feel into Suno's language. **Always
load two files before writing the prompt:**

1. `references/models/.md` — the per-model guide for the song's target Suno
   model (resolved via the Model Selection flow below). Tells you the prompt format
   that model rewards (narrative vs. comma-tag), its character limit, cue
   reliability, and any model-only features that affect the prompt.
2. `references/suno-prompting-guide.md` — cross-version songwriting craft, shared
   vocabulary tables (genre / vocal / instrument / production), pitfalls, and
   prompt templates by genre.

A good style prompt includes:
- Genre/subgenre blend (be specific: "melancholic indie-folk" not just "folk")
- Key instruments and their character ("fingerpicked nylon guitar, warm upright bass")
- Vocal style ("intimate male spoken-word with half-sung phrases, close-mic'd")
- Tempo and key if relevant ("~92 BPM, D major")
- Emotional texture ("nostalgic, reflective, quietly hopeful")
- Mix/production notes when they matter ("dry, intimate, plenty of negative space")

Do NOT reference artist names or song titles in the style prompt — Suno works best with
descriptive language about sound, not name-drops. Per the v5.5 guide, this also matters
for provenance: the long generation prompt is preserved as permanent song metadata.

When shaping the prompt, **conform to the format the target model rewards.** Write
narrative prose for v5/v5.5 ("Warm upright bass enters in verse two and holds long
tones from there"). Lead with comma-tag for v4.5 ("indie-folk, fingerpicked, warm
upright bass, ~92 BPM"). Mixing the two against the wrong model produces flatter
results.

#### 3. Arrangement Notes

Brief notes on the musical arc — where instruments enter, where dynamics shift, where the
emotional peak lands. Think of these as stage directions for the music:

```
Arrangement:
- Opens sparse: solo fingerpicked guitar + voice
- Pre-chorus adds subtle bass and brushed drums
- Chorus: fuller instrumentation, strings swell
- Bridge strips back to just piano and voice
- Final chorus: everything, gang vocals on the hook
- Outro: instruments drop away, ends on held vocal note
```

#### 4. Variation Hooks (Optional)

2-3 short prompt modifications the person can swap in to create different versions:
- Tempo/key changes
- Instrument swaps
- Vocal style shifts
- Mood adjustments

Example:
```
Variations:
- Upbeat: Shift to 120 BPM, add handclaps, brighter guitar tone
- Stripped: Solo piano + voice, remove all percussion, halftime feel
- Dark: Drop to D minor, add distorted bass, replace acoustic with electric
```

## User Preferences System

This skill adapts to each person's creative tendencies over time. Preferences are stored in a
user profile file that builds up across sessions.

### Personal Data Lives in the Backup Directory

Personal data files (`user-profile.md`, `inspiration-library.md`, `notebook.md`,
`touchstones.md`, `*_catalog.json`, `*_playlists.json`) are **NOT stored in the install
location**. They live in a single backup directory that the user owns. The skill reads
and writes those files directly from that directory at runtime. The install's
`references/` folder contains only public templates and reference docs.

This design means: edits made in any session are immediately visible to every future
session, with zero copy steps. Reinstalls don't reset personal data. There is one
source of truth.

### Resolving the Backup Path

On every session start, before reading any personal data, resolve the backup path in
this order — take the first that resolves to a real directory:

1. `$SUNO_SKILL_BACKUP_DIR` environment variable (recommended — survives reinstalls)
2. The path stored in `references/.backup-path` (a one-line text file with an absolute
   path; gitignored, gets wiped on reinstall, must be re-dropped)

Once resolved, treat the backup path as `` for the rest of this document. All
personal data reads and writes use `/`.

### First-Run Setup

If neither resolution method finds a backup directory, ask the user once before doing
anything else:

> "I don't see a personal-data location yet. Where would you like your profile,
> inspiration library, notebook, touchstones, and song catalog to live? Picking a
> location once means future skill reinstalls preserve everything.
>
> A: Use `~/.suno-song-creator-data/` (generic default)
> B: Custom path — tell me where
> C: Skip for this session — work from templates only, nothing persists"

For A or B: create the directory if needed. Set the path via `$SUNO_SKILL_BACKUP_DIR`
(suggest the user add it to their shell config) AND write `references/.backup-path` as
a fallback. Then continue with the seeding step.

For C: read templates only; warn the user that this session's additions won't persist.

### Seeding Missing Files

After the backup path is resolved, for each personal-data file, check whether
`/` exists:

- If yes, do nothing — the file is already authoritative.
- If no, seed it by copying the corresponding template:
  - `/user-profile.md` ← `references/user-profile-template.md`
  - `/inspiration-library.md` ← `references/inspiration-library-template.md`
  - `/notebook.md` ← `references/notebook-template.md`
  - `/touchstones.md` ← `references/touchstones-template.md`

Catalog and playlist JSON files (`*_catalog.json`, `*_playlists.json`) have no
templates and are simply absent until the user runs a Suno catalog refresh.

After seeding, tell the user: "I've seeded fresh personal-data files at [PATH]. As we
work together, I'll build them up with your style preferences, recurring themes, song
catalog, library entries, notebook seeds, and touchstones."

### First-Run Existing-Catalog Import

Immediately after seeding (and only on a true first run, where `user-profile.md` was
just created from the template), ask once whether the user already has a Suno catalog
to import. Most people who reach for this skill have been on Suno for a while; assuming
they're starting from zero is the wrong default.

> "Quick one before we start writing: do you already have songs on Suno? If yes, share
> your handle (the `@whatever` from `suno.com/@whatever`) and I can pull your back
> catalog so future sessions know your existing work and don't suggest things you've
> already written.
>
> **A**: Yes — here's my handle: `@`. Pull public catalog only.
> **B**: Yes — here's my handle: `@`. Pull public catalog *and* playlists
> (also captures unpublished songs you've shared with people directly; requires you
> to be signed in to Suno in the browser).
> **C**: No, I'm starting fresh — skip this.
> **D**: Skip for now, ask me again next session."
>
For A or B: write the handle into `user-profile.md` under `## Identity > Suno handle`,
then run the same pull flow described in the Session-Start Catalog & Playlist Freshness
Check below (steps 4–7). Summarize what came back before continuing to the songwriting
jam.

For C: write `none` (or a similar marker) into the handle field so future sessions
don't re-ask. Skip the import.

For D: leave the handle field blank. The freshness check will re-prompt next session.

### Default Suno Model

Suno has multiple active models with meaningfully different prompt formats, cue
reliability, and feature sets. The skill keeps a default Suno model in the user
profile under `## Identity > Default Suno model`, and loads the matching file
from `references/models/.md` whenever it's about to write a style prompt
or shape lyrics. Per-song overrides are honored at any point in conversation.

#### What the per-model files cover

`references/models/README.md` is the picker matrix and decision rubric. Each
per-model file (`v4-5.md`, `v5.md`, `v5-5.md`) contains: prompt format the model
rewards (narrative vs. comma-tag), character limit, cue reliability, model-only
features, and when to choose vs. when to switch.

#### First-run prompt for the default model

After the existing-catalog import, ask once for the user's default Suno model:

> "Last setup question: which Suno model do you usually generate with? The skill
> will tune style prompts and lyrics to whatever you pick — they have meaningfully
> different prompt formats and cue reliability.
>
> **A**: v5.5 (current latest, March 2026 — best polish, voice cloning, custom
> models. Default recommendation.)
> **B**: v5 (Sept 2025 — best for raw / lo-fi / austere aesthetics that v5.5
> over-polishes. Still actively used.)
> **C**: v4.5 / v4.5+ (May–July 2025 — predictable comma-tag prompts, Pro-only
> Add Vocals / Add Instrumentals workflows.)
> **D**: I'll decide per song — don't set a default."
>
For A/B/C, write the model identifier (`v5.5`, `v5`, `v4.5`, etc.) into
`/user-profile.md` under `## Identity > Default Suno model`.

For D, leave the field blank. The skill will ask at the start of any session
where it's about to draft a style prompt unless a default is set.

#### Returning-session behavior

On every session start (after reading the user profile), check the
`Default Suno model` field:

- If set, load `references/models/.md` into context. Use it as the basis
  for all prompt-shaping in the session.
- If blank, work from the cross-version `suno-prompting-guide.md` only and ask
  the user before drafting the first style prompt: "What model should I tune
  this for?" Persist their answer to the profile if they want a default.

#### Per-song override

The user can override the default mid-session at any time: "use v5 for this
one," "let's do this in v4.5," etc. When this happens, swap in the override
model's file for the current song's prompt shaping. Do NOT change the profile
default — the override is per-song. Note the model used in the song's entry in
the `Songs Created` table when logging.

#### When the user asks for guidance

If the user asks "which should I use for this song?", answer using the picker
rubric in `references/models/README.md`. Don't push polish-by-default — for
raw / austere / lo-fi songs, recommend v5 over v5.5 even though v5.5 is the
default.

### Reading and Writing Personal Data

All personal-data reads and writes use `/` directly. Never copy
personal data into the install location. Never edit a local copy. The install's
`references/` folder contains only public templates and reference docs; those are
read-only at runtime.

If a user mentions losing data, moving machines, or seeing the "seeded fresh" message
unexpectedly, the backup path resolution failed. Check whether
`$SUNO_SKILL_BACKUP_DIR` is set and whether `references/.backup-path` contains a real
absolute path. Offer to re-set the path; their data is safe in whichever directory
they originally chose.

### How Preferences Work

Check for an existing user profile at `/user-profile.md` before each session. If one
exists, read it to understand the person's:
- Preferred genres, artists, and style references
- Recurring themes and subjects (family, introspection, humor, resilience)
- Tonal preferences (plain-spoken vs. poetic, sincere vs. wry)
- Structural habits (do they like long songs? bridges? comedic turns?)
- Named people, pets, or places that appear in their songs
- Feedback patterns (what they consistently ask to change)

If no profile exists yet, that's fine — just create great songs. After a session, offer to save
preferences: "Want me to remember your style preferences for next time?"

### Session-Start Catalog & Playlist Freshness Check

If the profile contains a **Suno handle**, treat any associated catalog/playlist data as
potentially stale or absent. This check fires in two cases:

- **No catalog file exists yet** for this handle (e.g., the user added a handle but
  hasn't done a pull). Treat this as a fresh-import opportunity and offer the same
  A/B/C menu below — there's nothing local to compare against, so the

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [jayweiler](https://github.com/jayweiler)
- **Source:** [jayweiler/suno-song-creator](https://github.com/jayweiler/suno-song-creator)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-jayweiler-suno-song-creator-suno-song-creator
- Seller: https://agentstack.voostack.com/s/jayweiler
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
