skills/crucix-intelligence-dashboard/SKILL.md
Personal intelligence agent that aggregates 27 OSINT data sources into a self-hosted Jarvis-style dashboard with Telegram/Discord bots, LLM analysis, and real-time alerts.
npx skillsauth add aradotso/trending-skills crucix-intelligence-dashboardInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Skill by ara.so — Daily 2026 Skills collection.
Crucix is a self-hosted intelligence terminal that pulls from 27 open-source data feeds (satellite fire detection, flight tracking, radiation monitoring, conflict data, market prices, maritime AIS, economic indicators, and more) every 15 minutes, renders everything on a WebGL globe dashboard, and optionally pushes alerts to Telegram/Discord with LLM-enhanced analysis.
git clone https://github.com/calesthio/Crucix.git
cd crucix
npm install # installs Express (only hard dependency)
cp .env.example .env # then edit .env with your API keys
npm run dev # dashboard at http://localhost:3117
Docker:
cp .env.example .env
docker compose up -d
# sweep data persists in ./runs/ via volume mount
Requirements: Node.js 22+ (uses native fetch, top-level await, ESM modules)
If npm run dev exits silently:
node --trace-warnings server.mjs # bypasses npm script runner (useful on Windows PowerShell)
node diag.mjs # diagnoses Node version, module imports, port availability
.env)# ── Core Free APIs (highly recommended) ──────────────────────────────────────
FRED_API_KEY= # Federal Reserve economic data — fred.stlouisfed.org
FIRMS_MAP_KEY= # NASA satellite fire detection — firms.modaps.eosdis.nasa.gov
EIA_API_KEY= # US Energy Info Admin — eia.gov/opendata/register.php
# ── Optional Data Sources ─────────────────────────────────────────────────────
ACLED_EMAIL= # Armed conflict data — acleddata.com/register
ACLED_PASSWORD=
AISSTREAM_API_KEY= # Maritime vessel tracking — aisstream.io (free)
ADSB_API_KEY= # Unfiltered flight tracking — RapidAPI (~$10/mo)
# ── LLM Provider (pick one) ───────────────────────────────────────────────────
LLM_PROVIDER= # anthropic | openai | gemini | codex
LLM_API_KEY= # not needed for codex (uses ~/.codex/auth.json)
# ── Telegram Bot ─────────────────────────────────────────────────────────────
TELEGRAM_BOT_TOKEN= # from @BotFather
TELEGRAM_CHAT_ID= # from @userinfobot
TELEGRAM_CHANNELS= # optional: extra channel IDs beyond 17 built-in
TELEGRAM_POLL_INTERVAL= # ms between command polls, default 5000
# ── Discord Bot ───────────────────────────────────────────────────────────────
DISCORD_BOT_TOKEN= # Discord Developer Portal → Bot → Token
DISCORD_CHANNEL_ID= # right-click channel → Copy Channel ID
DISCORD_GUILD_ID= # optional: instant slash command registration
DISCORD_WEBHOOK_URL= # optional: alert-only mode, no discord.js needed
# ── Trading (optional) ────────────────────────────────────────────────────────
ALPACA_API_KEY=
ALPACA_SECRET_KEY=
| Command | Description |
|---|---|
| npm run dev | Start dashboard with auto-reload |
| node server.mjs | Start directly (bypasses npm script runner) |
| node diag.mjs | Diagnose setup issues |
| docker compose up -d | Run in background with Docker |
| npx @openai/codex login | Authenticate Codex LLM via ChatGPT subscription |
Once TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID are set, the bot responds to:
| Command | What It Does |
|---|---|
| /status | System health, last sweep time, source/LLM status |
| /sweep | Trigger a manual intelligence sweep immediately |
| /brief | Compact text summary: direction, key metrics, top OSINT |
| /portfolio | Portfolio status (requires Alpaca keys) |
| /alerts | Recent alert history with tier labels |
| /mute / /mute 2h | Silence alerts for 1h or custom duration |
| /unmute | Resume alerts |
| /help | List all commands |
Install discord.js for full bot mode; otherwise Crucix auto-falls back to webhook-only:
npm install discord.js # optional: enables slash commands + rich embeds
Slash commands available: /status, /sweep, /brief, /portfolio
Alert embeds are color-coded: 🔴 red = FLASH, 🟡 yellow = PRIORITY, 🔵 blue = ROUTINE.
Webhook-only mode (no discord.js, no slash commands):
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN
LLM_PROVIDER=anthropic
LLM_API_KEY=$ANTHROPIC_API_KEY
LLM_PROVIDER=openai
LLM_API_KEY=$OPENAI_API_KEY
LLM_PROVIDER=gemini
LLM_API_KEY=$GEMINI_API_KEY
npx @openai/codex login # authenticate once
LLM_PROVIDER=codex
# LLM_API_KEY not required
LLM failures are non-fatal — Crucix automatically falls back to rule-based alert evaluation without crashing the sweep cycle.
Each 15-minute sweep cycle:
./runs/ directory# Works out of the box — sources without keys still populate:
# Yahoo Finance markets, CelesTrak satellites, GDELT news, RSS feeds,
# OpenSky flight tracking (public tier), Safecast radiation
npm run dev
# Register all three free keys (~3 minutes total):
FRED_API_KEY= # fred.stlouisfed.org — 60 sec signup
FIRMS_MAP_KEY= # firms.modaps.eosdis.nasa.gov — 60 sec signup
EIA_API_KEY= # eia.gov/opendata/register.php — 60 sec signup
TELEGRAM_BOT_TOKEN=your_token_from_botfather
TELEGRAM_CHAT_ID=your_chat_id_from_userinfobot
# LLM_PROVIDER intentionally omitted — rule-based alerts still fire
FRED_API_KEY=...
FIRMS_MAP_KEY=...
EIA_API_KEY=...
LLM_PROVIDER=anthropic
LLM_API_KEY=...
TELEGRAM_BOT_TOKEN=...
TELEGRAM_CHAT_ID=...
DISCORD_BOT_TOKEN=...
DISCORD_CHANNEL_ID=...
DISCORD_GUILD_ID=... # for instant slash command registration
# Comma-separated channel IDs beyond the 17 built-in channels
TELEGRAM_CHANNELS=-1001234567890,-1009876543210
Dashboard empty after startup: Normal — the first sweep takes 30–60 seconds to query all 27 sources. Wait for it to complete before expecting data.
npm run dev exits silently (especially Windows PowerShell):
node --trace-warnings server.mjs
# or run the diagnostic tool:
node diag.mjs
Port already in use:
# Default port is 3117 — check if something else is using it:
lsof -i :3117 # macOS/Linux
netstat -ano | findstr :3117 # Windows
Telegram bot not receiving commands:
TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID are both setTELEGRAM_POLL_INTERVAL=2000 for faster responseDiscord slash commands not appearing:
DISCORD_GUILD_ID for instant registration (vs. up to 1 hour for global)bot and applications.commands scopesLLM errors crashing sweeps: They won't — LLM failures are caught and the sweep continues with rule-based fallback. Check logs for the specific provider error (invalid key, rate limit, etc.).
ACLED conflict data missing:
ACLED uses OAuth2 with email/password — both ACLED_EMAIL and ACLED_PASSWORD must be set together.
Sweep data persistence:
All runs are saved to ./runs/. In Docker, this is volume-mounted so data survives container restarts.
development
```markdown --- name: compose-performance-skills description: Install and use the skydoves/compose-performance-skills agent skill library to diagnose and fix Jetpack Compose performance issues including stability, recomposition, lazy layouts, modifiers, side effects, and build configuration. triggers: - "my composable recomposes too often" - "LazyColumn drops frames during scroll" - "diagnose Compose stability issues" - "fix unnecessary recomposition in Jetpack Compose" - "optimize Com
development
Headless iOS Simulator manager with host-side HID input injection, 60fps streaming, and device farm web UI for iOS 26
development
```markdown --- name: claude-code-game-studios description: Turn Claude Code into a full 49-agent game dev studio with 72 workflow skills, automated hooks, and a real studio hierarchy for Godot, Unity, and Unreal projects. triggers: - "set up claude code game studios" - "use ai agents for game development" - "set up game dev studio with claude" - "add game studio agents to my project" - "how do I use claude code for game dev" - "set up godot unity unreal ai workflow" - "49 agents g
development
```markdown --- name: xq-py-quantum-vm description: Python implementation of the Quip Network's quantum virtual machine (xqvm) triggers: - quantum virtual machine python - xqvm quip network - quantum circuit simulation python - xq-py quantum vm - quip network quantum python - simulate quantum gates python - quantum vm xqvm - xqvm-py quantum circuit --- # xq-py Quantum Virtual Machine > Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. `xqvm-py` is a Python impl