Schneller nativer WebUntis Desktop Client in Go & WebKitGTK
Go to file
2026-09-05 12:51:20 +02:00
.github/workflows feat: update module path to github.com/benzjeremy/untis-go, add CI workflow and quality badges 2026-09-04 17:59:27 +02:00
api release: v1.6.0 major release - mandatory Microsoft 365 & OneDrive cloud-sync, device code login, and weekend timetable filter hotfix 2026-09-05 12:01:02 +02:00
cloud release: v2.0.0 major release - native desktop architecture, universal dashboard timetable switcher, AES-256-GCM cloud backups, and security hardening 2026-09-05 12:51:20 +02:00
db fix(build): add net/url import, remove unused import, add pbkdf2 to go.mod, include bilingual README and i18n draft 2026-09-04 23:01:31 +02:00
server release: v2.0.0 major release - native desktop architecture, universal dashboard timetable switcher, AES-256-GCM cloud backups, and security hardening 2026-09-05 12:51:20 +02:00
updater feat(server,updater): add self-updater, concurrent dashboard, room calculation and absences filter 2026-09-04 18:49:09 +02:00
web release: v2.0.0 major release - native desktop architecture, universal dashboard timetable switcher, AES-256-GCM cloud backups, and security hardening 2026-09-05 12:51:20 +02:00
.gitignore chore: add dist and archive artifacts to .gitignore 2026-09-04 19:00:01 +02:00
go.mod fix(build): add net/url import, remove unused import, add pbkdf2 to go.mod, include bilingual README and i18n draft 2026-09-04 23:01:31 +02:00
go.sum fix(build): add net/url import, remove unused import, add pbkdf2 to go.mod, include bilingual README and i18n draft 2026-09-04 23:01:31 +02:00
gui_linux.go release: v2.0.0 major release - native desktop architecture, universal dashboard timetable switcher, AES-256-GCM cloud backups, and security hardening 2026-09-05 12:51:20 +02:00
gui_other.go fix(gui): support Linux CGO_ENABLED=0 builds in gui_other.go 2026-09-04 18:57:27 +02:00
gui_windows.go feat: cross-platform windows/linux desktop support, beta release documentation and gpl-3.0 license 2026-09-03 21:52:24 +02:00
LICENSE feat: cross-platform windows/linux desktop support, beta release documentation and gpl-3.0 license 2026-09-03 21:52:24 +02:00
main.go release: v2.0.0 major release - native desktop architecture, universal dashboard timetable switcher, AES-256-GCM cloud backups, and security hardening 2026-09-05 12:51:20 +02:00
README.md release: v1.6.0 major release - mandatory Microsoft 365 & OneDrive cloud-sync, device code login, and weekend timetable filter hotfix 2026-09-05 12:01:02 +02:00

🚀 untis-go

Go Reference Go Report Card CI Coverage Awesome Go Release: v1.6.0 Status: Release License: GPL-3.0 Go Version Security: AES-256-GCM

⚠️ IMPORTANT NOTE: ENGLISH + GERMAN
This README is provided in both English and German.
Select your preferred language above the content.


🇬🇧 English

⚠️ IMPORTANT NOTICE: FIRST RELEASE VERSION
This is an early RELEASE version. The application is actively developed and optimized.
If you encounter errors, display bugs, or unexpected behavior, please create a ticket directly under GitHub Issues! Feedback, bug reports, and pull requests are expressly welcome and help improve the app.

What is Untis GO?

A fast, native, and modern WebUntis PC-Desktop client for students and teachers written in Go with a modern desktop shell (inspired by the sidebars of Microsoft Teams, Discord, and Spotify Desktop).

Forget slow web interfaces, cluttered layouts, or resource-heavy apps. untis-go brings your timetable, substitution schedules, homework, announcements, and absences lightningfast and crossplatform to your desktop without Electron bloat!


🇩🇪 Deutsch

⚠️ WICHTIGER HINWEIS: ERSTE RELEASEVERSION
Dies ist eine frühe RELEASEVersion. Die Anwendung wird aktiv weiterentwickelt und optimiert.
Sollten dir Fehler, DarstellungsBugs oder unerwartetes Verhalten auffallen, erstelle bitte direkt ein Ticket unter GitHub Issues! Feedback, Fehlerberichte und Pull Requests sind ausdrücklich erwünscht und helfen, die App zu verbessern.

Was ist Untis GO?

Ein schneller, nativer und moderner WebUntis PCDesktopClient für Schüler und Lehrkräfte geschrieben in Go mit moderner DesktopShell (angelehnt an die Sidebar von Microsoft Teams, Discord und Spotify Desktop).

Vergiss langsame WebInterfaces, unübersichtliche Oberflächen oder ressourcenfressende Apps. untis-go bringt deinen Stundenplan, Vertretungspläne, Hausaufgaben, Mitteilungen und Abwesenheiten blitzschnell und plattformübergreifend auf deinen Desktop ohne ElectronBloat!


