Survival LLM
A free AI assistant and survival library (1.5 million offline articles) that runs on your own computer, with no internet. Shows the source of every answer. Mac and Windows.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Citizen-reported status board for Busan's shark "Bukangi" (bukangi.com). React on Cloudflare Workers, Express + SQLite on a Mac mini, local open-model photo screening (Jev-style).
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Is Bukangi Here Now? (부캉이 지금 있나, bukangi.com) A citizen-reported status board for "Bukangi," the shark that showed up at Bukhang Waterfront Park in Busan's North Port in September 2026. When someone at the park uploads a photo of the shark or taps "I see it / I don't," the last-seen time updates right away. • Service: https://bukangi.com (launched 2026-09-22, developed with Claude Code) • Write-up, including why it is built this way: English · Korean Home · Report · Hall of Fame · Card rarity tiers (actual screens, 2026-09-30)查看完整 README ↗
English | 한국어
A citizen-reported status board for "Bukangi," the shark that showed up at Bukhang Waterfront Park in Busan's North Port in September 2026. When someone at the park uploads a photo of the shark or taps "I see it / I don't," the last-seen time updates right away.
User ──┬─ bukangi.com ──────▶ Cloudflare Workers static assets (React app)
│ └ worker.js: forwards only /c/<card> previews to the API
│
└─ api.bukangi.com ──▶ Cloudflare Tunnel (only allowed paths pass; everything else 404s)
│
▼ a single Mac mini (no external ports opened; listens on 127.0.0.1 only)
Express server :8787 ── SQLite (WAL) + photo folder
├─ AI screening engine :8788 (jev-visual + Qwen3.5-4B-4bit, MLX, local only)
└─ Discord webhook (decision alerts + signed approve/reject/undo links)
docs/operations.md.docs/screening.md, eval/README.mdops/cloudflared-config.example.yml).timingSafeEqual, and the server will not start without a token. Uploads are checked by their leading bytes, and photo IDs are unguessable random values.docs/data.md). Google Analytics loads only when VITE_GA_ID is set. Report photos, the production DB, and secrets are not in this repository.src/ React + TypeScript UI (Vite)
server/ Express API, SQLite, AI screening integration, Discord alerts, card images
eval/ AI photo screening evaluation scripts and results (report IDs anonymized)
ops/ Mac mini ops scripts, launchd config, example tunnel config, jev engine installer
test/ Load test and browser flow check (Playwright)
public/ Static assets
worker.js Cloudflare Worker (forwards only card preview paths to the API)
docs/ Deployment, operations, AI screening, data, third-party notices (English and Korean)
Requirements: Node.js (v25 in the development environment) and npm. To also run the AI screening engine, you need an Apple Silicon Mac (MLX) and Python 3.13.
npm install
# 1) UI only
npm run dev # http://localhost:5173
# 2) With the API server
export ADMIN_TOKEN=$(openssl rand -hex 24) # admin token (required)
export BUKANG_DATA=~/bukang-dev # folder where the DB and photos are stored
export SITE_URL=http://localhost:5173 # UI origin that calls the report/admin APIs
export SCREEN_ENGINE=off # no screening engine (a human reviews on the admin page)
npm run seed # sample data (optional)
npm run server # http://127.0.0.1:8787 , admin page at #/admin
| Name | Default | Description |
|---|---|---|
ADMIN_TOKEN | (required) | Admin API token. 32+ random characters recommended |
BUKANG_DATA | ~/bukang | Location of the SQLite DB and photo folder |
PORT / HOST | 8787 / 127.0.0.1 | Server address. Loopback only, in production too |
SITE_URL, ALLOWED_ORIGINS | UI origins allowed to call the report/admin APIs | |
PUBLIC_URL | The API's external URL. If set, photos are returned as absolute URLs | |
SERVE_STATIC | 1 | Whether the server serves dist/ and card images itself |
SCREEN_ENGINE | claude | Photo screening engine: claude / api / jev / off |
JEV_URL, JEV_THRESHOLD | http://127.0.0.1:8788, 0.7 | jev engine URL and auto-approve threshold (auto-reject if ≤ 1 − threshold) |
ANTHROPIC_API_KEY | Required only when SCREEN_ENGINE=api | |
DISCORD_WEBHOOK | If set, sends decision alerts and signed links | |
PARK_RADIUS | 700 | Park radius (m) within which on-site buttons are accepted |
VITE_GA_ID | (none) | Frontend build value. Google Analytics measurement ID. Leave empty to disable GA |
./ops/jev/setup.sh # installs jev-visual (pinned commit) and the model, registers with launchd, 127.0.0.1:8788
export SCREEN_ENGINE=jev
npm run server
Domain, the Mac mini (launchd), the Cloudflare Tunnel, and the Workers frontend: docs/deploy.md. Security checklist and load tests: docs/operations.md.
MIT. See LICENSE. Third-party code: docs/third-party.md. jev-visual (MIT) and the Qwen3.5 models (Apache-2.0) are downloaded at install time and are not included in this repository.