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,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A growing collection of single-page, themed, interactable webpages used as in-game props during D&D sessions. Players touch them on an iPad at the table.
Hosted on GitHub Pages. Live at https://spourshalchi.github.io/campaign/ (rename pending).
The story lives in the brainstorm doc — that's the only place canon is made.
Props and the codex have generated a lot of connective tissue on their own, so CANON.md
tracks every claim as either 📗 in doc (with the session it came from) or 🟡 not canon (invented here).
The codex renders the same statuses as badges and has a Not Canon Yet tab.檢視完整 README ↗A growing collection of single-page, themed, interactable webpages used as in-game props during D&D sessions. Players touch them on an iPad at the table.
Hosted on GitHub Pages. Live at https://spourshalchi.github.io/campaign/ (rename pending).
.
├── index.html ← landing page (Programs menu)
├── aim/ ← Haunted AOL Instant Messenger prop
│ ├── index.html
│ └── sounds/
├── puzzle/ ← Torn newspaper page prop
│ ├── index.html
│ ├── README.md
│ └── assets/
├── settlement/ ← The 1931 Articles of Settlement (the deed)
│ └── index.html
├── photo/ ← The party-room photograph (Bix's beat)
│ └── index.html
├── codex/ ← DM-facing campaign codex (not linked from the landing page)
├── run/ ← DM-facing "Run of Show" — the day-of prompt book (not linked either)
├── CANON.md ← canon ledger: what came from the brainstorm doc vs. what an AI made up
├── PROPOSALS.md ← parked work-in-progress, agreed to by nobody
├── AGENTS.md ← agent guide for adding new props (CLAUDE.md imports it)
├── README.md ← this file
└── split_sounds.py ← utility for splitting WAV dumps into clips
The story lives in the brainstorm doc — that's the only place canon is made. Props and the codex have generated a lot of connective tissue on their own, so CANON.md tracks every claim as either 📗 in doc (with the session it came from) or 🟡 not canon (invented here). The codex renders the same statuses as badges and has a Not Canon Yet tab.
| Prop | Path | Vibe |
|---|---|---|
| AIM | aim/ | Haunted 2000s AOL Instant Messenger. The buddy is the kid Poe Boy soul-caged into the machine — the branching tree pulls the whole confession out of him, and ends with him sending the party a file: the recording of his own death, over AIM's file-transfer window. That USB is what wins the finale. |
| Torn Page | puzzle/ | 1937 newspaper front page, cut up in front of them by a trap in the binding. Reassemble, flip for the page-2 lore, and check the pocket card for who borrowed it last — including V. Soprano, 1938, which is where Gnomey's tie to the house gets hinted. Springing the trap is what summons the developer to the house that night. See puzzle/README.md |
| Invite | invite/ | The haunted-house invitation, ~7PM, homemade and clip-arty. |
| Settlement | settlement/ | The 1931 contract from the strongbox in the study. Opens folded; tap to unfold. Two drunk men signed away a mansion over $11.40, and the only paragraph on the page with no corrections in it is the one that makes Gnomey the owner. |
| Photograph | photo/ | A flash snapshot from the party room — two vampires mugging, a pregnant goblin laughing, and a fae with no fangs. Tap to turn it over for the writing on the back. Bix's beat: hand Will the iPad and say nothing. |
| Codex | codex/ | DM-facing campaign reference — to-do list, relationship web, backstory, story flow, cast, weekend plan, and combat encounters with the XP budgets. Not a player prop, and deliberately not tiled on the landing page so it can't be opened at the table by accident. |
| Run of Show | run/ | DM-facing day-of view — the codex's story flow turned into an arrow-key prompt book. Each cue carries read-aloud text, beats, skill checks, combat stat blocks, NPC voicing, hand-out reminders, and a synthesized soundboard (ambience + stings, no files), plus an initiative tracker, d20 roller, hand-out checklist and session timer. Also DM-only and not tiled. See run/README.md. |
| Thing | Why it matters |
|---|---|
scream_test_03_GOOD.wav | The recording that plays over the PA in the finale. The single biggest table moment in the campaign, and it's a file you hit play on. |
| A real USB stick | Handed to the players when the Spirit uploads. Put the .wav on it, and set its volume label to the dead kid's name — Sesh 8 makes the mount the moment the table learns who he is. |
| A blue poker chip | A physical chip to hand Julia at session one, never explained. The set in the study is exactly one short, and the mark on it matches the seal on the settlement. |
| The wishing willow | The second thing in the backpack — the love-spell token Simone sold the dead kid, with I want Angelique to notice me on the slip. |
| DJ show flyer | 3AM, Dood Mansion, bills Poe Boy / Lil Stinky / Angelique. |
| Food-stash puzzle | The mansion's own puzzle — the one that clears the vampires. |
See AGENTS.md for the full pattern + iPad/iOS gotchas. Short version:
mkdir <prop-name>/<prop-name>/index.html (single self-contained file — HTML + CSS + JS + assets folder beside it)index.html linking to /<prop-name>/main. GitHub Pages redeploys in ~30–60 seconds.file:// doesn't work — fetch() and audio are blocked. Always serve via HTTP:
python -m http.server 8000
# Open http://localhost:8000 in any browser
# Or http://<your-LAN-ip>:8000 from the iPad on the same Wi-Fi
?v=<n> to the URL or delete + re-add the iconIf a sound source comes as one big WAV with multiple clips:
python split_sounds.py
Detects silent gaps and chops the file into numbered clips. Tweak the constants at the top of the script if it splits poorly. Update INPUT_PATH to point at the dump file for your new prop first.