Skip to content
Automation
Skill

/now

Show what's currently playing on this Mac (any app — Spotify, Apple Music, browsers). Use when the user asks what song/track/music is playing, who the artist is, or wants playback status.

From plugin
media
416 skills1 hook

Claude Code

$ npx -y skills add Bangs00/claude-media-control --skill now --agent claude-code

SKILL.md

now.SKILL.md
name: now
description: Show what's currently playing on this Mac (any app — Spotify, Apple Music, browsers). Use when the user asks what song/track/music is playing, who the artist is, or wants playback status.
allowed-tools: Bash

Current system-wide now-playing state (JSON):

!`"${CLAUDE_PLUGIN_ROOT}/scripts/media.sh" now`

The progress bar, already rendered (empty when the bar is switched off, when nothing is playing, or when the track has no duration):

!`"${CLAUDE_PLUGIN_ROOT}/scripts/media.sh" bar`

Present the state to the user exactly in this format, as plain markdown lines — NOT inside a code block, so the bold/italic styling renders:

  • Line 1: `▶︎ **<title>** — *<artist>* · <appName>` — use `▶︎` when `playing` is true, `⏸` when false; title bold, artist italic. If `appName` is missing, use `bundleIdentifier`.
  • Line 2 (only when the bar above is non-empty): the bar copied **verbatim**, then two spaces and `**m:ss** / m:ss` (elapsed time bold). Never redraw the bar, re-space it, change its width, or substitute its characters — `media.sh bar` is the same builder that draws the statusline segment, and copying it byte-for-byte is what keeps the two surfaces agreeing. Most presets cannot be reproduced by hand anyway: they are computed waveforms whose glyphs depend on the playback position.
  • The elapsed `m:ss` is ALWAYS `elapsedTimeNow` (use `elapsedTime` only when `elapsedTimeNow` is absent) — `elapsedTime` is the app's last snapshot and can lag minutes behind; the statusline segment shows `elapsedTimeNow`, so anything else here would contradict it. The total `m:ss` is `duration`.
  • If `duration` is absent (live stream): the bar comes back empty; show `**m:ss** / LIVE` (same elapsed rule).
  • If the JSON is `null`: tell the user nothing is playing right now.
  • If the JSON contains `"degraded": true` or a stderr hint appeared: add one short note that the plugin is in fallback mode and `/media:doctor` has details.

Example (the markdown you output):

▶︎ **Neon Horizon** — *Midnight Arcade* · Firefox
━━━━━━━━━━━─────────  **2:07** / 3:48
Read more
@bangs00
Ships withmedia

The current track, live in your Claude Code statusline — ticking every second, ⌘+clickable, styleable down to the bar characters: And whatever your Mac is playing — Spotify, Apple Music, a browser tab, VLC — you can control it from the chat too: "what song is

Stars on GitHub

Momentum

stars in total
4
Star history of Bangs00/claude-media-control on GitHub, a chart by star-history.com

Other skills on media.

verify

verify

How to verify media.sh changes end-to-end on a real Mac — isolated data dir, real native build, and a controllable fake…

@bangs00@bangs00Install Skill
artwork

artwork

Show the album artwork (cover art) of the currently playing track. Use when the user asks to see the album art, cover image, or…

@bangs00@bangs00Install Skill
config

config

Quick media settings — turn the now-playing statusline, the /media:now progress bar, or the playback history on/off, or reset the…

@bangs00@bangs00Install Skill
doctor

doctor

Diagnose the media plugin — native build, read/control paths, fallbacks, permissions — and suggest fixes. Use when media commands…

@bangs00@bangs00Install Skill
history

history

Show recently played tracks (a passive local playback log). Use when the user asks what played earlier, what song was on before,…

@bangs00@bangs00Install Skill
menu

menu

Interactive media remote — control playback via a selectable menu (toggle, next, previous, seek, volume, artwork). Use when the…

@bangs00@bangs00Install Skill

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n2w209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about now.

Which coding agents can use now?
now installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.