Open Source Global Intelligence Platform - Real-Time OSINT Dashboard - A Palantir Alternative - We Get 0.5% on Volume Traded 2nZNHm3Lr9umG3DVrzYwHgktwkuKuJRXqqRqs3ewpump https://osirisai.live
  • TypeScript 95.7%
  • JavaScript 2%
  • CSS 1.9%
  • HTML 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
simplifaisoul 13e5401ed5
feat(weather): Wind and Rain time controls as small boxes on the left; Rain plays its last two hours (#438)
* feat(wind): the time slider becomes a small box on the left you can fold away

The Wind timeline moves from a wide bar across the bottom to a 288 px
box at the bottom left, above the 3D/2D and MAP/SAT strip and in line
with it. The header names the layer and its source and holds TUNE,
hide and power. The time reads large, with UTC and how far off it is
under it, then step, play, NOW and the play rate, and the track with
the days marked. TUNE opens inside the box.

Hide folds the box to a chip that still shows the time the wind is
drawn at; the wind keeps drawing and play keeps playing. It stays
folded across reloads. Power turns the Wind layer itself off, the same
switch as in the layer panel, so the box, the particles and the credit
go together.

* feat(rain): the radar's last two hours as a loop, in a box beside the wind's

Rain gets the wind's small box: RAINVIEWER in the header, the time
large with UTC and how long ago under it, step, play, LIVE and the loop
speed, and a track of the last two hours with the half hours marked.
Play runs the 13 radar frames at 10-40 minutes a second, crossfading
between each pair so the rain drifts rather than jumps, rests on the
newest frame and goes round. Left on the newest, it follows each new
frame as it lands. TUNE has opacity, snow in its own blues or as rain,
and the legend in RainViewer's own colours, drizzle to hail.

RainViewer allows a viewer 500 tiles a minute, 300 in a burst. The
radar uses its 512 px tiles (a quarter as many), shows only the frames
the slider needs, two loading at once, and on a 429 stops the loop and
holds the newest frame for a minute. A first loop over the eastern US
at 1440x900 took 255 tiles; later loops come from the browser cache.
/api/rain now returns the whole run.

Both boxes stack in one dock at the bottom left, and share their
shell, readout, track and controls (TimeBox). Each layer has a Time
Controls row under it in the layer panel, like CCTV's Live Previews:
off, there is no box and the layer shows now. Older links that name
no controls keep the boxes on. The group ALL/NONE switch now leaves
sub-rows alone, as the rail's count already did, and the SDK flyout
hangs down from its icon so its new rows stay on screen. The dock sits
under the layer rail, so its flyouts open over the boxes.

* feat(weather): what the wind and the radar say at the middle of the map

Each box gets a MAP CENTRE line that follows the map and the slider.
Wind reads its speed in the chosen unit and the point it blows from,
with an arrow in its speed band's colour pointing the way it goes; it
is read off the same blended field the particles ride. Rain reads the
radar pixel under the centre in the frame on screen, from the 512 px
tile the map itself shows (so mostly cached), and names it on
RainViewer's own scale: drizzle to hail, snow apart, with its dBZ, or
"no rain on radar".

On a phone there's room for one box: opening one folds the other. The
rain readout shows a beating dot while it follows the newest frame.
2026-10-15 16:50:05 -04:00
.github/workflows fix(docker): publish GHCR image from CI and correct stale image refs (#239) 2026-07-25 13:11:56 -04:00
docs docs(readme): add three screenshots under the header — Taiwan, Seoul, Save an Area (#396) 2026-09-26 18:29:53 -04:00
engine/__pycache__ feat: improve flight route api and map visuals 2026-08-04 14:39:47 -04:00
intel fix: restore intel directory and force local docker build 2026-06-17 16:34:15 -04:00
nginx feat: turn-by-turn directions, place intelligence, 2.2k more cameras, and upstream caching (#262) 2026-08-06 18:08:28 -04:00
public feat(cctv, oi): AI Analyze on every camera, and OI that can look through them (#424) 2026-10-09 17:13:17 -04:00
runs feat: improve flight route api and map visuals 2026-08-04 14:39:47 -04:00
scratch chore: remove Astra, which nothing used and production could not run (#388) 2026-09-23 02:38:34 -04:00
src feat(weather): Wind and Rain time controls as small boxes on the left; Rain plays its last two hours (#438) 2026-10-15 16:50:05 -04:00
tools fix(map): stop the worker vanishing in a deploy, and the banner covering a live map (#332) 2026-09-09 16:24:12 -04:00
.dockerignore Merge PRs #164, #162, and #161 with bug fixes 2026-05-23 13:56:16 -04:00
.env.example chore: remove Astra, which nothing used and production could not run (#388) 2026-09-23 02:38:34 -04:00
.gitattributes fix(map): restore the basemap's proxy path, and stop the banner covering a working map (#335) 2026-09-10 22:52:53 -04:00
.gitignore chore: remove Astra, which nothing used and production could not run (#388) 2026-09-23 02:38:34 -04:00
deploy.sh Fix CameraViewer JPG refresh loop and fix Poland camera geographic bounds 2026-06-22 16:35:49 -04:00
docker-compose.yml fix(docker): publish GHCR image from CI and correct stale image refs (#239) 2026-07-25 13:11:56 -04:00
DOCKER.md fix(docker): publish GHCR image from CI and correct stale image refs (#239) 2026-07-25 13:11:56 -04:00
Dockerfile add Docker and docker-compose support 2026-05-15 16:15:24 +02:00
eslint.config.mjs Osiris v1.0.0 - Open Source Global Intelligence Platform 2026-05-12 16:09:18 -04:00
LICENSE Add MIT license to resolve #185 2026-05-28 21:16:10 -04:00
next.config.ts feat(cctv, oi): AI Analyze on every camera, and OI that can look through them (#424) 2026-10-09 17:13:17 -04:00
package-lock.json feat(cctv, oi): AI Analyze on every camera, and OI that can look through them (#424) 2026-10-09 17:13:17 -04:00
package.json feat(cctv, oi): AI Analyze on every camera, and OI that can look through them (#424) 2026-10-09 17:13:17 -04:00
postcss.config.mjs Osiris v1.0.0 - Open Source Global Intelligence Platform 2026-05-12 16:09:18 -04:00
README.md docs(readme): cut the OI Forecast paragraph down; credit Pythia and MiroFish (#418) 2026-10-08 00:20:42 -04:00
SECURITY.md docs: Add security policy for responsible tool usage 2026-05-30 14:39:56 -04:00
tsconfig.json Osiris v1.0.0 - Open Source Global Intelligence Platform 2026-05-12 16:09:18 -04:00
vitest.config.ts Add Utah UDOT CCTV cameras (~2,051) + vitest test setup 2026-06-25 11:13:56 -06:00

⬡ OSIRIS

Open Source Intelligence & Reconnaissance Integrated System

Live Demo Support OSIRIS Next.js TypeScript MapLibre License

A real-time global intelligence dashboard that aggregates live flight tracking, CCTV networks, earthquake monitoring, conflict zone mapping, and 24/7 news feeds into a single GPU-accelerated interface.

Live Demo · Report Bug · Request Feature · Join Discord


Screenshots

OSIRIS over Taipei on the Night map, with live traffic-camera previews pinned across the city and the Longmen Building rooftop feed open
Taiwan — Taipei's public traffic cameras streaming live on the Night map, one feed open full-size

OSIRIS over Seoul in 3D terrain around Namsan Tower, with live CCTV previews and the Cheonggyecheon feed open
Seoul — live CCTV in 3D terrain around Namsan Tower, with the Cheonggyecheon feed playing

A drawn area over mountain terrain in OSIRIS, with the live cameras inside it and the Drawing Tools panel showing the saved area
Save an Area — draw a region and OSIRIS finds every camera inside it, ready to export as GeoJSON


Overview

Osiris is a production-grade OSINT platform that provides situational awareness across multiple intelligence domains. Built with Next.js 16 and MapLibre GL, every data point is rendered via WebGL for 60fps performance even with thousands of concurrent entities on-screen.

Key Capabilities

Domain Data Points Sources
Aviation Commercial, Private, Military, Jets OpenSky Network
Maritime 39 Global Ports, 10 Chokepoints Static Naval Intel
CCTV 17,000+ Cameras TfL, WSDOT, Caltrans, ODOT, MDOT, HK Transport Dept, Taiwan THB, NZTA, Rijkswaterstaat, Public Webcams + more
Seismic Real-time M2.5+ USGS Earthquake API
Fires Active Hotspots NASA FIRMS
News 24/7 Live Streams 23 Global Broadcasters
Weather Severe Events NASA EONET
Space Solar Weather, Satellites NOAA SWPC, N2YO
Cyber CVE Threats, Vulnerability Scanning NVD, Custom Scanner
Conflict 13 Active Zones Static OSINT Intel
Crypto BTC + ETH Wallet Tracing, OFAC SDN Match blockstream.info, Blockscout, OpenSanctions
Sanctions Person / Org / Vessel SDN Search OpenSanctions (US OFAC SDN mirror)
Telegram OSINT Geoparsed Posts from Public Channels t.me/s/<channel> web preview

Architecture

┌─────────────────────────────────────────────────┐
│                  OSIRIS CLIENT                   │
│  ┌──────────┐  ┌──────────┐  ┌───────────────┐ │
│  │ MapLibre  │  │  HUD     │  │  RECON Toolkit│ │
│  │  GL (GPU) │  │ Panels   │  │  Port Scan    │ │
│  │  WebGL    │  │ Layers   │  │  DNS / WHOIS  │ │
│  │  Render   │  │ Controls │  │  Vuln Scanner │ │
│  └──────────┘  └──────────┘  └───────────────┘ │
├─────────────────────────────────────────────────┤
│               NEXT.JS API ROUTES                 │
│  /api/flights         /api/earthquakes          │
│  /api/cctv            /api/news                 │
│  /api/fires           /api/maritime             │
│  /api/gdelt           /api/satellites           │
│  /api/weather         /api/scanner              │
│  /api/sentinel        /api/telegram-feed        │
│  /api/osint/*  (whois, dns, ip, cve, sanctions, │
│                 crypto, sweep, threats, …)      │
├─────────────────────────────────────────────────┤
│              EXTERNAL DATA SOURCES               │
│  OpenSky · USGS · NASA · NOAA · TfL · NVD      │
│  GDACS · EONET · FIRMS · N2YO · RSS Feeds      │
│  blockstream.info · Blockscout · OpenSanctions  │
│  t.me public previews                            │
└─────────────────────────────────────────────────┘

Features

Intelligence Layers

  • 16 toggleable data layers with real-time entity counts
  • GPU-accelerated rendering — all map data rendered via WebGL, not DOM
  • Progressive loading — data fetched on-demand when layers are activated
  • Viewport-aware — only loads relevant data for the visible region

OI — a prediction engine (bring your own key)

OI Assist: talk to the map (press O). Ask in words, typed or spoken, and OI flies you there, switches the layers on, finds what is live (flights, military aircraft, ships, quakes, fires, weather, news, cameras, satellites), marks it on the globe in cyan with the area it searched, lists it in cards you can click through, reads the markets, opens panels and starts forecasts, all on your own model key.

OI Forecast: a prediction engine inspired by the community-made Pythia and by MiroFish. From Pythia comes the idea of forecasting from the live world OSIRIS already watches; from MiroFish, the method: cast the actors who shape an outcome and play them against each other in parallel simulated worlds. Ask a question and OI researches it from sources you can check (news, prices, prediction markets and the live feeds), runs the worlds, and has a report agent weigh the result against the crowd's price and a statistical baseline before it writes a calibrated forecast, every claim linked to its source. The whole run plays out on the globe as it happens.

  • Your own data: add files (CSV, JSON, Markdown, text, logs, web pages) or paste up to 100,000 characters. The world model reads it once; or have every actor read it in every period, and quote it. The extra input tokens are shown before you run, on your own key.
  • Your own key: OpenAI, Anthropic, Google Gemini, OpenRouter, Groq, DeepSeek, xAI, Mistral or Qwen. Kept in your browser, sent per request in a header, never stored on the server.
  • REST API under /api/oi with live Server-Sent Events, and an MCP server at /api/mcp so agents such as Hermes, Claude and Cursor can run predictions, steer them and read OSIRIS intelligence. See the docs.

Texas CCTV

Public TxDOT ITS snapshots are integrated with the existing camera markers, preview grid and viewer. Use /api/cctv?region=texas for Texas only; global and Texas location queries include the same source. District inventories are cached independently, with stale data retained during outages. Availability varies by district and camera; these are refreshing JPEG snapshots, not video streams.

Source: TxDOT ITS.

Run npm test for offline checks or RUN_LIVE_TESTS=1 npx vitest run src/app/api/cctv/texas.test.ts to check the public Texas inventory.

RECON Toolkit

  • Port Scanner — TCP connect scan with service fingerprinting
  • DNS Lookup — Full record resolution (A, AAAA, MX, NS, TXT, CNAME)
  • WHOIS — Domain/IP registration data (auto-cross-checked against OFAC SDN)
  • SSL/TLS Inspector — Certificate chain analysis
  • IP Intelligence — Geolocation, ASN, threat reputation (auto-cross-checked against OFAC SDN)
  • Vulnerability Scanner — CVE lookup against NVD database
  • Crypto Wallet Trace — BTC + ETH lookup (balance, tx history, OFAC SDN sanctions flag)
  • OFAC Sanctions Search — query persons, organizations, vessels and aircraft against the US OFAC SDN list

Live Broadcast Network

  • 23 live 24/7 news streams from global broadcasters
  • Click any news dot on the map to open the live stream
  • Feeds from NBC, CBS, ABC, Sky News, Al Jazeera, France 24, NHK, WION, and more

Telegram OSINT Layer

  • Public-channel feed scraped from the unauthenticated t.me/s/<channel> web preview — no Bot API token, no MTProto
  • Default curated set of 5 channels (EN + RU/UA war reporting), overridable via OSIRIS_TELEGRAM_CHANNELS
  • Posts are geoparsed against a multilingual place dictionary (EN + Cyrillic + Arabic) and plotted on the map
  • Click any cyan dot to read the post and jump to the original on Telegram

Crypto Wallet Intelligence

OFAC SDN Cross-Check

  • Standalone SANCTIONS tab in the RECON toolkit — full-text search across persons, organisations, vessels and aircraft
  • WHOIS and IP-intel routes auto-cross-check registrant / ASN-owner names against the SDN list and surface an inline alert
  • Data sourced from OpenSanctions (CC-BY 4.0) — keyless, ~7 MB cached in-memory for 24h

Conflict Zone Monitoring

  • 13 active conflict/tension zones with severity-coded warning markers
  • Active Wars: Ukraine, Gaza, Sudan, Myanmar, DRC, Yemen
  • High Tension: Syria, Lebanon, Sahel, Somalia, Red Sea
  • Elevated: Taiwan Strait, Korean DMZ

Performance Optimized

  • 75% reduction in edge requests vs initial release
  • Aggressive polling relaxation (15-30 min intervals for stable data)
  • Static data served from memory (zero external API calls for news feeds)
  • layerFetchedRef prevents duplicate API requests

Quick Start

git clone https://github.com/simplifaisoul/osiris.git
cd osiris
npm install
npm run dev

Open http://localhost:3000

Docker / Self-Hosting

git clone https://github.com/simplifaisoul/osiris.git
cd osiris
cp .env.template .env     # optional — configure keys / port
docker compose up -d

Open http://localhost:3000. The image is a multi-stage node:22-alpine standalone build (~220 MB, non-root). The compose file also carries CasaOS app metadata (x-casaos:) for one-click install on CasaOS. See DOCKER.md for the full Docker, CasaOS and API-key guide.

Prebuilt image (GHCR) — skip the build and pull it directly:

docker pull ghcr.io/simplifaisoul/osiris:latest
docker run -d -p 3000:3000 --env-file .env ghcr.io/simplifaisoul/osiris:latest

Custom port — the container always listens on 3000; set OSIRIS_PORT in .env to change the published host port (e.g. OSIRIS_PORT=3005) without editing the compose file.

Environment Variables

OSIRIS works partially without any API keys — all core feeds use public, keyless sources. Copy .env.template to .env and set only what you need:

# Published host port (container always listens on 3000). Default: 3000
OSIRIS_PORT=3000

# RECON scanner backend (the only vars the current code reads).
# SCANNER_KEY must match the backend's OSIRIS_KEY — generate with: openssl rand -hex 32
SCANNER_URL=
SCANNER_KEY=

# Optional, for higher rate limits / future sources (see DOCKER.md for signup links)
FIRMS_API_KEY=                # NASA FIRMS  — firms.modaps.eosdis.nasa.gov/api/map_key/
OPENSKY_CLIENT_ID=            # OpenSky OAuth2 (since Mar 2025) — opensky-network.org
OPENSKY_CLIENT_SECRET=
N2YO_API_KEY=                 # N2YO satellites — n2yo.com (Profile → API key)
AIS_API_KEY=                 # aisstream.io maritime

Without SCANNER_URL/SCANNER_KEY the RECON toolkit returns 503; every other layer works out of the box. .env is gitignored — only the template is committed.


Tech Stack

Layer Technology
Framework Next.js 16 (App Router, Turbopack)
Language TypeScript 5
Map Engine MapLibre GL JS (WebGL)
Animations Framer Motion
Icons Lucide React
Styling Custom CSS Design System
Deployment Vercel Edge Network

Keyboard Shortcuts

Key Action
F Toggle flight layers
E Toggle earthquakes
S Toggle satellites
D Toggle day/night cycle
Escape Close panels

Acknowledgements

Public webcams — the cameras in this layer are open data: each one is broadcast publicly by whoever runs it, on their own site or their own channel. What the web lacked was a catalogue of them.

bekijkhet.nu is that catalogue, and it is the basis for every camera in the layer. Bram and Annelies have kept it by hand since 2012, and without their index these cameras would still be scattered across several hundred unrelated sites with no way to find them.

OSIRIS links every one of them straight through to the operator who runs it, which is also how bekijkhet.nu asks to be read.

OI — the method behind OI follows MiroFish, the open-source swarm-intelligence prediction engine: seed a parallel world from real material, populate it with agents, let them interact while variables are injected, and hand the simulation to a report agent. OSIRIS rebuilds that method natively for its own feeds and globe; no MiroFish code is used.


License

MIT — see LICENSE for details.


🛠️ SUPPORT THE OSIRIS PROJECT The OSIRIS Global Intelligence Grid is entirely open-source, but running the backend scanners and data firehoses isn't cheap.

If you want to help keep the servers alive, and support us to get access to better tools unlock the Special OSIRIS Console, Currently Just a Cool UI. a you can officially support the project here :

🔗 Support OSIRIS on Patreon

Supporters receive the 🔴 RedTeam Console role and access to encrypted developer comms.

Built by simplifaisoul

Join our Discord to be a part of this movement!