> llm-council
Multi-model LLM Council with live dashboard. Query multiple AI models simultaneously, see responses side-by-side in a swarm-style dashboard, synthesize consensus, and run anonymous model-to-model voting. Use when the user asks to start the LLM council, compare models, query multiple models, convene council, ask all models, do model comparison, run multi-model queries, or launch the council dashboard. Supports Claude Sonnet 4.5, Claude Opus 4.5, GPT-4o, GPT-5.1, Gemini 2.5 Flash, and Gemini 2.5 P
curl "https://skillshub.wtf/happycapy-ai/Happycapy-skills/llm-council?format=md"LLM Council
Query multiple AI models in parallel with a live web dashboard.
Launch
cd ~/.claude/skills/llm-council/scripts
# Kill any existing server on the port
fuser -k 8787/tcp 2>/dev/null
# Start server
nohup python3 server.py > /tmp/council-server.log 2>&1 &
# Wait for startup, verify health
sleep 2 && curl -s --max-time 5 http://localhost:8787/health
# Export port for browser access
/app/export-port.sh 8787
Environment: COUNCIL_PORT (default 8787), AI_GATEWAY_API_KEY (required, auto-detected from environment).
Files
scripts/server.py- ThreadingHTTPServer, serves static files + API routes, SSE streamingscripts/ai_gateway.py- AI Gateway client: query, parallel query, streaming, synthesis, anonymous votingscripts/static/index.html- Dashboard UI (HappyCapy design system, light/dark theme)scripts/static/app.js- Client-side logic (model selector, SSE parsing, markdown rendering, voting UI)
API
| Method | Path | Description |
|---|---|---|
| GET | / | Dashboard |
| GET | /api/models | List models |
| GET | /health | Health check |
| POST | /api/council/stream | Query models (SSE) |
| POST | /api/council/synthesize | Synthesize consensus |
| POST | /api/council/vote | Anonymous model vote (SSE with keepalive) |
Key Details
- Server uses
ThreadingHTTPServerfor concurrent request handling - Vote endpoint streams SSE keepalive pings every 5s to prevent proxy timeouts (Cloudflare 524)
- Static files served with
Cache-Control: no-store, no-cacheheaders - Script tag uses cache-busting version param:
app.js?v=...(bump when editing app.js) - Model IDs use dots not hyphens:
anthropic/claude-sonnet-4.5(notclaude-sonnet-4-5)
> related_skills --same-repo
> youtube-music
Search and play music tracks on YouTube Music through MCP integration. Use when user wants to search for songs, play music, or discover tracks on YouTube Music platform.
> xiaohongshu-recruiter
用于在小红书上发布高质量的 AI 相关岗位招聘帖子。包含自动生成极客风格的招聘封面图和详情图,并提供自动化发布脚本。当用户需要发布招聘信息、寻找 Agent 设计师或其他 AI 领域人才时使用。
> writing-clearly-and-concisely
Use when writing prose humans will read—documentation, commit messages, error messages, explanations, reports, or UI text. Applies Strunk's timeless rules for clearer, stronger, more professional writing.
> world-class-carousel
Generate world-class Instagram carousel content on any topic. Produces 7-10 publication-ready slides (1080x1350) with AI-generated visuals, precise typography, Instagram music recommendations, optimized captions, and hashtags. Uses Aristotelian first-principles framework with 7 content archetypes, 6 hook patterns, a mandatory Bullshit Test quality gate, and a comprehensive design system. Fully generalized -- works for ANY topic. Triggers: instagram carousel, create carousel, carousel post, make