Skip to content
SPECIFICTION
Get listed

ScreenGuard

github.com

WebLinuxAndroidAPISelf-hosted
Visit github.com
Spec score 7.5 #70 of 107 in Parental control apps

Spec sheet

Purpose
ScreenGuard provides parental controls for Linux, with screen-time schedules and daily limits enforced by an agent that can lock sessions.Read 12 Oct 2026 · github.com
Deployment
ScreenGuard can be self-hosted on a LAN or used with a hosted cloud account; the project says LAN use works offline without cloud access.Read 12 Oct 2026 · github.com
Free plan
YesRead 22 Sep 2026 · github.com
License
The repository README identifies the project license as GPL-3.0.Read 12 Oct 2026 · github.com
Activity reports
YesRead 22 Sep 2026 · github.com
Administration
Administrators manage profiles and devices through a web UI or REST API.Read 12 Oct 2026 · github.com
Agent permissions
The README says the server cannot run arbitrary commands, read files, or open a shell on the agent, but it can request a privileged agent update from GitHub releases.Read 12 Oct 2026 · github.com
Cloud status
The README describes the hosted service as young and says its endpoint and enrollment flow may change.Read 12 Oct 2026 · github.com
Content filtering
YesRead 22 Sep 2026 · github.com
Data collected
The agent reports machine and local account identifiers, active-time and usage totals, idle status, and open-session counts; the README says it does not send window titles, application names, keystrokes, screenshots, or file contents.Read 12 Oct 2026 · github.com
Data collection
The README says the agent reports machine and user identifiers, active-time totals, idle status, session counts, and daily usage, but not window titles, app names, keystrokes, screenshots, or file contents.Read 12 Oct 2026 · github.com
Database options
The server uses SQLite by default and can be configured to use PostgreSQL.Read 12 Oct 2026 · github.com
Discovery
Agents can discover a server automatically on the local network using mDNS.Read 12 Oct 2026 · github.com
Enforcement
A systemd agent enforces limits and can lock graphical sessions when time runs out.Read 12 Oct 2026 · github.com
Hosted option
The README describes hosted cloud accounts for managing machines without running a server, with device approval and account-specific profiles, devices, and usage history.Read 12 Oct 2026 · github.com
Mobile app
A companion Android app manages profiles, devices, schedules, and daily limits through the same REST API as the web UI.Read 12 Oct 2026 · github.com
Network behavior
Agents initiate outbound connections, and cloud mode uses a TLS-protected WebSocket; LAN discovery uses mDNS.Read 12 Oct 2026 · github.com
Network security
The agent always initiates connections, and the README says cloud connections use a TLS-protected WebSocket.Read 12 Oct 2026 · github.com
Notifications
The agent can warn users 15, 10, 5, and 1 minute before lockout, and administrators can send desktop messages.Read 12 Oct 2026 · github.com
Offline and hosting
The project says it works offline and can be self-hosted without requiring cloud service.Read 12 Oct 2026 · github.com
Remote control
The documented server messages include configuration updates, lock and notification actions, log retrieval, and a privileged agent update; the README says there is no message for arbitrary commands, file reads, or shell access.Read 12 Oct 2026 · github.com
Requirements
Managed machines require Linux with systemd, an x86_64 or aarch64 CPU, and a graphical session manager supporting loginctl terminate-session.Read 12 Oct 2026 · github.com
Schedule controls
Each user profile can have daily time limits and weekly schedules.Read 12 Oct 2026 · github.com
Schedules
Administrators can set daily time limits and weekly schedules per profile.Read 12 Oct 2026 · github.com
Screen-time schedules
YesRead 22 Sep 2026 · github.com
Session handling
When time runs out, ScreenGuard can lock graphical sessions, with an optional mode that preserves running applications and unsaved work.Read 12 Oct 2026 · github.com

Where Specifiction places it

Alternatives to ScreenGuardAll alternatives →