Modern terminal workspace (Interactive TUI & Headless CLI) consolidating all school assignments from Moodle and Microsoft Teams, timetable absences and exam schedules from WebUntis, as well as schoolbooks and Digi4School in one unified view.
π Comprehensive Documentation: Persistent 2-tier session memory located in
docs/(Project Overview β’ Architecture β’ Conventions β’ Current State β’ Decisions (ADRs)) and the master indexAGENTS.md.
-
Consolidated Assignment Feed (Moodle & Teams):
- Unified view of assignments from Moodle (π§) and Microsoft Teams (π¦) in a color-coded table.
- Automatic urgency warnings (Red = Overdue, Yellow = Due within 24 hours).
- Rich filtering by completion status (Open Only, Overdue, Completed, All), school subject (SWP, AMEC, NWES, BET...), or platform.
-
Assignment Details & Smart Auto-Dir Downloads:
- Full task instructions rendered as clean, formatted Markdown.
- Smart Download Dialog (
[D]): Choose between [1] Auto-Dir (automatically downloads attachments into your linked school subject folder, e.g.OneDrive\Schule\HTL\3. Klasse\<Subject>\), [2] Explorer (pick destination via Windows File Explorer), or [3] Standard Downloads (%USERPROFILE%\Downloads\<Subject> - <Title>\). - Automatically opens the target folder in Windows File Explorer upon completion.
- 1-Click navigation directly to the official Moodle or Teams submission portal in your browser (
[O]).
-
Native In-App AI Assistant & Agent Integration (
AiChatScreen):- π€ Interactive Full-Screen AI Assistant (
[I]): Dedicated chat interface with browser-style tabs for all active assignments. Automatically remembers your last opened task. - Deep Context & Auto-Attachment Text Extraction: Automatically extracts text from attached PDFs (via PyMuPDF /
fitz), Markdown files, and source code (.py,.c,.java, etc.) into the AI system prompt. - Rich Markdown & Syntax Highlighting: Assistant responses render with native Markdown, syntax-highlighted code fences (
MarkdownFence), and inline code blocks across both standard and OLED themes. - Fluid Input Experience: Direct Enter-to-send,
Shift+Entermulti-line expansion (up to 3 rows with auto-scrollbar), and an animated thinking indicator. - π€ Seamless Ai Explain (
[A]): In any assignment detail modal, click[A]to transition directly into the AI assistant with that task active and step-by-step guidance. - AI Configuration Hub (
Settings->[7]/[A]): Configure Google Gemini Free-Tier (gemini-2.0-flash) or OpenAI-compatible models, auto-fetch available models, test connection, and switch languages (DE/EN).
- π€ Interactive Full-Screen AI Assistant (
-
π€ AI Agent Hub & Universal Skill Management (
[Alt+A]/π€ Agent):- Agent Hub Modal (
AgentHubModal): Central management interface connecting Tasks with autonomous coding agents (Google Antigravity, Claude Code, Cursor, Windsurf, custom harnesses). - Universal 3-Step Setup Wizard (
AgentSkillSetupModal): Interactive setup with native Windows Explorer folder selection, automatictasksdirectory normalization, and keyless on-demand download ofSKILL.mddirectly from GitHub (no tokens, credentials, orghCLI required). - Skill State Management (
AgentSkillStatusModal): Live path display, auto-update status (ENABLED), relocation (π¦ Move Skill) with automatic cleanup of old directories, and unlinking (ποΈ Remove Skill) with confirmation. - Self-Healing Integrity Check (
verify_skill_integrity): Automatically detects if the skill folder orSKILL.mdwas manually deleted on disk at startup or before updates, clears the configuration, and alerts the user with a warning toast (Agent Skill was unexpectedly removed).
- Agent Hub Modal (
-
WebUntis Absence Tracking & Timetable Reconciliation:
- Split absence view accessible via
[U]or by clicking[π Absences]. - Reconciles raw absence intervals with the exact timetable of the respective day.
- Handles split workshop/lab classes (e.g.
1xvs1y) as well as cancelled lessons (Entfall) and substitutions. - Automated Excuse Generator: Generates official PDF excuse letters for school submission (HTL Spengergasse).
- Split absence view accessible via
-
WebUntis Exam & Test Planner:
- Dedicated exam overview via
[E]showing date, subject, period, exam type, and classroom. - Live countdown timer for upcoming exams and major tests.
- Record custom preparation notes and revision topics stored locally.
- 1-Click access to linked subject folders (
π Open Folder [F]).
- Dedicated exam overview via
-
Quick-Jump & Schoolbooks Palette (
Backspace//):- CommandPalette for instant opening of Moodle course pages in your browser.
- Schoolbooks Tab: Press
Tabto switch seamlessly between Courses, Schoolbooks, and Directories. - Link local PDF textbooks (
/link) or online digital books (/url). - 1-Click opening in your OS default PDF viewer or browser.
-
Digi4School Book Grabber (
/download):- Built-in Digi4School book grabber integrated directly into the search palette.
- Quick download via access code:
/download <access_code>. - Downloads high-resolution pages and compiles a fully searchable OCR sandwich PDF with table of contents (bookmarks), clickable hyperlinks, and synchronized page numbering.
- Saved directly to your Windows Downloads folder with a 1-click button to reveal the file.
-
Headless Agent CLI (
tasks):- Token-efficient CLI dispatcher designed for AI coding agents (Antigravity), terminal enthusiasts, and automated scripts.
- Subcommands include
tasks list,tasks show <id>,tasks download <id>,tasks books,tasks sync,tasks skill, andtasks update. --jsonflag for machine-readable integrations.
-
Self-Repair & Update Manager (
update.bat&tasks update):- Standalone launcher script in the application root allowing users to repair or reinstall Tasks over the current installation, even if
Tasks.exeis missing or damaged. - Clean ANSI-cleared PowerShell update runner with 5-second auto-close.
- Standalone launcher script in the application root allowing users to repair or reinstall Tasks over the current installation, even if
-
Zero-Knowledge & Local-First Security:
- All credentials, session tokens, browser cookies, and caches remain strictly on your local machine.
- No plaintext passwords, no telemetry, no cloud dependency.
- Fully open source under the MIT License.
Download the latest standalone setup wizard directly from GitHub:
π Download Tasks_Setup.exe (GitHub Releases)
- On-Demand Python Setup: Automatically detects Python or silently installs official Python 3.12 if missing.
- Zero Configuration: Creates Desktop and Start Menu shortcuts, and registers the global
taskscommand in your User PATH. - No administrator privileges required (Installs into
%LOCALAPPDATA%by default).
-
Clone the repository:
git clone https://github.com/X4nd109/Tasks.git cd Tasks
-
Run setup:
.\setup.bat(Verifies Python, installs requirements from
requirements.txt, and sets up Playwright Chromium). -
Launch the application:
- Interactive Terminal UI (TUI):
.\run.bat # or python main.py
- Register global terminal command (
tasks):.\scripts\setup_command.bat
- Interactive Terminal UI (TUI):
Copy the example configuration file before your first launch:
Copy-Item config.example.json config.jsonCustomize profile details for the excuse generator and WebUntis in config.json:
{
"excuse_profile": {
"student_name": "Max Mustermann",
"student_class": "1AHIT",
"teacher_name": "Prof. Example",
"school_address": "School Street 1",
"school_district": "1010 Vienna"
},
"untis_group": "X",
"untis_school": "my-school",
"untis_url": "https://mese.webuntis.com/WebUntis/?school=my-school",
"theme": "catppuccin-mocha"
}| Key | Action |
|---|---|
I |
π€ Open In-App AI Assistant (AiChatScreen) |
1 - 9 |
View details for task 1 to 9 |
A |
Add a manual custom task |
E |
Open WebUntis Exams & Tests calendar |
Backspace / / |
Open Quick-Jump Palette (Courses, Schoolbooks, Directories) |
F |
Open Filter Menu (Status, Subject, Timeframe) |
R |
Synchronize assignments from Moodle & Teams |
U |
Open WebUntis Absences & Excuse PDF Generator |
G |
Open Trash (Hidden / Deleted assignments) |
L |
Open Login Menu (Moodle, Teams, WebUntis) |
O |
Open Settings (Themes, Untis group, Excuse profile, AI config) |
T / Ctrl+P |
Switch color theme (22 curated themes with instant preview) |
Q |
Quit Tasks |
| Key | Action |
|---|---|
Alt+A |
π€ Open AI Agent Integration Hub (AgentHubModal) |
Ctrl+L |
ποΈ Clear conversation history for active assignment |
Enter |
Send message to AI assistant |
Shift+Enter |
Multi-line input expansion (up to 3 lines) |
Esc |
Return to Main Task Dashboard |
| Key | Action |
|---|---|
O |
Open submission portal in web browser |
D |
Download all attachments & instructions (Auto-Dir [1], Explorer [2], Downloads [3]) |
A |
π€ Ai Explain (switch directly to In-App AI Assistant for this task) |
E |
Toggle task completion status (Done / Open) |
L |
Hide assignment / move to Trash |
W |
Restore deleted assignment |
Esc / Z |
Close details modal |
| Command | Mode | Action |
|---|---|---|
<query> |
Courses | Instant search and 1-click browser navigation |
/link |
Books | Link local PDF textbook via native file dialog |
/url <URL> |
Books | Link online textbook or digital e-book |
/download <Code> |
Books | Download Digi4School book & compile OCR PDF |
/unlink |
Books | Remove linked schoolbook |
/link |
Directories | Link local course directory |
/unlink |
Directories | Remove linked course directory |
Designed for AI coding agents (Antigravity), terminal power users, and shell scripts:
# List assignments
tasks list
tasks list -s open -f SWP
tasks list --json
# View assignment details
tasks show 1
tasks show <task_id> --json
# Generate AI explanation prompt
tasks explain 1
tasks explain <task_id> --lang en --copy-only
# Download attachments & problem statement (optional --auto-dir to auto-match linked folder)
tasks download 1
tasks download 1 --auto-dir
tasks download <task_id> --dir "C:\School\SWP"
# AI Agent Skill management
tasks skill status
tasks skill sync
tasks skill move "C:\Users\xandi\.gemini\config\skills\tasks"
tasks skill remove
# Manage & open schoolbooks
tasks books list
tasks books open 1
tasks books add "C:\School\MathBook.pdf"
tasks books download 26s7dbu5qxvw
# Open Moodle course in browser
tasks open SWP
# Check for updates or force reinstall/repair
tasks update
tasks update --force
# Trigger background sync
tasks syncTasks/
βββ assets/ # Static assets (fonts, icons)
β βββ fonts/ # GentiumPlus font family for PDF generation
βββ cache/ # Local browser profiles & cache files (untracked)
βββ data/ # Local user data (JSON, untracked)
β βββ custom_tasks.json # User-created manual tasks
β βββ custom_exams.json # User-created exams
β βββ deleted_tasks.json # Hidden / soft-deleted tasks
β βββ exam_notes.json # User exam notes & revision topics
β βββ schoolbooks.json # Linked digital textbooks
βββ docs/ # Standardized 2-Tier Project Documentation
β βββ project-overview.md # Vision, Features & Tech Stack
β βββ architecture.md # Architecture, Data Flow & Caching
β βββ conventions.md # Code Conventions, Testing & Localization
β βββ current-state.md # Session Handoff & Active Milestones
β βββ decisions.md # Architecture Decision Records (ADRs)
β βββ features.md # Button & Feature Catalog
β βββ changelog.md # Versioning & Release History
βββ installer/ # Inno Setup 6 Packaging Pipeline
β βββ build_installer.py # Builds Tasks_Setup.exe
β βββ tasks.iss # Inno Setup script template
βββ scripts/ # Windows helper scripts
β βββ build_exe.py # Standalone PyInstaller compilation
β βββ setup_command.bat # Adds global 'tasks' command to User PATH
β βββ remove_command.bat # Removes 'tasks' command from User PATH
β βββ update_launcher.ps1 # Standalone update launcher
βββ src/ # Application source code
β βββ core/ # Core business logic & storage
β β βββ agent_cli.py # Token-efficient headless CLI & skill dispatcher
β β βββ auth.py # Authentication & session storage
β β βββ config.py # Dynamic path resolution, integrity checks & config
β β βββ models.py # Data models (Task, UntisExam, Lesson)
β β βββ task_manager.py # Aggregation, sorting & caching
β βββ services/ # Platform adapters & generators
β β βββ ai_chat_service.py # In-App AI assistant: attachment extraction & Gemini/OpenAI API
β β βββ ai_explain_service.py # AI prompt generator & provider dispatcher
β β βββ digi4school_service.py # Digi4School grabber & OCR engine
β β βββ directory_service.py # Linked subject directories & Explorer integration
β β βββ excuse_service.py # PDF excuse letter generator
β β βββ git_sync_service.py # Git cloud synchronization
β β βββ moodle_service.py # Moodle HTTP scraper & API
β β βββ schoolbook_service.py # Schoolbook registry & launcher
β β βββ teams_service.py # Microsoft Teams Playwright automation
β β βββ untis_service.py # WebUntis JSON-RPC & timetable matcher
β β βββ update_service.py # Update checks, PowerShell runner & auto-close
β βββ ui/ # Terminal User Interface (Textual)
β βββ tui_app.py # Interactive TUI (screens, modals, palettes)
β βββ ui.py # Rich terminal formatting helpers
βββ tests/ # Automated unit & integration test suite (584+ tests)
βββ AGENTS.md # Lean master index (< 3 KB) for Antigravity agents
βββ config.example.json # Example user configuration template
βββ LICENSE # MIT License
βββ main.py # Primary entry point (TUI & CLI dispatcher)
βββ requirements.txt # Python dependencies
βββ run.bat # 1-Click interactive launcher for Windows
βββ setup.bat # Automated installation & repair script
βββ update.bat # Standalone repair & update launcher
βββ tasks.cmd # Windows wrapper for 'tasks' terminal command
Tasks provides an automated packaging workflow using Inno Setup 6 and GitHub Actions:
- Install Inno Setup 6: https://jrsoftware.org/isdl.php
- Execute the build script:
python installer/build_installer.py- Automatically downloads the official Python 3.12 installer on demand.
- Produces the universal
installer/dist/Tasks_Setup.exe.
Every Git tag push (e.g. git tag v2.4.0 && git push origin v2.4.0) triggers the GitHub Actions workflow (.github/workflows/release.yml), compiling the installer on a Windows virtual runner and attaching the output binary to the GitHub Release.
- Personal Study & Private Use Only: The Digi4School integration and textbook downloader are provided exclusively for individual, personal study and offline learning by students who hold lawful licenses and valid access codes (in accordance with the private copy exception under Β§ 42 of the Austrian Copyright Act / UrhG).
- No DRM Circumvention or Piracy: This project does not crack copy protection, bypass paywalls, or distribute copyrighted textbook contents. All downloads require the user's own active, legitimate credentials and access codes entered locally on their machine.
- Prohibition of Redistribution: Users must never upload, share, distribute, or publicly rehost downloaded textbooks (e.g. to cloud drives, chat groups, or file-sharing platforms). Doing so constitutes copyright infringement.
- Independent Project: Tasks is an independent open-source project and is not affiliated with, authorized, maintained, or endorsed by Digi4School, the Austrian Federal Ministry (BMBWF), Moodle Pty Ltd, Microsoft Corporation, or Untis GmbH. All registered trademarks belong to their respective owners.
This project is licensed under the MIT License β see the LICENSE file for details.
Copyright (c) 2026 Alexander Endl.