Tusk's Tomes

Requirements

Read this before you clone anything. It's the page I wish I'd written first — three tiers, so you can see at a glance what's genuinely required versus what just makes things better.

The short version: you need Node.js and one way to talk to an AI model. Everything else on this page is optional, and you can add any of it later without reinstalling.

TierMeaning
CriticalNothing works without these.
AdvisedNot required, but the output is meaningfully better with them.
Nice to haveQuality-of-life. Skip freely.

Critical — nothing runs without these

WhatVersionWhyCheck it with
Node.js20 or newer (LTS)The app is a Node program. This is the one hard prerequisite.node -v
npmcomes with NodeInstalls the libraries. You don't install this separately.npm -v
Gitany recentHow you download the project, and how the in-app updater fetches new versions. Without it you'd be re-downloading a ZIP by hand every release.git --version
A way to reach an AI modelPick one of the three options below. The pipeline has nothing to run on otherwise.

The model — pick one of these three

You need exactly one. They're interchangeable and you can switch later.

OptionCostBest for
A paid API keyGemini direct, or OpenRouter for around 400 models on one keyRoughly $1–$5 a sessionMost people. Gemini is the best value for this particular workload.
A subscription you already pay for — Claude Code or the Codex CLI$0 extraAnyone already paying for Claude or ChatGPT. See Claude Code / Codex.
A local model — Ollama, LM Studio or Unsloth$0Total privacy, no network. Read the quality caveats first — below ~15–20B the prose gets noticeably worse.

You do NOT need Visual Studio Build Tools, whatever older guides say. Nothing in the dependency tree compiles native code.

Advised — for a noticeably better result

None of this is needed to get a chronicle. All of it improves what you get.

WhatWhy you'd want itWithout it
Python 3.10–3.12Runs Whisper, which transcribes your recordings locally. On Windows, tick "Add python.exe to PATH" during install.You supply a transcript another way — pasted text or YouTube captions.
An NVIDIA GPU specificallyTranscribing a 3-hour session drops from several hours to 20–30 minutes. Detected automatically via nvidia-smi. Read the note below before assuming your card counts.Whisper still works, on your processor, slowly. Or use the YouTube route.
Discord + CraigCraig is a Discord bot that records one audio track per person, which is what makes speaker attribution reliable end to end. Craig's free tier is enough.Single-stream audio, so the AI has to guess who said what — and it will ask you a lot of questions.

On GPUs — it really is NVIDIA or nothing, and that's worth spelling out

"I've got a dedicated graphics card, I'll be fine" is a completely reasonable assumption and an expensive one to get wrong, so here are the actual facts.

Transcription uses faster-whisper, which is built on CTranslate2. That library implements exactly two compute devices: cuda and cpu. There is no ROCm backend, no Metal backend, no Intel Arc backend, no DirectML backend.

So an AMD Radeon, an Intel Arc, or the GPU in an Apple Silicon Mac is not used at all. This isn't "slower but works" — the card sits idle and everything runs on your processor. A $900 AMD card gets you exactly the same transcription speed as no graphics card whatsoever.

That isn't a preference for NVIDIA on my part; it's the only GPU backend the engine has. And before you go looking for a Whisper build that does use your card — I did, and here's what's actually out there:

ProjectPrebuilt GPU backendsVerdict
whisper.cppCPU, BLAS (still CPU), CUDAHas a Vulkan backend in source only — it isn't in any release build. Compiling it yourself works.
sherpa-onnxCPU, CUDANo DirectML build shipped.
Const-me/WhisperDirectCompute — any DirectX 11 GPUActually works on AMD and Intel. Windows-only, no release since July 2023.

So the honest summary: there is no maintained, ready-made Whisper build that will use an AMD or Intel GPU. Const-me/Whisper does, and has been unmaintained for years. Everything else prebuilt is CPU or CUDA.

Which leaves you three practical options:

  1. The YouTube route — Google's hardware does the transcribing, no GPU of any kind needed. This is what I'd suggest.
  2. CPU transcription. Slow, but it works if you set it going and walk away.
  3. Transcribe elsewhere and paste it inWorkflow A accepts a transcript from any source, so a self-compiled whisper.cpp or Const-me output drops straight in.

Apple Silicon is at least the best case for the CPU path — those cores are quick enough that CPU-only transcription hurts far less than it does on an older x86 laptop.

Python 3.13+ is untested, not broken. The restriction originally existed because PyTorch shipped no 3.13 builds at all. Upstream has since released them and this project's requirements permit them — but nobody has verified the whole stack on 3.13 here, so setup warns rather than blocks. Try it if you like, and please report what happens. If it fails, install 3.12 alongside and the Whisper setup picks it up automatically.

Everything Python-related lives inside vendor/python-venv/, a self-contained environment. Uninstalling deletes that folder; your system Python is never touched.

Nice to have — quality of life

Genuinely optional. Add them if they appeal.

WhatWhat it gets you
ObsidianSomewhere pleasant to keep campaign lore. The vault module reads your notes to get names right — though any folder of markdown works, so this is about your comfort, not a requirement.
Claude Code or the Codex CLIIf you already pay for Claude or ChatGPT, routes the mechanical phases through that allowance instead of API credit. Roughly 85% cheaper than the baseline.
Ollama / LM StudioRun some or all phases offline. Good for the cheap mechanical phases even if you keep the chronicle itself on a cloud model.
A second, free-tier Gemini keyUsed only for one small phase under the Smart Budget preset. Shaves a little off the bill.
Windows TerminalThe launcher opens in a tidy tab instead of a bare console window if it's installed. Purely cosmetic.
Tusk's VaultThe sibling project — ask questions of your finished chronicles in Discord. See vault.md.

Bundled — you don't install these

WhatNote
ffmpegComes with the ffmpeg-static package. No separate install on any normal setup.
PDF and DOCX readersPure JavaScript, installed with everything else.
The Whisper modelDownloaded by the audio add-on when you install it, into vendor/python-venv/.

What gets created on your disk

None of this is in the repo — it's all made at runtime.

PathWhatCreated by
node_modules/The JavaScript libraries (~360 MB)npm install
.envPer-machine settingssetup.bat / setup.sh
vendor/python-venv/Whisper (1.5–2.5 GB)The audio add-on, if you install it
Sessions/<campaign>/*.mdYour finished chroniclesThe app, when you save one
%APPDATA%\tusks-tomesSettings, glossary, encrypted API keySaving anything in Settings
%LOCALAPPDATA%\tusks-tomesRecordings, transcripts, run checkpointsUploading audio or pausing a run

A fresh clone contains no personal state at all — source, scripts and templates only. For the full account of what's written where and what could go wrong, see How safe is this?.


Ready? The setup guide walks through it, or the beginner's guide assumes no terminal experience at all.