Spotify mini player for desktop built with Tauri + React, paired with a Next.js landing site.
- Overview
- Features
- Screenshots
- Architecture
- Getting Started
- Scripts
- Tech Stack
- Security Details
- Links
- License
MiniFy is a lightweight Spotify mini player built with Tauri. It lives as a frameless desktop overlay, polls the Spotify API for the currently playing track, and gives you playback controls, themeable layouts, and native OS menus. A Next.js site lives alongside the desktop app for marketing and downloads.
- Spotify OAuth flow with secure token storage and automatic refresh
- Playback controls, scrubbing, and save-to-library actions
- Native context menu with quick access to settings and window controls
- Keyboard-friendly design with configurable shortcuts
- Multiple Layouts: Three player layouts (A, B, C) optimized for different workflows
- Built-in Themes: Dark, Light, Spotify Green, and more pre-built themes
- Theme Studio: Create custom themes with a live JSON editor
- Persistent Settings: Your preferences are saved and restored automatically
- Multi-Provider Support: OpenAI, Anthropic, Google AI, and Groq
- Music Analysis: Understands your listening patterns, top artists, and audio preferences
- Natural Language Control: "Play something energetic" or "Find songs like my recent listens"
- Smart Recommendations: Uses Spotify's audio features (energy, mood, tempo, danceability)
- Secure Keyring Storage: All credentials stored in OS-level credential manager
- No Plain Text: API keys and tokens never saved to files
- OAuth PKCE: Industry-standard secure authentication flow
- Follow progress and planned milestones on the project board: ModioStudio MiniFy Roadmap
- Tauri shell hosting a Vite + React UI for the player.
- Rust commands manage OAuth, secure keyring storage, and Spotify Web API calls.
- All credentials (Spotify tokens, AI API keys) stored in OS-level secure keyring.
- AI DJ powered by Vercel AI SDK with tool-calling for Spotify integration.
- Shared settings persisted on disk; playback state is polled and cached in the renderer.
- Optional Next.js 15 site for the public landing page.
MiniFy offers multiple compact layouts to fit your workflow. Each layout is designed to be minimal yet functional.
Your personal AI-powered music assistant. Connect your preferred AI provider and let it analyze your listening habits, recommend songs, and control playback through natural conversation.
AI DJ Chat — Natural language music control
Ask for recommendations, play songs, or analyze your music taste
Supported AI Providers:
- OpenAI (GPT-4o Mini)
- Anthropic (Claude 3 Haiku)
- Google AI (Gemini 1.5 Flash)
- Groq (Llama 3.1 8B)
Full control over your MiniFy experience through a comprehensive settings panel.
Connections — Music & AI Provider Management
Connect Spotify and AI providers with secure API key storage
Customization Features:
- 🎨 Multiple built-in themes (Dark, Light, Spotify Green, etc.)
- 🖌️ Custom theme creation via JSON
- 📐 Switchable player layouts
- 🔐 Secure credential management
apps/desktop: Tauri 2 desktop app using React 19, Vite 7, and Tailwind 4.apps/www: Next.js 15 site for marketing and downloads.packages(empty today): reserved for future shared libraries.- Root tooling: Turborepo orchestrates tasks, Biome handles lint/format, pnpm powers the workspace.
- Node.js >= 18 and pnpm 9.
- Rust toolchain with the platform-specific Tauri prerequisites.
- Spotify Developer application to obtain a Client ID.
- Install dependencies:
pnpm install - (Optional) Install Git hooks:
pnpm dlx lefthook install - Have your Spotify Client ID ready; the desktop app will ask for it on first launch.
- Desktop app:
pnpm desktop:dev- First boot asks for the Spotify Client ID, performs OAuth, and lets you pick layout/theme.
- Web site:
pnpm www:dev- Starts the Next.js site (default port 3000).
pnpm dev— run workspace dev tasks via Turborepo.pnpm desktop:dev— launch the Tauri app in dev mode.pnpm desktop:build— create a production desktop bundle.pnpm desktop:clear— clear all credentials (Spotify tokens, AI keys) and settings.pnpm www:dev— start the Next.js site.pnpm www:build— build the Next.js site.pnpm lint— run Biome checks across the workspace.
- Desktop: Tauri 2, React 19, Vite 7, Tailwind CSS 4, Spotify Web API.
- AI: Vercel AI SDK with OpenAI, Anthropic, Google AI, and Groq support.
- Backend bridge: Rust + Tauri commands for OAuth, secure keyring storage, and playback actions.
- Web: Next.js 15 with React 19.
- Tooling: Turborepo, pnpm, Biome, Lefthook.
All sensitive credentials are stored in your operating system's secure credential manager:
| Platform | Storage |
|---|---|
| Windows | Credential Manager |
| macOS | Keychain |
| Linux | Secret Service |
This includes Spotify tokens and AI API keys. No credentials are stored in plain text files.
| Resource | URL |
|---|---|
| 🌐 Website | minify.skeptic.run |
| 📚 Documentation | minify-docs.skeptic.run |
| ⬇️ Downloads | GitHub Releases |
| 🐛 Issues | GitHub Issues |
| 📋 Roadmap | Project Board |
| 💬 Discord | discord.gg/haNyuz2zQ5 |
This project uses Dependabot to keep dependencies up-to-date automatically.
- Dependency Graph — Go to Settings → Security → Code security and enable "Dependency graph"
- Dependabot Alerts — Enable "Dependabot alerts" for security vulnerability notifications
- Dependabot Security Updates — Enable "Dependabot security updates" for automatic security PRs
- Dependabot Version Updates — Already configured via
.github/dependabot.yml, runs daily at 04:00 CET
| Ecosystem | Directory | Description |
|---|---|---|
| npm | / |
pnpm monorepo (all JS/TS packages) |
| cargo | /apps/desktop/src-tauri |
Rust/Tauri dependencies |
| github-actions | / |
GitHub Actions workflows |
| docker | /apps/docs, /apps/www |
Docker base images |
Licensed under the MIT License. See LICENSE for details.