Features

🇬🇧 English

  • 🏠 Overview (Dashboard):
    • Personal greeting with name and school.
    • Direct display of the next lesson and today's schedule.
    • Quick overview of open homework and unread announcements/messages.
  • 📅 My Timetable:
    • Your personal student or teacher timetable.
    • Day and week view with red LIVETIMELINE.
    • Click on any lesson opens detailed information (teachers, substitutions, rooms, subject, homework).
  • 👥 Other Timetables:
    • Quick switching between all classes (with live search over hundreds of classes), teachers, and classrooms.
  • 📝 Homework Management:
    • Overview of all homework from WebUntis plus manually added tasks.
    • Tick off tasks, filter, and add new homework via a dialog.
  • 🩺 Absences:
    • Absence list with status (Excused / Unexcused), period, and reason.
    • Enter new absences / sick notes.
  • 💬 Messages (Message Center):
    • Fullfeatured inbox for all official school messages, parent letters, and teacher announcements with fulltext display.
  • ⚙️ Schools & Profile Management:
    • Manage any number of schools and user profiles in parallel.
    • Delete schools: Each profile can be deleted with a click on the red trashcan icon.
    • Live school search: Find your school worldwide via the official WebUntis school search no preconfigured default school!
  • ☁️ Microsoft 365 & OneDrive Sync (Mandatory v1.6):
    • Sign in with school/student accounts (Office 365 Education / Entra ID) or personal Microsoft accounts.
    • Automatic encrypted cloud backup of all configurations, profiles, and homework directly into your personal OneDrive (/Apps/untis-go/untis_config.json).
    • Seamless restore across all your devices.

🇩🇪 Deutsch

  • 🏠 Übersicht (Dashboard):
    • Persönliche Begrüßung mit Name und Schule.
    • Direktanzeige der nächsten Unterrichtsstunde und des heutigen Tagesablaufs.
    • Schnelle Übersicht über offene Hausaufgaben und ungelesene Durchsagen/Mitteilungen.
  • 📅 Mein Stundenplan:
    • Dein persönlicher Schüler oder LehrerStundenplan.
    • Tages und Wochenansicht mit roter JETZTLiveZeitlinie.
    • Klick auf jede Unterrichtsstunde öffnet Detailinfos (Lehrkräfte, Vertretungen, Räume, Lehrstoff, Hausaufgaben).
  • 👥 Weitere Stundenpläne:
    • Schneller Wechsel zwischen allen Klassen (mit LiveSuchfilter über hunderte Klassen), Lehrkräften und Fachräumen.
  • 📝 HausaufgabenVerwaltung:
    • Übersicht aller Hausaufgaben aus WebUntis sowie manuell hinzugefügter Aufgaben.
    • Aufgaben abhaken, filtern und neue Hausaufgaben über einen Dialog hinzufügen.
  • 🩺 Abwesenheiten:
    • Fehlzeitenliste mit Status (Entschuldigt / Unentschuldigt), Zeitraum und Begründung.
    • Eintragen neuer Abwesenheiten / Krankmeldungen.
  • 💬 Mitteilungen (Nachrichtenzentrum):
    • Vollwertiger Posteingang für alle offiziellen Schulnachrichten, Elternbriefe und Lehrerdurchsagen mit VolltextAnzeige.
  • ⚙️ Schulen & Profilverwaltung:
    • Beliebig viele Schulen und Benutzerprofile parallel verwalten.
    • Schulen löschen: Jedes Profil kann mit einem Klick auf das rote PapierkorbIcon gelöscht werden.
    • LiveSchulsuche: Finde deine Schule weltweit über die offizielle WebUntisSchulsuche keine feste Standardschule vorkonfiguriert!
  • ☁️ Microsoft 365 & OneDrive Synchronisierung (Pflicht ab v1.6):
    • Anmeldung mit Schüler-/Schulkonten (Office 365 / Entra ID) oder persönlichen Microsoft-Accounts.
    • Automatische verschlüsselte Sicherung aller Konfigurationen, Schulen, Profile und Hausaufgaben direkt in deinem persönlichen OneDrive (/Apps/untis-go/untis_config.json).
    • Wiederherstellung mit einem Klick auf jedem beliebigen PC oder Laptop.

🔒 Security & ZeroLag

🇬🇧 English

  • AES256GCM Encryption: Passwords are never stored in plain text.
  • SQLite Cache: Timetables load in under 1ms directly from local storage.
  • Random Port & Session Token: Protection against unauthorized local access.

🇩🇪 Deutsch

  • AES256GCM Verschlüsselung: Passwörter werden niemals im Klartext gespeichert.
  • SQLite Cache: Stundenpläne laden in unter 1 Millisekunde direkt aus dem lokalen Speicher.
  • Zufallsport & SessionToken: Schutz vor unbefugtem lokalen Zugriff.

