UNIO is a private desktop study operating system for serious NEET preparation. It combines a focused Tauri desktop shell, Discord sign-in, private friend activity, study analytics, tasks, notes, syllabus tracking, timetable planning, Discord Rich Presence, optional Lofi study music, and a browser focus guard that blocks high-distraction routes while a focus session is active.
The app is created and maintained as a private project by Adhi (itzadhi).
- Provides a calm desktop workspace for daily study planning and tracking.
- Starts, pauses, and records focus sessions with subject and chapter context.
- Shows daily totals, weekly totals, streaks, consistency, study load, and exam countdowns.
- Keeps tasks, notes, syllabus progress, and timetable blocks in one app.
- Signs users in with Discord OAuth so each learner has a real identity.
- Syncs other Discord OAuth users and shared study activity through the configured Turso/libSQL database.
- Publishes professional Discord Rich Presence while the app is open, including idle and active study states.
- Runs an optional study music system through Lavalink. One track is selected per study block and looped for that block.
- Activates a focus guard during active sessions to block Instagram, Facebook, Reels, Shorts, and non-educational YouTube videos.
- Ships a Windows NSIS installer with the default white installer theme and bundled runtime resources.
UNIO is pre-1.0 software. It is usable, but the browser guard, Discord integrations, and sync system depend on local machine policy, valid credentials, Discord API availability, Chrome behavior, and the configured remote services. Treat each release as a tested private build, not a public commercial distribution.
The main app is organized into:
- Dashboard: current operating state, task summary, study totals, and exam countdowns.
- Focus: timer, subject selector, chapter context, guard activation, and session recording.
- Tasks: precise study commitments and completion tracking.
- Syllabus: subject and chapter coverage.
- Timetable: weekly study block architecture.
- Notes: study resources and notes.
- Analytics: consistency, load, streaks, countdowns, and recent study history.
- Friends: Discord-backed private study circle and live-ish shared activity.
- Settings: Discord account, Turso sync state, Focus Guard, and configurable study music.
- Frontend: React 18, TypeScript, Vite, Tailwind CSS, Zustand, TanStack Query, Framer Motion, lucide-react.
- Desktop shell: Tauri 2 with Rust commands.
- Database: libSQL/Turso remote database with local-friendly command wrappers.
- Discord: OAuth user sign-in, optional server membership sync, and local IPC Rich Presence.
- Browser guard: local PAC/proxy bridge plus Chrome extension guard.
- Music: Lavalink REST load-tracks flow with primary/backup provider selection.
- Installer: Tauri NSIS plus a post-build Windows patch script.
.
+-- browser-extensions/
| +-- unio-focus-guard/ # Chrome extension source
| +-- packed/ # local packed extension artifacts, not source secrets
+-- assets/ # project branding and creator profile assets
+-- docs/ # long-form project documentation
+-- scripts/ # Windows installer and guard helper scripts
+-- src/ # React app
| +-- components/
| +-- hooks/
| +-- layout/
| +-- lib/
| +-- modules/
| +-- store/
+-- src-tauri/ # Rust/Tauri app
| +-- src/commands/
| +-- src/db/
| +-- src/services/
| +-- tauri.conf.json
+-- .env.example # safe configuration template
+-- package.json
+-- README.md
Install Node.js 20 or newer, Rust stable, and the Visual Studio C++ build tools for Windows.
npm install
npm run devIn another terminal:
npm run tauri devFor a production frontend build:
npm run buildFor a Windows installer:
npm run build:installerThe installer is written to:
src-tauri/target/release/bundle/nsis/
The standalone executable is written to:
src-tauri/target/release/unio.exe
Copy .env.example to .env and fill only the values you control.
Copy-Item .env.example .envNever commit .env, OAuth secrets, bot tokens, Turso tokens, Groq keys, GitHub tokens, or extension signing private keys.
The important configuration groups are:
- Discord OAuth: user sign-in and account identity.
- Discord friends: private circle progress sync.
- Turso/libSQL: remote study data.
- Groq: YouTube educational classifier fallback.
- Lavalink: study music search and failover.
See docs/CONFIGURATION.md for the full field guide.
UNIO uses Discord OAuth to verify the current user. The redirect URI defaults to:
http://127.0.0.1:1420/auth/discord/callback
Add that exact URI in the Discord Developer Portal for the application. If the desktop app says OAuth is missing, the usual cause is an empty UNIO_DISCORD_CLIENT_ID or UNIO_DISCORD_CLIENT_SECRET in .env.
More detail is in docs/SETUP.md.
The Focus Guard has two layers:
- A local app guard that can activate a PAC/proxy path during focus.
- A Chrome extension that blocks Instagram, Facebook, Reels, Shorts, and YouTube videos classified as non-educational.
The guard is designed to activate while a focus session is running and relax when the session is paused or the app exits. It is a study aid, not a security boundary. Browser vendors, extensions, user permissions, and OS policy can affect behavior.
See docs/FOCUS_GUARD.md.
Study music is configured only in Settings. If enabled, UNIO asks Lavalink for a Lofi Girl style track, loops one track for the current focus block, and avoids repeating the previous track on the next block. Provider mode can be set to primary, backup, or automatic failover.
Music is optional. If a Lavalink provider fails, the app should keep study flow alive and surface the provider state rather than blocking focus.
UNIO publishes Discord Rich Presence through local Discord IPC. Presence has two main states:
- Idle: app open, no active focus session.
- Active: subject, chapter, and session start time while studying.
RPC requires the Discord desktop client to be running and a valid Discord application client ID. If Discord restarts, UNIO attempts to republish activity.
Recommended release assets:
UNIO_<version>_x64-setup.exeunio.exeunio-<version>-source.zipUNIO_<version>_windows_x64.zipUNIO_<version>_amd64.AppImageunio_<version>_amd64.debUNIO_<version>_linux_x64.zip
The source zip must exclude:
.env.gitnode_modulesdisttargetandsrc-tauri/target- build logs
- packed extension private keys such as
.pem - GitHub tokens or any other credentials
See docs/RELEASE.md.
CIverifies the Windows build inputs on pushes and pull requests tomain.Releasebuilds the Windows installer, standalone executable, Linux AppImage, Linux deb package, clean source zip, and combined platform packages from a tag or manual workflow run.- Release builds use the
UNIO_RELEASE_ENVActions secret when present, so app packages can bundle release config while real credentials stay outside GitHub source and source archives.
- Setup
- Configuration
- Architecture
- Focus Guard
- Release Process
- Troubleshooting
- Legal Notes
- Security Policy
- Contributing
UNIO is provided for private educational productivity use. It is not affiliated with, endorsed by, sponsored by, or approved by Discord, YouTube, Google, Chrome, Meta, Instagram, Facebook, Lofi Girl, Turso, Groq, Lavalink providers, NTA, CBSE, or any named third party. Third-party names are used only to identify integrations or compatibility targets.
UNIO does not provide legal, medical, psychological, academic guarantee, or exam result advice. The focus guard is a behavior-support tool, not a guaranteed content filter or security product.
Full legal notes are in docs/LEGAL.md.
Copyright (c) 2026 Adhi (itzadhi).
All rights reserved. See LICENSE.
