# Sources

> Sources — add, edit, or remove streams and genres

- **Type:** Skill
- **Install:** `agentstack add skill-kennethleungty-claude-music-sources`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [kennethleungty](https://agentstack.voostack.com/s/kennethleungty)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [kennethleungty](https://github.com/kennethleungty)
- **Source:** https://github.com/kennethleungty/claude-music/tree/main/skills/sources

## Install

```sh
agentstack add skill-kennethleungty-claude-music-sources
```

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

## About

This skill is part of the claude-music plugin. Only invoke when the user explicitly uses the slash command.

# Sources Manager

Manage the music streams and genres available in the claude-music plugin. This is a conversational editor — the user tells you what they want to change and you handle the YAML.

## Critical Rules

- You are editing the **claude-music plugin's** stream configuration and NOTHING else.
- The ONLY file you may modify is: `${CLAUDE_PLUGIN_ROOT}/config/sources.yml`
- NEVER edit, create, or modify any other file on the user's system.
- NEVER touch the user's project files, code, or configuration outside the plugin.

## On Launch

First, read the current sources file:

```bash
cat "${CLAUDE_PLUGIN_ROOT}/config/sources.yml"
```

Then display a clean summary for the user:

**Your music sources:**

For each genre, show:
- Genre name (bold)
- Each stream: name and URL

At the end, tell the user what they can do:

> You can ask me to:
> - **Add a stream** — e.g. "add a stream to jazz called KCSM with url http://..."
> - **Add a genre** — e.g. "add a new genre called rock"
> - **Remove a stream** — e.g. "remove Nightwave Plaza from lofi"
> - **Remove a genre** — e.g. "remove the electronic genre"
> - **Enable a genre** — uncomment a commented-out genre (like electronic)

## Handling Edits

When the user asks to make a change:

1. **Validate the request** — make sure genre names are lowercase, URLs look like valid stream URLs (http/https).
2. **Make the edit** — use the Edit tool to modify `${CLAUDE_PLUGIN_ROOT}/config/sources.yml`. Preserve the existing YAML structure: top-level genre keys, 2-space indent for `- name:` list items, 4-space indent for `url:` properties.
3. **Confirm** — show what changed in a brief, clear message.
4. **Stay available** — ask if they want to make more changes.

### Adding a stream to an existing genre

Append a new `- name: / url:` entry under that genre's list. Use 2-space indent for list items, 4-space indent for properties:
```yaml
genre:
  - name: Station Name
    url: http://stream.url/path
```

### Adding a new genre

Add a new top-level key with the same structure as above.

### Removing a stream

Remove the `- name:` and `url:` lines for that stream.

### Removing a genre

Remove the entire genre block.

### Enabling a commented-out genre

Uncomment all lines in the block (remove `# ` prefix).

## Style

- Keep responses short and friendly.
- Use the stream/station names when confirming changes, not raw URLs.
- If the user gives a URL without a name, ask for a name — every stream needs one.
- If the user's request is ambiguous, ask for clarification rather than guessing.

## Source & license

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

- **Author:** [kennethleungty](https://github.com/kennethleungty)
- **Source:** [kennethleungty/claude-music](https://github.com/kennethleungty/claude-music)
- **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-kennethleungty-claude-music-sources
- Seller: https://agentstack.voostack.com/s/kennethleungty
- 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%.
