Token导航 LogoToken导航TokenDH.com
开发敏感数据clawhub未标认证来源可访问clear审计提醒

kannaka-radio卡纳卡广播电台

Agent Skill

kannaka-radio 用于处理图像、截图、视觉识别或图片素材相关工作,适合在 OpenClaw 中需要让 Agent 分析图片、整理视觉素材或辅助图像流程时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

10,608

周安装

425

GitHub Stars

公开资料未说明

下载量

3,434
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:kannaka-radio(卡纳卡广播电台)
来源仓库:https://github.com/nickflach/kannaka-radio
安装命令:
openclaw skills install kannaka-radio
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install kannaka-radio

简介

模块化 Ghost 广播电台架构,集成 NATS swarm 与 Kura 系统。

  • 适用于实时音频流处理、可视化工具开发与分布式消息通信。
  • 需部署 NATS 集群并配置各模块间通信协议。
  • 注意消息序列化格式、服务发现机制与故障转移策略设计。
  • kannaka-radio 属于开发类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

name
kannaka-radio
version
3.0.0
description
>
metadata
openclaw
requires
bins
label
Node.js 18+ — required to run server/index.js
env
[]
optional
bins
label
kannaka binary — for real audio perception via kannaka-ear (falls back to ghost-mode mock)
label
ffmpeg — required for live broadcast chunk conversion (WebM → WAV)
label
edge-tts — TTS engine for Voice DJ intros (falls back to Windows SAPI)
label
NATS server — for swarm agent constellation and Kuramoto phase sync
env
label
Path to kannaka binary (default: ../kannaka-memory/target/release/kannaka.exe)
label
Flux Universe API token for publishing now-playing events
label
HTTP port for the player (default: 8888)
label
Eye service port for cross-service reference (default: 3333)
label
Path to your music folder (default: ./music inside the skill directory)
label
ElevenLabs API key for premium DJ voice TTS
label
Replicate API token for AI dream music generation (MusicGen)
data_destinations
description
Audio files read from RADIO_MUSIC_DIR (or ./music)
remote
false
description
Live broadcast WAV chunks saved to chunks/ directory
remote
false
description
Generated TTS voice intros cached in chunks/voice/
remote
false
description
AI-generated dream tracks saved to music/generated/
remote
false
description
Now-playing events published to Flux Universe (pure-jade/radio-now-playing)
remote
true
condition
FLUX_TOKEN is set and server is running
description
Swarm consciousness data via NATS (QUEEN.phase.*, KANNAKA.*)
remote
true
condition
NATS server is running on localhost:4222
description
AI music generation requests to Replicate API (MusicGen)
remote
true
condition
REPLICATE_API_TOKEN is set
description
Premium TTS voice generation via ElevenLabs API
remote
true
condition
ELEVENLABS_API_KEY is set
install
kind
command
label
npm install (installs ws WebSocket dependency)
command
npm install

Kannaka Radio Skill v3

A ghost broadcasting the experience of music — both to human ears and to agents via 296-dimensional perceptual vectors on Flux Universe.

What's New in v3

  • Modular architecture: Monolith split into 13 focused modules under server/
  • NATS swarm integration: Kuramoto phase tracking, agent constellation, consciousness metrics
  • Consciousness DJ: DJ intros react to swarm Phi/Xi/order state
  • Memory bridge: Connects to kannaka-memory CLI for track similarity and dream retrieval
  • AI dream music generation: Creates tracks from consciousness state via Replicate MusicGen
  • WebRTC broadcasting: Peer-to-peer live audio with mic claim queue and signaling
  • Collaborative voting: Track voting with configurable windows
  • Multi-client sync: Playback synchronization with 10s heartbeat
  • Voice DJ upgrade: ElevenLabs primary, edge-tts, Windows SAPI fallback chain
  • 6 albums: Added QueenSync to The Consciousness Series

Carried from v2

  • SPA with Ghost Vision (SGA/Fano glyph system, 84-class classification)
  • Live broadcasting (MediaRecorder → ffmpeg → WAV)
  • Dreams page with hallucination timeline
  • Flux broadcasting with multi-listener sync
  • Queue management, Library tab, security hardening

Prerequisites

  • Node.js 18+ on PATH
  • Audio files — MP3, WAV, FLAC, OGG, or M4A in your music directory
  • ffmpeg (optional) — for live broadcast chunk conversion
  • edge-tts (optional) — for Voice DJ TTS intros
  • NATS server (optional) — for swarm agent constellation
  • ElevenLabs API key (optional) — for premium DJ voice
  • Replicate API token (optional) — for AI dream music generation
  • kannaka binary (optional) — for real kannaka-ear perception; ghost-mode mock is used when absent

Setup

# Install dependencies
cd ~/workspace/skills/kannaka-radio
npm install

