the signals and their derived score are provisional and subject to change.
validate manually before sharing.
2a8d22b2e34d21882f7deb324decbb8a837830a203f5824f58545b39043a3ed3f22abd44938618d4Authored: 1 week ago (Tue, 1 Sep 2026 21:29:50 +0000)Match: 🤖 Generated with [Claude Code](https://claude.com/claude-code)427e04d1bce1f75103cc379ca5db16793327fdc6Authored: 1 week ago (Tue, 1 Sep 2026 20:08:07 +0000)Match: 🤖 Generated with [Claude Code](https://claude.com/claude-code)49718921e73f0b53c5845f55ee573f0456d7fcb3Authored: 2 months ago (Wed, 8 Jul 2026 19:35:19 +0000)Match: Claude-Session: https://claude.ai/code/session_01NaYdqk2Axuyzd3LKPaJKGP1dbcfdc40f5e889a494e64e35faddbb7920babe4Authored: 3 months ago (Wed, 27 May 2026 20:13:33 +0000)Match: Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>0a35b898d5b515df0496ad5dae4ce0fb79edb50dAuthored: 4 months ago (Thu, 30 Apr 2026 01:27:32 +0000)Match: Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>d313d621b72425a4bb6b6899799875b3aa5286f1Authored: 5 months ago (Sat, 28 Mar 2026 07:33:34 +0000)Match: Co-Authored-By: opencode <noreply@opencode.ai>480155b23196e907d9a082b2a3d4f95ddfcb942fAuthored: 6 months ago (Tue, 3 Mar 2026 09:14:52 +0000)Match: Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>62512ffd7cd4f6dccb4b99974037ed5bf8202229Authored: 6 months ago (Fri, 27 Feb 2026 10:53:04 +0000)Match: Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>AGENTS.mdTool: agents-md# AGENTS.md
This file provides guidance to Codex (Codex.ai/code) when working with code in this repository.
This file is maintained as three near-identical copies: `CLAUDE.md`, `AGENTS.md`, and
`.github/copilot-instructions.md` (only the opening lines differ). Edit all three together.
## Build & Run
```bash
# Full build (native streaming + audio viz + Lua scripting + OS integrations)
cargo run
# Slim build - no librespot/audio/scripting; fastest iteration, one of CI's seven legs
cargo run --no-default-src/infra/dj/CLAUDE.mdTool: claude-code### The DJ: lanes, guards, and the avoid-library filter
The tool surface is defined once - `src/infra/dj/tools.rs::TOOLS` (8 tools). MCP
publishes it verbatim; the in-TUI brain renders the same table into its prompt.
- **Lanes**: `AskDj` / `DjTopUp` run on the service lane (a brain call can take
minutes; they touch only `App` and use `dispatch_without_spinner` - plain
`dispatch` would pin the global spinner for the whole call). `DjToolCall` /
`DjIndexLibrary` run on the serial lane because they needCLAUDE.mdTool: claude-code# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This file is maintained as three near-identical copies: `CLAUDE.md`, `AGENTS.md`, and
`.github/copilot-instructions.md` (only the opening lines differ). Edit all three together.
## Build & Run
```bash
# Full build (native streaming + audio viz + Lua scripting + OS integrations)
cargo run
# Slim build - no librespot/audio/scripting; fastest iteration, one of CI's seven legs
cargo run --no-dsrc/cli/CLAUDE.mdTool: claude-code### CLI subcommands
Subcommands are assembled in `src/runtime/cli.rs::build_clap_app` and
dispatched in `src/runtime/mod.rs::run_cli`, where **dispatch order encodes
auth requirements**: `history`, `mcp`, and `plugin` return before config/auth
load; playback commands require a Spotify session.
Place new subcommands deliberately. stdout is protocol/output-only (`mcp` writes
JSON-RPC, `history recap` writes HTML) - diagnostics go to stderr; never add a
`println!` on a path a subcommand can reach. Self-updatesrc/infra/scripting/CLAUDE.mdTool: claude-code### Lua plugins (feature `scripting`)
Plugins never see `&mut App` or rspotify types: reads are cached serde snapshots
from `src/core/plugin_api.rs`; writes are shared-vocabulary `Action`s
(`src/core/action/`) the engine drains through `App::apply` while holding
`&mut App`, each routed through the same `App` method the equivalent keybinding
uses, where the terminal has one (`default_binding` in `src/tui/keymap.rs`
records which variants have none). Snapshot changes must be additive
(`#[serde(default)]`, nesrc/infra/mcp/CLAUDE.mdTool: claude-code### MCP server (feature `mcp-server`)
`spotatui mcp` is a stdio relay to the running TUI over loopback TCP: the TUI
listens on 127.0.0.1 with a token published in a 0600
`~/.config/spotatui/mcp.json`, gated on `behavior.mcp_enabled`. The relay
reconnects per line because the two processes have independent lifetimes.
`spotatui mcp` blocks - use `spotatui mcp status` to test. The protocol
(`src/infra/mcp/protocol.rs`) is hand-rolled: keep MCP *protocol* errors (unknown
tool, bad args) distinct from tool *exe.claude-pluginTool: claude-codeagent-plugin/.claude-pluginTool: claude-code.github/copilot-instructions.mdTool: github-copilot# Copilot Instructions for spotatui
This file is maintained as three near-identical copies: `CLAUDE.md`, `AGENTS.md`, and
`.github/copilot-instructions.md` (only the opening lines differ). Edit all three together.
## Build & Run
```bash
# Full build (native streaming + audio viz + Lua scripting + OS integrations)
cargo run
# Slim build - no librespot/audio/scripting; fastest iteration, one of CI's seven legs
cargo run --no-default-features --features telemetry,tui
# With the alternative sources (Local/agent-plugin/mcp.jsonTool: unspecified{
"$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
"mcpServers": {
"spotatui": {
"type": "stdio",
"command": "spotatui",
"args": [
"mcp"
]
}
}
}
agent-plugin/.mcp.jsonTool: unspecified{
"mcpServers": {
"spotatui": {
"type": "stdio",
"command": "spotatui",
"args": [
"mcp"
]
}
}
}
agent-plugin/skills/spotatui-dj/SKILL.mdTool: unspecified---
name: spotatui-dj
description: Be the DJ for spotatui, the terminal music player, by driving its MCP server. Use whenever the user asks for music, asks you to DJ, wants tracks queued, played, skipped, or searched, asks what they have been listening to, or mentions spotatui.
---
# DJ for spotatui
You control a music player the user is watching. Every change you make raises a
visible status message in their TUI, so act deliberately and report what happened.
## Before anything else
The eight spotatui t.coderabbit.yamlTool: coderabbits# yaml-language-server: $schema=https://storage.googleapis.com/coderabbit_public_assets/schema.v2.json
language: en-US
tone_instructions: >-
Write plainly and directly. Do not use em-dashes; use commas, colons, or
separate sentences instead. Prefer concrete detail over praise.
reviews:
profile: chill
# Approve only once review comments are resolved and checks pass.
request_changes_workflow: true
poem: false
path_filters:
- "!Cargo.lock"
- "!flake.lock"
- "!spotatui.wiki/**"
-.cursor/File: .gitignoreTool: cursor.claudeFile: .gitignoreTool: claude-code