The Problem

Intelligence data—satellite fire detection, flight tracking, conflict events, economic indicators—is publicly available but scattered across two dozen government APIs and open data feeds. No single tool aggregates these sources in real time, forcing analysts to manually query each endpoint or rely on fragmented dashboards that don’t cross-correlate domains.

What This Does

Crucix pulls 27 OSINT feeds in parallel every 15 minutes and renders them on a self-contained Jarvis-style dashboard. The source modules live in apis/sources/ (e.g., acled.mjs, adsb.mjs, firs.mjs, reddit.mjs), each implementing a consistent fetch pattern under the apis/ directory. LLM integration is handled through lib/llm/ providers (openai, anthropic, gemini, openrouter) with a shared lib/llm/index.mjs entry point. When an LLM is configured, the /brief and /sweep commands enable two-way interaction, and multi-tier alerts fan out to Telegram and Discord via lib/alerts/telegram.mjs and lib/alerts/discord.mjs. The dashboard UI is in dashboard/ with an HTML entry point served by server.mjs.

How To Use It

Clone the repo git clone https://github.com/calesthio/Crucix.git cd Crucix Install dependencies npm install Configure environment variables cp .env.example .env Edit .env with your API keys for the 27 sources and optional LLM provider Start the server npm run dev

If npm run dev exits silently, the README recommends running node --trace-warnings server.mjs directly, or node diag.mjs to diagnose import errors and port conflicts. A Dockerfile and docker-compose.yml are present for containerized deployment.

Real-World Use

A journalist tracking conflict events, commodity prices, and social sentiment in one interface can subscribe to alerts for specific keywords across the 27 sources. When a new ACLED event appears alongside a spike in commodity futures (via yfinance.mjs) or a flight route change (via adsb.mjs), the LLM can generate a concise briefing, and the alert pipelines push notifications to a phone via Telegram instantly.

Code Health & Issues

No CI/CD pipeline — the .github/ directory contains only CODEOWNERS, issue templates, and a pull request template; no workflow files or automated build/test gates are present. This is a medium-SDLC risk for any team beyond a single maintainer. Test coverage is sparse — four test files exist under test/, all focusing on LLM provider integrations (minimax, openrouter). No unit tests exercise the source fetch modules or the delta engine. Environment configuration — .env.example is committed, but the file itself is gitignored; secrets must be managed externally, which is correct practice but requires discipline when onboarding new contributors.

The Bottom Line

Crucix delivers on its promise: 27 real-time intelligence sources aggregated into a single, locally running dashboard with LLM-backed interaction and alerting. It’s well-structured, heavily modular (each source is an independent module), and genuinely zero-cloud when run on your own infrastructure. The main trade-off is the absence of automated testing and CI, which makes it better suited to power users or small teams willing to manage their own deployment pipeline. If you need a self-hosted intelligence terminal without vendor lock-in, this is a solid starting point.