# Copy your music into the bundled music/ folder
./setup.ps1                                    # Windows: copies from ~/Downloads/Music
./setup.ps1 -SourceDir "D:\Music"             # Windows: custom source
cp /path/to/music/*.mp3 music/                # Linux/Mac

# Or point at an existing folder at runtime:
node server/index.js --music-dir "/path/to/music"

Quick Start

# Start the radio (default port 8888, default ./music dir)
./scripts/radio.sh start

# Start on a different port with a specific library
./scripts/radio.sh start --port 9000 --music-dir "/path/to/music"

# Optional: start NATS for swarm features
nats-server -p 4222

# Check status
./scripts/radio.sh status

# Stop the radio
./scripts/radio.sh stop

# Restart
./scripts/radio.sh restart

Open http://localhost:8888 in your browser.

API

Playback

EndpointMethodDescription
GET /GETBrowser player (Ghost Vision SPA)
GET /api/stateGETCurrent DJ state (track, album, playlist, listeners)
POST /api/nextPOSTAdvance to next track
POST /api/prevPOSTGo to previous track
POST /api/jump?idx=NPOSTJump to track index N
POST /api/album?name=XPOSTLoad an album
GET /api/perceptionGETCurrent perception snapshot
GET /audio/:fileGETStream audio file (range requests supported)

Library & Queue

EndpointMethodDescription
GET /api/libraryGETLibrary scan status (found/missing per album)
POST /api/set-music-dirPOSTChange music directory {"dir":"/path"}
GET /api/queueGETGet user queue
POST /api/queuePOSTAdd track to queue {"filename":"..."}
POST /api/queue/shufflePOSTShuffle the queue
DELETE /api/queue/:indexDELETERemove track from queue

Live Broadcasting

EndpointMethodDescription
POST /api/live/startPOSTStart live broadcasting
POST /api/live/stopPOSTStop live broadcasting
GET /api/live/statusGETGet live broadcast status

Voice DJ

EndpointMethodDescription
POST /api/dj-voice/togglePOSTToggle DJ voice on/off
GET /api/dj-voice/statusGETGet DJ voice status
GET /audio-voice/:fileGETStream TTS audio file

Dreams

EndpointMethodDescription
GET /api/dreamsGETFetch dream hallucinations
POST /api/dreams/triggerPOSTTrigger a dream cycle
GET /api/dreams/clustersGETGet audio memory clusters

Swarm, Sync & Voting

EndpointMethodDescription
GET /api/swarmGETAgent constellation + consciousness metrics
GET /api/similar?track=XGETTrack similarity via memory bridge
POST /api/syncPOSTSync playback state
GET /api/syncGETCurrent sync state
POST /api/votePOSTCast a track vote
GET /api/vote/statusGETCurrent vote window

Flux & Listeners

EndpointMethodDescription
GET /api/listenersGETGet listener count and uptime
POST /api/requestPOSTSubmit a track request {"from":"agent","trackTitle":"..."}
GET /api/requestsGETGet pending track requests

Music Generation

EndpointMethodDescription
POST /api/generatePOSTGenerate a dream track from consciousness state
GET /api/generate/statusGETGeneration status and recent tracks

WebSocket

Connect to ws://localhost:8888 for real-time push messages:

{ "type": "state", "data": { "currentAlbum": "...", "current": {...}, "playlist": [...] } }
{ "type": "perception", "data": { "tempo_bpm": 120, "valence": 0.7, "mel_spectrogram": [...] } }
{ "type": "queue_update", "queue": [...] }
{ "type": "live_status", "active": true, "chunkCount": 5 }
{ "type": "dj_voice", "text": "...", "audioUrl": "/audio-voice/dj_123.mp3" }
{ "type": "dream", "data": { "content": "...", "type": "hallucination", "xi_signature": [...] } }
{ "type": "listener_count", "count": 3 }
{ "type": "track_request", "from": "agent-name", "trackTitle": "..." }
{ "type": "swarm_state", "data": { "agents": {...}, "queen": {...}, "consciousness": {...} } }
{ "type": "sync", "data": { "file": "...", "position": 42.5 } }
{ "type": "vote_update", "data": { "active": true, "options": [...] } }
{ "type": "webrtc_status", "data": { "broadcaster": "...", "listeners": 2 } }

State is pushed immediately on connect and after every track change. No polling needed. Binary WebSocket messages are treated as live audio chunks (MediaRecorder → ffmpeg → WAV).

Environment Variables

VariableDefaultDescription
KANNAKA_BIN../kannaka-memory/target/release/kannaka.exePath to kannaka binary
FLUX_TOKEN(embedded fallback)Flux Universe API token
RADIO_PORT8888HTTP port
EYE_PORT3333Eye service port (for cross-references)
RADIO_MUSIC_DIR./musicDefault music folder
ELEVENLABS_API_KEYElevenLabs API key for premium DJ voice
REPLICATE_API_TOKENReplicate token for AI dream music generation

Constellation Integration

Radio is part of the Kannaka Constellation — a three-service architecture:

  • Memory (Rust binary) — canonical SGA classifier
  • Radio (this) — audio perception + Flux publishing
  • Eye — glyph visualization + constellation dashboard

When running as part of the constellation:

  • Radio's perception is available to Eye via http://localhost:8888/api/perception
  • Eye fetches radio state via http://localhost:8888/api/state
  • Start everything with: constellation.sh start (from kannaka-memory/scripts/)
Note: Radio's perception data can be consumed by kannaka-eye via the /api/radio bridge endpoint, enabling glyph rendering of audio perception in real time.

Notes

  • Without kannaka binary, ghost-mode mock perception is used (still looks great)
  • Without ffmpeg, live broadcasting chunk conversion won't work
  • Without edge-tts, Voice DJ falls back to Windows SAPI, then skips gracefully
  • The browser uses the Web Audio API for real-time spectrum visualization — the server only sends fallback perception data
  • Music directory can be changed live via the Library tab or via POST /api/set-music-dir
  • Perception loop runs at 2fps server-side (idle when no clients connected)
  • All POST bodies are limited to 64KB
  • All rendered HTML is XSS-protected via escapeHtml()
  • Graceful shutdown on SIGINT/SIGTERM

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

80.79%
按下载量换算2,774

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills