⭐ If this project helped you, consider starring the repository!
Important
Disclaimer — Read Before Using This project automates a user account, which violates Discord's Terms of Service and Community Guidelines. Accounts found automating user connections may be suspended or permanently terminated.
- I am not responsible for any consequences resulting from the use of this code.
- Use this software at your own risk.
- This repository is not affiliated with, authorized, maintained, sponsored, or endorsed by Discord Inc. or any of its affiliates or subsidiaries.
Warning
NEVER share your Discord token with anyone. A token grants full access to your account without any password or 2FA. Anyone with your token can log in as you, read your DMs, and change your account settings.
- Runs locally your token never leaves your machine
- Supports custom status (with optional emoji)
- Keeps your account online 24/7
- Supports all status modes:
online,idle,dnd,invisible - Cross-platform, works anywhere Python 3.8+ runs
- Simple JSON config, no code editing required
Caution
A user token is equivalent to your password. Treat it like one.
- Log in to Discord in your browser (not the desktop app).
- Press Ctrl + Shift + I (or F12) to open DevTools.
- Go to the Network tab and keep it open.
- Refresh the page.
- In the filter box, type
api/v9orapi/v10. - Click any request to
discord.com/api/...— ideally the one namedmessagesorscience. - Open the Headers sub-tab and scroll to Request Headers.
- Copy the value next to
authorization:. That's your token.
Warning
Do not paste your token into any website, bot, or Discord message even if it claims to "check" or "verify" it. That is always a scam.
Download Python 3.8 or newer from python.org/downloads.
On Windows, tick "Add Python to PATH" during installation
Verify with:
python --versionEither clone the repo:
git clone https://github.com/SealedSaucer/Online-Forever.git
cd Online-ForeverOr download the ZIP and extract it.
- Configure Open config.json and edit:
{
"token": "YOUR_TOKEN_HERE",
"status": "online",
"activity": {
"type": "playing",
"name": "Minecraft"
}
}See the Configuration section below for all options.
- Install dependencies
pip install -r requirements.txt- Run it
python main.py--
| Key | Type | Description |
|---|---|---|
token |
string | Your Discord user token |
status |
string | online · idle · dnd · invisible |
activity.type |
string | custom · playing · streaming · listening · watching · competing |
activity.name |
string | Text after the verb (ignored for custom) |
activity.details |
string | Optional second line (only for playing) |
activity.state |
string | Optional third line (only for playing) |
activity.stream_url |
string | Required for streaming must be a Twitch or YouTube URL |
activity.custom_status |
string | Text shown for custom type |
activity.use_emoji |
bool | Enable an emoji on the custom status |
activity.emoji |
string | Unicode emoji (e.g. "🔥") |
Playing a game
"activity": { "type": "playing", "name": "Minecraft" }Streaming on Twitch
"activity": {
"type": "streaming",
"name": "Live coding",
"stream_url": "https://twitch.tv/yourname"
}Custom status with emoji
"activity": {
"type": "custom",
"custom_status": "Hey there!",
"use_emoji": true,
"emoji": "🔥"
}| Problem | Fix |
|---|---|
Invalid token! |
Re-copy your token it may have expired or been reset. |
ModuleNotFoundError: websockets |
Run pip install -r requirements.txt. |
python: command not found |
Try python3 instead, or reinstall Python with PATH enabled. |
| Account shows offline anyway | Close all other Discord clients on mobile/desktop only the last presence wins. |
| Script exits immediately | Check the console usually a malformed config.json (trailing comma, missing quotes). |

