No phone app · No Nintendo account · No internet
Download · Try it in your browser · Documentation · Locked out?
PlayGuard brings the settings of Nintendo's Parental Controls phone app (the companion app) onto a modded console. It drives the console's own controls — the limit, the PIN, the warnings, the suspension — so nothing runs in the background.
Warning
Requires custom firmware (Atmosphère). PlayGuard uses the restricted pctl service, some of it through *ForDebug commands. Use at your own risk.
- ⏱️ Play-time limit — every day or one per day, extra time or no more play today in one press, Block all games in one switch.
- 📊 Activity — time per game and per account, charts, exports.
- 🔒 Restrictions and PIN — age rating, temporary unlock, PlayGuard itself behind the PIN.
- 🕒 Console — a network clock that counts right offline, the installed games checked and repaired, homebrew on the HOME menu behind the PIN.
- ↩️ History, backups, notifications — every change logged and undoable.
- 🏠 Home Assistant (optional) — over MQTT on your local network: the state and play time in Home Assistant, orders from it (extra time, limits, Block all games). Off by default. Guide.
- 🌍 Everywhere — every console language, light and dark themes, palettes, and theme files of your own.
→ Everything else: features.
The real app, against a simulated console, in your browser:
Unlocked for now · Time's up · First start, no PIN · On the TV, larger text
- On the console, open the Homebrew App Store or sphaira's App Store, search for PlayGuard and install it.
By hand instead: download
playguard.zipfrom the latest release and extract it to the root of the SD card. - Launch PlayGuard over a game, with a parent's user, and follow First steps.
Tip
Still linked to the companion app? Use Security › Unlink the companion app, or its next sync overwrites what you set.
Compatibility: tested on firmware 22.0.0, 22.1.0, 22.5.0 and 23.0.1 (Atmosphère 1.11–1.12); 23.0.0 and 21.x should work, untested; older firmware, everything but the play timer. Details: compatibility. No Switch 2.
guard.boreale.dev, in the console's 15 languages:
The Markdown sources live in docs/, with the reference pages: config.json · themes · how parental controls work · companion app · optional sysmodules.
CONTRIBUTING.md · Roadmap · Changelog · Code of conduct · Security
AI coding assistants help with development; every change is reviewed, unit-tested and checked on a real console before release.
PlayGuard is built by JigSawFr, a full-stack engineer who has shipped production software for years, with AI coding assistants as part of the toolbox.
- I decide: architecture, scope, what ships and what doesn't.
- AI helps write: first drafts of code and tests, docs, and the translations.
- I review everything: every change is read, tested (on a real console when it touches
the console) and signed before it reaches
main.
Nothing in the app or its sysmodule calls an AI service. More on boreale.dev.
GPLv3, see LICENSE. Maintained by JigSawFr, part of Boréale with PlayShelf and Aurore.
Credits
- A fork of Pctl Manager by Taylor; fw 22.5 fixes and NTP sync from anbingxi/NX-Pctl-Manager.
- Built with borealis (Apache 2.0, through Aurore, our fork), QR Code generator (MIT), Twemoji (CC-BY 4.0) and the Sora typeface (OFL 1.1); off the console, the simulators and desktop builds draw their text in Inter and their buttons with PromptFont (both OFL 1.1, through Aurore).
- Command reference from switchbrew.
- The installed games check and its repairs follow Goldleaf and sphaira (GPLv3), with the ns and es command numbers of libnx-ext (MIT).
- The NRO forwarders are built as sphaira builds them, their program sphaira's hbl, after nx-hbloader (ISC).
PlayGuard is not affiliated with or endorsed by Nintendo. Nintendo Switch is a trademark of Nintendo.





