nao
오픈소스 분석 에이전트 nao, nao‑core CLI로 컨텍스트 생성하고 모든 사용자를 위한 채팅 인터페이스 배포
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Real-time world events control room: 3D globe, live feed, AI briefs and watchlist alerts. Next.js 16 + Supabase + MapLibre, built with Claude Code parallel agents.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A real-time world events dashboard in a green-on-black "control room" style: earthquakes, wildfires, storms, volcanoes and world news, plotted live on a 3D globe, with a daily AI World Brief and personal watchlist alerts.
Inspired by koala73/worldmonitor. Built end to end with Claude Code, using parallel sub-agents in separate git worktrees (see How it was built).README 전문 보기 ↗A real-time world events dashboard in a green-on-black "control room" style: earthquakes, wildfires, storms, volcanoes and world news, plotted live on a 3D globe, with a daily AI World Brief and personal watchlist alerts.
Inspired by koala73/worldmonitor. Built end to end with Claude Code, using parallel sub-agents in separate git worktrees (see How it was built).
| Layer | Tech |
|---|---|
| App | Next.js 16 (App Router, Server Actions), React 19, TypeScript, Tailwind CSS v4 |
| Data | Supabase — Postgres + Row Level Security, Auth, Realtime, pg_cron |
| Map | MapLibre GL JS v6 + OpenFreeMap vector tiles (no API key) |
| Charts | Recharts |
| Tests | Vitest (unit), Playwright (e2e, desktop + mobile), GitHub Actions CI |
| Hosting | Vercel |
Data sources: USGS Earthquakes · NASA EONET · The GDELT Project (15-minute event exports) · GDACS disaster alerts · WHO Disease Outbreak News (© WHO, CC BY-NC-SA 3.0 IGO) · world news RSS from across the political spectrum (Guardian, HuffPost, Vox, NPR, Al Jazeera, BBC, DW, France 24, Crisis Group, Washington Times, Fox News, New York Post, plus Reuters, AP and Washington Examiner headlines via Google News), with each outlet's lean from AllSides Media Bias Ratings · opt-in sports RSS (BBC Sport, Guardian, Sky Sports, ESPN). Headlines remain © their publishers and always link to the original.
pg_cron (every 10 min) ──POST /api/ingest──▶ ingesters (USGS, EONET, GDELT, RSS)
│ fetchRaw → zod-validated normalize()
▼
Postgres `events` (upsert on source+external_id)
│ │ AFTER INSERT trigger
Supabase Realtime ▼
│ `alerts` for matching watchlists
▼
Browser: globe + live feed + SITREP (filters in URL)
pg_cron (daily) ──POST /api/brief──▶ select top events → LLM (or extractive) → `briefs`
lib/types.ts — the shared NormalizedEvent contract every ingester outputslib/ingest/* — one file per source, pure normalize() tested against saved fixturessupabase/migrations/* — schema, RLS policies, alert trigger, column grantscomponents/map/* — MapLibre globe and the custom green vector stylenpm install
cp .env.example .env.local # fill in your Supabase URL/keys and a random CRON_SECRET
# apply supabase/migrations/*.sql to your Supabase project (SQL editor or `supabase db push`)
npm run dev
# pull data once by hand:
curl -X POST -H "Authorization: Bearer $CRON_SECRET" http://localhost:3000/api/ingest
curl -X POST -H "Authorization: Bearer $CRON_SECRET" http://localhost:3000/api/brief
npm run lint && npm run typecheck && npm test # unit tests
npm run test:e2e # Playwright (builds + starts the app)
The project was built in phases with Claude Code, with independent modules developed in parallel by sub-agents in isolated git worktrees, then reviewed and merged by a lead agent:
Module ownership per agent is documented in CLAUDE.md.