A Telegram dead man's switch. Check in regularly - if you miss your deadline, your designated watchers are notified.
- Add a watcher via
/invite— share the link with someone you trust - Check in daily with
/checkin - If you miss your deadline, your watchers receive your custom alert message
Reminders are sent at a configurable daily time and again when the deadline is approaching.
| Command | Description |
|---|---|
/checkin |
Record a check-in |
/settings |
Configure interval, deadline, reminders, alert message, and PIN |
/invite |
Generate a one-time invite link for a watcher |
/watchers |
View and manage your watchers |
/watching |
View people you are watching |
/lang |
Switch language |
- Interval — how often you intend to check in (12 / 24 / 48 / 72 h)
- Deadline — how long after a missed check-in before watchers are alerted (24-96 h)
- Daily reminder — UTC hour to receive a daily nudge
- Before deadline — reminder X hours before the deadline is reached
- Alert message — what your watchers see if you go silent
- PIN — optional 4-digit PIN required to complete a check-in (entered via on-screen keypad, never exposed in chat history)
- Duress mode — when enabled alongside a PIN, the bot always shows a successful check-in response regardless of what PIN is entered, but only records the check-in when the correct PIN is used. Protects against coercion.
Requirements: Python 3.12+, uv
BOT_TOKEN=your_token uv run python main.pyDocker:
docker build -t stillalive-bot .
docker run -e BOT_TOKEN=your_token -v $(pwd)/data:/app/data stillalive-botThe SQLite database is stored at stillalive.db by default (set DB_PATH to override).