📦 Installation & Download

🇬🇧 English

Download the matching file for your operating system from the Releases page:

  • Linux (x86_64):
    tar -xzf untis-go-v1.6.0-linux.tar.gz
    sudo cp untis-go /usr/local/bin/
    untis-go
    
  • Windows (x86_64):
    • Unzip untis-go-v1.6.0-windows.zip and start untis-go.exe.

2. Installation via Go (go install)

If you have Go (version1.21 or newer) installed on your computer, you can install untis-go systemwide with a single command:

go install github.com/benzjeremy/untis-go@latest

The program will be compiled automatically into your $GOPATH/bin (or ~/go/bin) and can be called directly as untis-go in the terminal (provided ~/go/bin is in your $PATH).

3. Compile from source

Prerequisites (Linux):
  • Go 1.21+
  • GTK 3 & WebKitGTK development files:
    • Arch Linux / CachyOS: sudo pacman -S webkit2gtk-4.1 gtk3 gcc
    • Ubuntu / Debian: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev build-essential
    • Fedora: sudo dnf install webkit2gtk4.1-devel gtk3-devel gcc
Building:
# 1. Clone the repository
git clone https://github.com/benzjeremy/untis-go.git
cd untis-go

# 2. Load dependencies & build
go build -o untis-go .

# 3. Start
./untis-go

🇩🇪 Deutsch

1. Vorkompilierte Pakete herunterladen (Empfohlen)

Lade die passende Datei für dein Betriebssystem unter Releases herunter:

  • Linux (x86_64):
    tar -xzf untis-go-v1.6.0-linux.tar.gz
    sudo cp untis-go /usr/local/bin/
    untis-go
    
  • Windows (x86_64):
    • Entpacke untis-go-v1.6.0-windows.zip und starte untis-go.exe.

2. Installation über Go (go install)

Wenn du Go (ab Version1.21) auf deinem Rechner installiert hast, kannst du untis-go mit einem einzigen Befehl systemweit installieren:

go install github.com/benzjeremy/untis-go@latest

Das Programm wird automatisch in dein $GOPATH/bin (bzw. ~/go/bin) kompiliert und kann direkt als untis-go im Terminal aufgerufen werden (sofern ~/go/bin in deinem $PATH liegt).

3. Aus dem Quellcode kompilieren

Voraussetzungen (Linux):
  • Go 1.21+
  • GTK 3 & WebKitGTK Entwicklungsdateien:
    • Arch Linux / CachyOS: sudo pacman -S webkit2gtk-4.1 gtk3 gcc
    • Ubuntu / Debian: sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev build-essential
    • Fedora: sudo dnf install webkit2gtk4.1-devel gtk3-devel gcc
Bauen:
# 1. Repository klonen
git clone https://github.com/benzjeremy/untis-go.git
cd untis-go

# 2. Abhängigkeiten laden & bauen
go build -o untis-go .

# 3. Starten
./untis-go

⌨️ Keyboard Shortcuts (Tastenkombinationen)

Key / Taste Action / Aktion
/ Previous / Next day (or week) Vorheriger / Nächster Tag (bzw. Woche)
T Jump to Today Zu Heute springen
D Activate Day view Tagesansicht aktivieren
W Activate Week view Wochenansicht aktivieren
Esc Close open dialogs, infosheets, and menus Offene Dialoge, InfoSheets und Menüs schließen

🐛 Found a bug? (Create an issue)

🇬🇧 English

Since untis-go is currently in the first RELEASE phase, bug reports are extremely valuable!
If something does not work as expected:

  1. Open the Issues tab.
  2. Click New Issue.
  3. Briefly describe:
    • Which operating system are you using?
    • What did you do?
    • What happened (error message, log output)?
  4. Submit the ticket we will look into it as soon as possible!

🇩🇪 Deutsch

Da sich untis-go aktuell in der ersten RELEASEPhase befindet, sind Fehlerberichte extrem wertvoll!
Wenn etwas nicht wie erwartet funktioniert:

  1. Öffne den Tab Issues.
  2. Klicke auf New Issue.
  3. Beschreibe kurz:
    • Welches Betriebssystem nutzt du?
    • Was hast du gemacht?
    • What happened (error message, log output)?
  4. Ticket abschicken wir schauen uns das so schnell wie möglich an!

📄 License

This project is licensed under the GNU General Public License v3.0 (GPL3.0).
See the LICENSE file for details.


🌐 Language / Sprachwahl

The application, website, and documentation are available in English and German.
Select your preferred language in the app settings or via the language selector on the website.

More languages coming soon Weitere Sprachen folgen

📚 Wiki & Dokumentation

Ausführliche Dokumentation, Schritt-für-Schritt-Anleitungen und Bildmaterial: