
crucix-intelligence-dashboard
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.
- Installs
- 1.4K
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/reason-machines/trending-skills --skill crucix-intelligence-dashboard- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads crucix-intelligence-dashboard automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Crucix Intelligence Dashboard
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.
Installation
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
Environment Configuration (.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=
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:
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 Setup
Anthropic Claude
LLM_PROVIDER=anthropic
LLM_API_KEY=$ANTHROPIC_API_KEY
OpenAI
LLM_PROVIDER=openai
LLM_API_KEY=$OPENAI_API_KEY
Google Gemini
LLM_PROVIDER=gemini
LLM_API_KEY=$GEMINI_API_KEY
OpenAI Codex (ChatGPT subscription — no API key needed)
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.
Architecture & Data Flow
Each 15-minute sweep cycle:
- Parallel fetch — all 27 sources queried simultaneously (~30–60s)
- Synthesis — raw data normalized into dashboard format
- Delta computation — what changed, escalated, or de-escalated vs. previous run
- LLM analysis — 5–8 trade ideas generated (or rule-based fallback)
- Alert evaluation — FLASH / PRIORITY / ROUTINE tiering with semantic dedup
- Push — SSE update to all connected browsers + Telegram/Discord if configured
- 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)
# 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
Maximum Free Coverage
# 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 Alerts Only (no LLM)
TELEGRAM_BOT_TOKEN=your_token_from_botfather
TELEGRAM_CHAT_ID=your_chat_id_from_userinfobot
# LLM_PROVIDER intentionally omitted — rule-based alerts still fire
Full Stack with LLM + Both Bots
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
Adding Extra Telegram OSINT Channels
# Comma-separated channel IDs beyond the 17 built-in channels
TELEGRAM_CHANNELS=-1001234567890,-1009876543210
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):
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:
- Verify
TELEGRAM_BOT_TOKENandTELEGRAM_CHAT_IDare both set - Confirm the chat ID is your personal chat, not a group (use @userinfobot)
- Default poll interval is 5000ms — set
TELEGRAM_POLL_INTERVAL=2000for faster response
Discord slash commands not appearing:
- Set
DISCORD_GUILD_IDfor instant registration (vs. up to 1 hour for global) - Ensure the bot invite URL includes both
botandapplications.commandsscopes - 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.
FAQ
What does the crucix-intelligence-dashboard skill do?
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.
How do I install crucix-intelligence-dashboard?
Run npx skills add https://github.com/reason-machines/trending-skills --skill crucix-intelligence-dashboard in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/crucix-intelligence-dashboard/ (personal) or .claude/skills/crucix-intelligence-dashboard/ (project).
Which AI agents can use crucix-intelligence-dashboard?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is crucix-intelligence-dashboard safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains crucix-intelligence-dashboard?
It is published by reason-machines in reason-machines/trending-skills. It has 1,384 recorded installs.
More from reason-machines/trending-skills
openclaw-control-center
reason-machines/trending-skills
Local-first, security-first control center for OpenClaw agents — visibility dashboard with readonly defaults, token attribution, collaboration tracing, and safe write operations.
inkos-multi-agent-novel-writing
reason-machines/trending-skills
Multi-agent CLI system for autonomous novel writing, auditing, and revision with human review gates
claude-hud-statusline
reason-machines/trending-skills
A Claude Code plugin that displays a real-time HUD showing context usage, active tools, running agents, and todo progress in your terminal statusline.
understand-anything-knowledge-graph
reason-machines/trending-skills
Turn any codebase into an interactive knowledge graph using Claude Code skills — explore, search, and ask questions about any project visually.
agency-agents-ai-specialists
reason-machines/trending-skills
A collection of specialized AI agent personalities for Claude Code, Cursor, Aider, Windsurf, and other AI coding tools — covering engineering, design, marketing, sales, and more.
agent-browser-automation
reason-machines/trending-skills
Headless browser automation CLI for AI agents using native Rust binary with Chrome DevTools Protocol
Popular data & databases skills
supabase-postgres-best-practices
supabase/agent-skills
Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pgcron, pgmq), vector/semantic search (pgvector), and restoring dumps (pgrestore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.
prisma-client-api
prisma/skills
Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".
prisma-database-setup
prisma/skills
Deprecated compatibility name for prisma-orm-setup. Use only when a user or existing integration explicitly invokes prisma-database-setup; otherwise select prisma-orm-setup.
prisma-cli
prisma/skills
Prisma ORM 7 CLI reference for existing Prisma 7 applications or explicitly selected Prisma 7 workflows. Covers prisma init, generate, migrate, db, dev, studio, and mcp. For setup, connection repair, or Prisma 8, use prisma-orm-setup; not the Prisma Platform CLI.
prisma-postgres
prisma/skills
Deprecated compatibility name for prisma-postgres-setup. Use only when a user or existing integration explicitly invokes prisma-postgres; otherwise select prisma-postgres-setup.
prisma-driver-adapter-implementation
prisma/skills
Required reference for Prisma ORM 7 SQL driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter, Transaction, savepoint, result mapping, or DriverAdapterError behavior. Covers current transaction lifecycle, optional savepoint hooks, original database-error preservation, and verification.