Show what you are watching, listening to, reading, or working on as a Discord activity status from your browser.
Overview | Features | Screenshots | Install | Discord Assets | Run From Source | Roadmap
Discord Status is a Chrome extension with a local companion app that turns supported browser activity into Discord Rich Presence.
It can detect media and page activity from sites like YouTube, Netflix, Spotify, Twitch, GitHub, ChatGPT, Google Meet, Crunchyroll, Hotstar, Google, and Wikipedia. The extension handles detection inside the browser, while the backend talks to the Discord desktop app through Discord RPC.
The release flow is:
- Install the Discord Status browser extension.
- Install the Activity Status Companion desktop app.
- Open Discord desktop.
- Browse normally.
The companion app runs the local Discord RPC bridge in the background.
Discord Rich Presence is local. A Chrome extension cannot directly access Discord's local RPC socket, so Activity Status is split into two parts:
| Part | What it does |
|---|---|
extension/ |
Detects browser activity, lets you choose auto or manual mode, and sends updates to the backend |
src-tauri/ + tauri-ui/ |
Lightweight native companion that starts and supervises the local Discord RPC bridge |
backend/ |
Legacy Node backend kept for source/manual development |
Because of that, the best user experience is not “extension only.” The best experience is Chrome extension + native companion app.
Discord Status is still in early development phase.
YouTube, Netflix, Spotify, GitHub, ChatGPT, Google Meet, Twitch, and a few other sites are supported, but some websites change their page structure often. Detection can occasionally need updates when a site changes its DOM.
| Area | What it does |
|---|---|
| Auto detect | Picks up activity from supported browser tabs |
| Current-tab priority | Auto mode prefers the tab you are actually viewing instead of randomly swapping between background tabs |
| Manual mode | Lets you set a custom title and message for Discord |
| Media timestamps | Shows play progress for supported video/audio pages |
| Discord assets | Includes 512x512 logo assets ready for Discord Developer Portal upload |
| Status controls | Enable, clear, refresh, reconnect, and select a specific tab from the popup |
| Diagnostics | Backend health, Discord RPC health, and recent extension logs |
| Tray companion | Runs the local backend from the macOS menu bar, Windows tray, or Linux system tray |
| Release packaging | Builds extension and companion artifacts for GitHub Releases |
| Site | Status |
|---|---|
| YouTube | Supported |
| Netflix | Supported, title detection may vary by region/player UI |
| Spotify | Supported |
| Twitch | Supported |
| GitHub | Supported |
| ChatGPT | Supported |
| Google Meet | Supported |
| Crunchyroll | Supported |
| Hotstar | Supported |
| Wikipedia | Supported |
| Google Search | Supported |
| Manual custom status | Supported |
Get the latest release from the GitHub Releases page.
Download:
- Chrome Web Store listing is coming soon. Until then, install manually from the release zip.
- the Activity Status Companion app for your platform
Then:
- Install/open Activity Status Companion.
- Make sure Discord desktop is open.
- Install Discord Status from the Chrome Web Store.
- Keep the companion app running while using Discord status.
Until the Chrome Web Store listing is live, download the manual extension zip from GitHub Releases, extract it, open chrome://extensions, enable Developer mode, click Load unpacked, and select the extracted extension folder.
Installation note: current companion builds are unsigned. Windows SmartScreen/macOS Gatekeeper may warn because the app is not code-signed yet.
Allow the companion to run from your OS settings. For macOS:
sudo xattr -cr "/Applications/Activity Status Companion.app"or go to Privacy & Security settings and press on Allow in the Security section at bottom beside the warning.
npm installCompanion note: the companion runs as a background tray/menu-bar app. Click the tray icon to open the compact control popover. Use Settings from that popover for launch-at-login, backend startup, and diagnostics.
Install dependencies:
npm installPackage the extension:
npm run packagePackage the Chrome Web Store upload zip:
npm run package:webstoreBuild the companion app for your current platform:
npm run dist:companionThe public companion is built with Tauri, so the downloads stay much smaller than the old Electron build.
Legacy Electron build commands are still available for comparison/debugging:
npm run dist:companion:electron
npm run dist:companion:mac
npm run dist:companion:win
npm run dist:companion:linuxTauri build output goes to src-tauri/target/release/bundle/.
Pushes to main and pull requests build temporary GitHub Actions artifacts. They do not create a public Release page.
To publish a real GitHub Release with the .dmg, .exe, .AppImage, extension zips, and SHA256SUMS.txt, create and push a version tag:
git tag v1.0.0
git push origin v1.0.0The release workflow uses GitHub's built-in GITHUB_TOKEN, so no personal access token is needed.
- Start Discord desktop.
- Start Activity Status Companion; it will live in the menu bar/system tray.
- Open Chrome and visit a supported site.
- Open the extension popup.
- Use Auto Detect to follow the current tab, or choose a specific detected tab.
- Use Manual if you want to set your own title and message.
- Use Clear when you want to remove the activity.
| Setting | Works? | Notes |
|---|---|---|
| Backend Server URL | Yes | Keep it as http://localhost:3000 unless you run the local backend somewhere else on the same machine |
| Update Interval | Yes | Controls how often supported tabs are asked to refresh activity |
| Forget Inactive Tabs After | Yes | Removes stale tab activity from the popup and auto picker |
| Enabled Sites | Filter only | The checklist enables/disables already-supported detectors; new sites require code support |
| Log Level | Yes | Controls extension-side diagnostic logging |
| Discord Application ID | Companion build only | Maintainers set this in src-tauri/src/main.rs before building public releases |
Install backend dependencies:
npm run install:backendRun checks:
npm run checkStart the backend:
npm startRun the companion app in development:
npm run companion:devRun the legacy Electron companion:
npm run companion:dev:electronRun backend in watch mode:
npm run devPackage the extension and backend:
npm run packagePackage only the Chrome Web Store upload:
npm run package:webstoreCheck backend status:
curl http://localhost:3000/api/statusflowchart LR
Browser["Chrome tabs"] --> Content["Content scripts"]
Content --> Background["Extension background worker"]
Popup["Extension popup"] --> Background
Background --> Companion["Activity Status Companion"]
Companion --> API["Local HTTP API"]
API --> RPC["Discord RPC IPC"]
RPC --> Discord["Discord desktop app"]
Assets["Discord Rich Presence assets"] --> Discord
extension/ Chrome extension files
extension/scripts/ Site detectors and background worker
src-tauri/ Lightweight native companion and local HTTP/RPC bridge
tauri-ui/ Companion tray popover and settings UI
companion/ Legacy Electron companion shell
backend/ Legacy Node Discord RPC bridge
discord-assets-real/ Rich Presence logo assets
scripts/ Release/package helpers
.github/workflows/ GitHub Actions release packaging
| Problem | Try this |
|---|---|
| Discord says disconnected | Make sure Discord desktop is open, then restart the companion app |
| Companion has no Dock/window presence | This is intentional; click the menu bar/system tray icon for controls and Settings |
| Extension says backend offline | Confirm Activity Status Companion is running and settings use http://localhost:3000 |
| Auto mode swaps tabs | Reload the extension; auto mode should prioritize the active Chrome tab |
| Netflix title is wrong | Reload the Netflix tab and click Refresh in the popup |
GitHub Actions builds temporary artifacts on pushes, pull requests, and manual runs. It publishes a GitHub Release only when a v* tag is pushed.
The GitHub release assets include:
- Activity Status Companion for macOS (
.dmg) - Activity Status Companion for Windows (
.exeand.msi) - Activity Status Companion for Linux (
.AppImageand.deb) - Discord Status extension/manual install bundle
- Chrome Web Store upload zip
- SHA-256 checksums
The Chrome Web Store upload is generated separately at:
dist/discord-status-webstore.zip
That zip has manifest.json at the root, which is the format the Chrome Web Store expects.
Bug reports, site detector fixes, UI improvements, and setup simplifications are welcome.
When adding a new site detector, include:
- The content script or generic detector logic
- A matching Discord asset key (in case you are creating own discord application in developer portal - update the client ID in the code)
- A short note in the supported-sites table
- A test run with
npm run check
This project is licensed under the MIT License. See the LICENSE file for details.




