crucix-intelligence-dashboard
crucix-intelligence-dashboard — an installable skill for AI agents.
By reason-machines · 1,368 installs
npx skills add reason-machines/trending-skills --skill crucix-intelligence-dashboard
Source repository · Upstream listing
Crucix Intelligence Dashboard
Skill by [ara.so](https://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.
Installation
Docker:
Requirements: Node.js 22+ (uses native fetch , top level await , ESM modules)
If npm run dev exits silently:
Environment Configuration ( .env )
Key Commands
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
Telegram Bot Commands
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
Discord Bot Commands
Install discord.js for full bot mode; otherwise Crucix auto falls back to webhook only:
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):
LLM Provider Setup
Anthropic Claude
OpenAI
Google Gemini
OpenAI Codex (ChatGPT subscription — no API key needed)
LLM failures are non fatal — Crucix automatically falls back to rule based alert evaluation without crashing the sweep cycle.
Architecture & Data Flow
Each 15 minute sweep cycle:
1. Parallel fetch — all 27 sources queried simultaneously (~30–60s)
2. Synthesis — raw data normalized into dashboard format
3. Delta computation — what changed, escalated, or de escalated vs. previous run
4. LLM analysis — 5–8 trade ideas generated (or rule based fallback)
5. Alert evaluation — FLASH / PRIORITY / ROUTINE tiering with semantic dedup
6. Push — SSE update to all connected browsers + Telegram/Discord if configured
7. Persistence — sweep written to ./runs/ directory
Dashboard Features
3D WebGL globe (Globe.gl) with atmosphere, star field, rotation + flat map toggle
9 marker types : fires, aircraft, radiation, maritime chokepoints, SDR receivers, OSINT events, health alerts, geolocated news, conflict events
Animated 3D flight arcs between air traffic hotspots
Region filters : World, Americas, Europe, Middle East, Asia Pacific, Africa
Live markets : indexes, crypto, energy, commodities (Yahoo Finance, no key needed)
Risk gauges : VIX, high yield spread, supply chain pressure index
OSINT feed : 17 built in Telegram intelligence channels
Sweep Delta panel : live diff of what changed this cycle
Nuclear watch : Safecast + EPA RadNet radiation readings
Space watch : CelesTrak satellite tracking — ISS, Starlink, military constellations
Common Patterns
Minimal Setup (no API keys)
Maximum Free Coverage
Telegram Alerts Only (no LLM)
Full Stack with LLM + Both Bots
Adding Extra Telegram OSINT Channels
Troubleshooting
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):
Port already in use:
Telegram bot not receiving commands:
Verify TELEGRAM BOT TOKEN and TELEGRAM CHAT ID are both set
Confirm the chat ID is your personal chat, not a group (use @userinfobot)
Default poll interval is 5000ms — set TELEGRAM POLL INTERVAL=2000 for faster response
Discord slash commands not appearing:
Set DISCORD GUILD ID for instant registration (vs. up to 1 hour for global)
Ensure the bot invite URL includes both bot and applications.commands scopes
Check Message Content Intent is enabled in the Developer Portal
LLM 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.