Skip to content

thedeutschmark/forgetmenot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ForgetMeNot

ForgetMeNot

A Twitch chat bot that actually remembers your regulars — names, inside jokes, the callback from three weeks ago. Runs locally on your machine with your own AI key.


What it does

  • Remembers chatters across streams — names, running jokes, callbacks, channel lore. Context lives in a local SQLite database on your machine, not on anyone else's server.
  • Configurable persona — bot name, tone, and reply policy set from the toolset dashboard. Safe mode enforces stricter filters; shows terminal or runs silently in the background.
  • Reply modes — mentions-only (default), shadow (generates replies without posting, for review), or live (replies to the chat stream directly). Switchable without a restart.
  • Moderation actions — timeout proposals with configurable allow-lists and a shadow mode so no action fires without explicit policy opt-in.
  • Eval suite — fixture-based regression runner catches behavior drift before each release.

How it works

  1. The engine connects to Twitch chat via tmi.js.
  2. Incoming messages are evaluated against reply policy and cooldown rules.
  3. Relevant context (chatter notes, episode recaps, channel lore) is read from a local SQLite database.
  4. A reply is generated by calling Gemini or OpenAI directly from your machine using your own API key.
  5. Post-generation filters apply (safe mode, budget, tone) before anything is posted.
  6. Memory is compacted periodically — the current session is summarised on shutdown so recall survives across streams.

Nothing passes through a shared backend. LLM calls travel from your machine directly to the AI provider you chose.

Getting started

The full distributable (Windows executable + system tray app) ships from Releases. Configuration, personality templates, and the review dashboard live at toolkit.deutschmark.online — the toolset drives the initial pairing and wizard flow.

To run from source (Node.js 22+ required):

npm install
npm run dev        # tsx watch — live reload
npm run build:exe  # packages the engine into a standalone executable

The runtime expects credentials supplied by the toolset pairing flow (stored locally). An LLM API key (Gemini or OpenAI) must be set — either through the toolset wizard or via the BOT_LLM_API_KEY environment variable. Without an API key the reply engine starts in disabled mode.

Eval suite (regression checks before release):

npm run eval           # run fixtures against current engine
npm run eval:gate      # pass/fail against baseline scores
npm run eval:baseline  # write a new baseline from current results

Project structure

Path What it is
src/ Engine source — Twitch chat ingest, SQLite memory, LLM calls, action evaluation, post-gen filters
src/gateway/ Twitch connection (tmi.js wrapper)
src/memory/ SQLite read/write, session compaction, chatter notes, episode recaps
src/reply/ LLM provider adapter, reply engine, budget, post-processing
src/actions/ Moderation action proposals and executor
src/runtime/ Config loading, credential management, config refresh loop
src/api/ Local health API, pairing endpoints, setup wizard endpoints
eval/ Fixtures and rubric runner used to catch behaviour regressions before release
scripts/ Build helpers — packages the engine into a single-file executable

Privacy

Local-first: all chat memory lives in a SQLite file on the broadcaster's machine. LLM calls go from your machine directly to Gemini or OpenAI — no shared server ever holds your chat data. Credentials are not stored in plaintext on disk.


License

MIT


deutschmark's other apps

Alert! Alert!
Stream-alert clips from any video source.
Clipline
Livestream VODs → shortform clips with auto-captions.
The Stream Toolset
OBS overlays + companion apps. One login, no subscriptions.
Collab Planner
Finds collab windows from streamers' broadcast history.
P.A.T.H.O.S.
AI career platform — resume tailoring + ATS scoring.

All projects → github.com/thedeutschmark

About

AI personality with persistent memory for Twitch streams. Remembers your chatters, stream lore, & inside jokes - from stream to stream.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors