Pivot
Pivot is a high-performance real time analytics database on open data formats.
Live, filterable geospatial picture of a theater from open sources — exportable as a briefable sheet. Not an official government product.
Translation pending
DataTypeScript · PLpgSQLGitHub @runnonOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Open-source situational awareness: unattended OSINT ingest → live theater picture with MIL-STD-2525 symbology. Open sources only, not an official government product.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A web product where an intelligence professional picks a combatant command and gets a
live, filterable geospatial picture of that theater — then exports it as a doctrinally
correct, briefable sheet.
Open sources only, forever. Not an official product of any government agency, and
not a document produced under any classification system — it carries no classification
markings. MIT licensed — see LICENSE and CONTRIBUTING.md.
Live: https://intel-os.org (all six combatant commands, 12-hour unattended cycle)Read the full README ↗A web product where an intelligence professional picks a combatant command and gets a live, filterable geospatial picture of that theater — then exports it as a doctrinally correct, briefable sheet.
Open sources only, forever. Not an official product of any government agency, and
not a document produced under any classification system — it carries no classification
markings. MIT licensed — see LICENSE and CONTRIBUTING.md.
Place data: GeoNames (CC-BY 4.0), bundled in worker/data/
and rebuilt with scripts/build-places.ts.
Live: https://intel-os.org (all six combatant commands, 12-hour unattended cycle)
Long-term goal: Theater Picture is the first app. The larger aim is a platform for
building and deploying unit-specific tools that are born accreditation-ready for
restricted US government networks — see docs/VISION.md.
The product spec and the hand-built proof sheet (OS-IRN-26-001) are maintained outside this repository; the spec's requirement IDs (AUTO/DATA/UX/ANL/GEO/MARK/NFR) referenced throughout the code are mapped in the conformance table below.
worker/ Ingest loop (Railway, cron 0 */12 * * *): each cycle sweeps ALL six
AORs. Every source is fetched ONCE into a shared pool — shared public
feeds (Al Jazeera, BBC World, UN News, DoD releases, DVIDS, Defense One,
gCaptain, Naval News), regional feeds (BBC desk feeds, France 24
regions), and all six per-AOR GDELT sweeps of thousands of outlets.
Each command then selects its slice of the whole pool (own-source hits
+ articles matching its gazetteer terms), so every theater mines the
full source breadth → Claude extraction (reported facts only,
attribution discipline) → dedup → geolocation validated against that
AOR's curated gazetteer → publish situation update per AOR
packages/core Domain logic: event model, MIL-STD-2525E SIDC mapping, dedup,
gazetteer + confidence scoring, situation-update builder, marking guards
web/ Next.js theater view (Vercel): command selector → MapLibre map with
milsymbol 2525E symbols, synced event list, time control, URL-encoded
filter state, per-event sourcing and confidence
supabase/ Postgres schema: events, event_sources, event_revisions, issues
(immutable snapshots), ingest_runs. Everything is free: anon reads
full issues + archive via SECURITY DEFINER projections; ingest writes use service role only.
docs/ VISION.md (long-term goal) · DECISIONS.md · symbology/ (MIL-STD-2525E
w/CHG 1 + machine-readable tables)
research/ Market, NIPRNet/compliance, and 14N-workflow research reports
Two product types (spec §4): a situation update generates unattended every 12 hours and carries no judgement layer in any form; an assessment (Phase 2) adds key judgements, alternatives and implications, and publishes only over a named analyst's signature. Auto-accept of drafted judgements is never built.
npm install
npm test # core + worker + web unit tests
npm run typecheck
npx next dev --prefix web # or: cd web && npx next dev
# one manual ingest cycle against the linked Supabase project
cd worker && npx tsx src/index.ts # needs .env (see .env.example) + ANTHROPIC_API_KEY
npx tsx src/seed.ts # deterministic seed (proof-build events, no LLM)
Env:
web/.env.local — NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY;
billing and optional analytics variables are documented in docs/STRIPE_SETUP.md
worker/.env — SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY, ANTHROPIC_API_KEY, AOR
| Requirement | Where |
|---|---|
| AUTO-1 no-change issues publish | worker/src/pipeline.ts |
| AUTO-2 dedup carries all sources | packages/core/src/dedup.ts |
| AUTO-3 low-confidence / ambiguous geocodes withheld | packages/core/src/gazetteer.ts (curated + GeoNames index) |
| AUTO-5 no judgement sections | packages/core/src/issue.ts (+ tests) |
| AUTO-5 "US impact" shows reported effect only | packages/core/src/usimpact.ts (+ tests) |
| AUTO-9 failed run publishes nothing, and is recorded and alarmed | worker/src/pipeline.ts, worker/src/index.ts, /api/health, .github/workflows/staleness.yml |
| AUTO-10 issues immutable/addressable | issues.snapshot column |
| DATA-1..6 provenance/precision/revisions | schema + core types |
| UX-1/2 one state, URL-encoded | web/lib/urlState.ts |
| UX-4 info cut-off always visible | theater masthead |
| UX-5 cluster / symbol degrade | web/components/TheaterMap.tsx |
| GEO-3/4 2525-informed framing | packages/core/src/sidc.ts, web/lib/symbols.ts |
| MARK-2/3/4 markings + public-source guard | layout banners, assertPublicSource |
| Community reports kept out of issues; public source + gazetteer-only placement | supabase/migrations/20261030220000_community_reports.sql, web/lib/community.ts |
Export (the differentiator — vector ANSI-D/tabloid sheet) is Phase 3 and not built yet.