/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.
Claude Code
$ npx -y skills add Bangs00/claude-media-control --skill now --agent claude-code
Codex
$ npx skills add Bangs00/claude-media-control --skill now -a codex -y
Cursor
$ npx skills add Bangs00/claude-media-control --skill now -a cursor -y
Gemini CLI
$ npx skills add Bangs00/claude-media-control --skill now -a gemini-cli -y
GitHub Copilot
$ npx skills add Bangs00/claude-media-control --skill now -a github-copilot -y
OpenCode
$ npx skills add Bangs00/claude-media-control --skill now -a opencode -y
Windsurf
$ npx skills add Bangs00/claude-media-control --skill now -a windsurf -y
SKILL.md
now.SKILL.mdname: 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
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
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
More skills from other plugins.
browser-use
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…
agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…
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.

