Loading...
Loading...
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 skill4agent add aradotso/trending-skills crucix-intelligence-dashboardSkill by ara.so — Daily 2026 Skills collection.
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:3117cp .env.example .env
docker compose up -d
# sweep data persists in ./runs/ via volume mountfetchawaitnpm run devnode --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 |
|---|---|
| Start dashboard with auto-reload |
| Start directly (bypasses npm script runner) |
| Diagnose setup issues |
| Run in background with Docker |
| Authenticate Codex LLM via ChatGPT subscription |
TELEGRAM_BOT_TOKENTELEGRAM_CHAT_ID| Command | What It Does |
|---|---|
| System health, last sweep time, source/LLM status |
| Trigger a manual intelligence sweep immediately |
| Compact text summary: direction, key metrics, top OSINT |
| Portfolio status (requires Alpaca keys) |
| Recent alert history with tier labels |
| Silence alerts for 1h or custom duration |
| Resume alerts |
| List all commands |
discord.jsnpm install discord.js # optional: enables slash commands + rich embeds/status/sweep/brief/portfoliodiscord.jsDISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKENLLM_PROVIDER=anthropic
LLM_API_KEY=$ANTHROPIC_API_KEYLLM_PROVIDER=openai
LLM_API_KEY=$OPENAI_API_KEYLLM_PROVIDER=gemini
LLM_API_KEY=$GEMINI_API_KEYnpx @openai/codex login # authenticate onceLLM_PROVIDER=codex
# LLM_API_KEY not required./runs/# 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 signupTELEGRAM_BOT_TOKEN=your_token_from_botfather
TELEGRAM_CHAT_ID=your_chat_id_from_userinfobot
# LLM_PROVIDER intentionally omitted — rule-based alerts still fireFRED_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,-1009876543210npm run devnode --trace-warnings server.mjs
# or run the diagnostic tool:
node diag.mjs# Default port is 3117 — check if something else is using it:
lsof -i :3117 # macOS/Linux
netstat -ano | findstr :3117 # WindowsTELEGRAM_BOT_TOKENTELEGRAM_CHAT_IDTELEGRAM_POLL_INTERVAL=2000DISCORD_GUILD_IDbotapplications.commandsACLED_EMAILACLED_PASSWORD./runs/