# Install Muse (instructions for AI agents)

You were asked to install Muse, a winamp-style music player for mac, on the user's Mac. Follow
these steps in order. Each one says how to check it worked. Keep the user informed in plain words.

Muse is a tiny music player for macOS in the spirit of Winamp. It plays your own music files (MP3, AAC, ALAC, FLAC, WAV, AIFF), floats above other windows, shrinks to just the cover, lives in the menu bar, and changes its whole look with a skin: a single JSON file that you, or an AI agent, can write. It comes with a `muse` command-line tool so agents can install it, control playback, and create, check and preview skins.

## 1. Check the Mac

Run:

```bash
sw_vers -productVersion   # must be 14 or higher
uname -m                  # must be arm64 (Apple silicon)
```

If either doesn't match, stop and tell the user: Muse needs macOS 14 (Sonoma) or later on Apple silicon.

## 2. Install

Run the installer. It takes a few seconds, needs no sudo, and prints each step:

```bash
curl -fsSL https://tinymuse.app/install.sh | sh
```

It downloads https://tinymuse.app/download/Muse.zip, checks its SHA-256, puts Muse.app in /Applications (or ~/Applications),
links the `muse` command to ~/.local/bin/muse, adds the skin skill for Claude Code
(~/.claude/skills/muse-skins) and Codex (~/.codex/skills/muse-skins) when those exist, and opens Muse.
Read it first if you like: https://tinymuse.app/install.sh

If you can't pipe to sh, do the same by hand:

```bash
curl -fsSL https://tinymuse.app/download/Muse.zip -o /tmp/Muse.zip
curl -fsSL https://tinymuse.app/download/Muse.zip.sha256                      # compare with:
shasum -a 256 /tmp/Muse.zip
ditto -x -k /tmp/Muse.zip /Applications
mkdir -p ~/.local/bin && ln -sf /Applications/Muse.app/Contents/Helpers/muse ~/.local/bin/muse
open -g /Applications/Muse.app
```

## 3. Check it works

```bash
muse status --json
```

If `muse` isn't found, ~/.local/bin isn't on PATH yet: use `~/.local/bin/muse` for the rest of this
session and tell the user to add `export PATH="$HOME/.local/bin:$PATH"` to ~/.zshrc. A JSON answer
with `"playing"`, `"volume"` and `"skin"` means Muse is running and listening.

## 4. Play the user's music

```bash
muse add ~/Music --play
```

This adds every audio file in the folder (MP3, AAC, ALAC, FLAC, WAV, AIFF) and starts playing. If
~/Music has no audio files (`muse status` then says nothing is playing), ask the user where their
music is and add that folder instead. Muse plays local files only; it doesn't stream.

## 5. Make skins

Muse's look is a skin: one JSON file that sets colours, fonts and the whole layout. The full guide for
agents is the skill at https://tinymuse.app/skills/muse-skins/SKILL.md; read it before making a skin. The short loop:

```bash
muse skin reference                                   # node types and properties
muse skin new "<Name>" --from <closest built-in skin>  # prints the skin.json path to edit
muse skin validate "<Name>"                           # fix every reported problem
muse skin snapshot /tmp/preview.png --skin "<Name>"   # look at the image, improve, repeat
muse skin apply "<Name>"                              # only once the user is happy with it
```

Start from the built-in skin closest to the idea. These have their own layouts: Default (cover
beside the controls), Pill, Card, Turntable (a spinning record), Tape (a cassette). Midnight, Paper
and Mono only recolour the Default layout. User skins live in
~/Library/Application Support/Muse/Skins/<Name>/skin.json, next to any images they use.

Backgrounds are a colour, a gradient `{ "gradient": ["#2b2b2b", "#111"], "angle": 90 }`, a material
`{ "material": "translucent" }`, an image `{ "image": "bg.png" }` or blurred cover art
`{ "artwork": { "blur": 40 } }`. When unsure of a property's shape, check https://tinymuse.app/skin.schema.json.
Their files: https://tinymuse.app/skins/<Name>.json. Format reference: https://tinymuse.app/skins.md and https://tinymuse.app/skin.schema.json.

## 6. Everything the muse command does

```
muse — control the Muse music player and its skins

Playback (starts Muse if needed):
  muse status                     Now playing, position, volume, skin (use --json for scripts)
  muse play | pause | toggle | next | prev | stop
  muse volume <0-100>
  muse seek <seconds>
  muse add <file or folder>… [--play]
  muse mini [on|off]              Toggle or set the mini player
  muse pin [on|off]               Toggle or set always-on-top
  muse edit                       Open Edit Info for the current song
  muse menubar [on|off]           Move Muse into the menu bar (window and Dock icon hide) or back

Skins:
  muse skin list                  Installed skins (★ = current)
  muse skin current               The current skin's id
  muse skin apply <name|id|path>  Switch skin. A path to a skin folder or .json installs it first
  muse skin new <name> [--from <skin>]
                                  Copy a skin (default: Pill) into your skins folder to edit
  muse skin validate <name|path>  Check a skin (by name, folder or skin.json); prints each problem
  muse skin snapshot <out.png> [--skin <name|path>] [--mini | --menubar]
                                  Screenshot the player (optionally with another skin),
                                  its mini player, or its menu bar popover
  muse skin reference             Short list of node types and properties (easier to read)
  muse skin schema                Full JSON Schema for skin.json
  muse skin folder                Where your skins live
  muse skin reload                Re-read all skins and list problems

Options:
  --json                          Machine-readable output
  -h, --help                      This help

Skin format: SKINS.md in the Muse repository, or `muse skin schema`.
```

## 7. Tell the user

- Muse is in Applications and floats above other windows (the pin button or ⌥⌘T turns that off).
- ⌥⌘M switches to the mini player; ⌥⌘B moves Muse to the menu bar.
- Click a song's cover to edit its title, artist or artwork.
- The Skins menu previews a skin on hover.
- What you installed, and how to undo it (below).

## Uninstall

```bash
curl -fsSL https://tinymuse.app/install.sh | sh -s -- --uninstall
```

This removes the app, the `muse` link and the skills. The user's skins and settings stay in
~/Library/Application Support/Muse.

## If something goes wrong

- **"Muse didn't answer":** open it with `open -b com.ionprodan.Muse` and try again.
- **A snapshot comes out without the blur or shadows:** the terminal lacks Screen Recording
  permission, so Muse drew the window itself. That's fine for checking a layout.
- **"Muse can't be opened" after a browser download:** right-click Muse in Applications and choose
  Open. (The installer above avoids this.)
