Lurk is a lightweight Twitch channel points miner with a web UI.
It is built with Bun + SvelteKit, with an emphasis on efficient runtime and a clear analytics UI. This project is inspired by Twitch-Channel-Points-Miner-v2.
Set your tracked streamers in data/config.json before starting Lurk.
mkdir -p data
cp example.config.json data/config.jsonExample:
{
"streamers": [
"streamer1",
"streamer2",
"streamer3"
],
"autoStartMiner": true
}streamers: Twitch streamers to track.autoStartMiner: iftrue, miner tries to start automatically on boot.
mkdir -p logs
docker compose up -dOpen http://localhost:1738.
The included compose file persists:
./data->/data(runtime state and SQLite database)./logs->/app/logs(server logs)
- Open the app in your browser.
- Start Twitch login from the UI (device flow) and complete verification.
- The miner should start automatically after authentication.
<LURK_DATA_DIR> defaults to ./data locally and /data in the provided container image.
<LURK_DATA_DIR>/config.json: runtime config you edit.<LURK_DATA_DIR>/auth.json: stored auth/session state (managed by app).<LURK_DATA_DIR>/lurk.sqlite: analytics database (managed by app)../logs/: rotating server logs.
If you back up one thing, back up your data directory.
Environment variables:
LURK_DATA_DIR: runtime state directory.LOG_LEVEL:trace,debug,info,warn,error,fatal.PORT: HTTP port (default3000in container runtime).HOST: bind host (default0.0.0.0in container runtime).
Health endpoint: GET /api/health
- Twitch APIs can change. Lurk remains best-effort.
