Sync your Spotify playback to Microsoft Teams status automatically.
PresenceJam polls Spotify's Web API for your currently playing track and sets it as your Microsoft Teams custom status message. When the track changes, your status updates automatically. When you pause or stop, it clears your status (if you've enabled that option).
| Feature | Description |
|---|---|
| Real-time Spotify detection | Polls Spotify's Web API while a track is playing |
| Teams status sync | Sets your Teams custom status via Microsoft Graph |
| Smart polling | Sleeps until the track ends — no wasted API calls |
| Auto-clear | Clears status when Spotify pauses/stops |
| Profanity filter | Replaces profane track names with a safe placeholder |
| System tray | Runs silently in the background |
| Launch at login | Optional auto-start on boot |
| Secure auth | PKCE OAuth for Spotify, Device Code flow for Teams |
Install the latest release from GitHub Releases:
PresenceJam-2.4.1.msi — Windows 10/11 (64-bit)PresenceJam-2.4.1-macos.dmg — macOS (Apple Silicon)First time? Follow the Setup Guide — it covers installing the app, registering a Spotify Developer app, and connecting Teams.
Already set up? Just run:
# Install dependencies
npm install
# Start development mode
npm run tauri dev
# Build for release
npm run tauri build
| Doc | What it's for |
|---|---|
| Setup | Installing the app, Spotify app registration, Teams auth |
| Usage | Day-to-day guide — tray, dashboard, settings |
| Architecture | How it works under the hood |
| Troubleshooting | Common problems and fixes |
| Changelog | Version history |
| Security | Token storage, privacy, network |
| Contributing | Dev setup, coding standards, PR process |
| Acknowledgements | Open-source dependencies |
The app is built with:
@sveltejs/adapter-statictauri-plugin-store for tokens (DPAPI on Windows, Keychain on macOS), JSON for configSee ARCHITECTURE.md for deep-dive diagrams and explanation.
Customize your Teams status using placeholders:
| Placeholder | Output |
|---|---|
{artist} |
Artist name |
{track} |
Track name |
{album} |
Album name |
{emoji} |
🎵 (playing) or ⏸️ (paused) |
Default: 🎵 {artist} - {track} 🎧
Example: 🎵 Daft Punk - One More Time 🎧
MIT — see LICENSE for details.