An early prototype of a cross‑platform (Windows and Linux) desktop application for managing your development workflow. Built using Kotlin Multiplatform and JetBrains Compose Multiplatform, the app provides a dark, minimalistic interface and works both online and offline thanks to a local SQLite database.
- User accounts: Users can register and sign in. Passwords are never stored in plain text; instead a SHA‑256 hash is persisted.
- Offline storage: All user data lives in a local SQLite file (
life_assistant.db). The application automatically creates the database and table on first launch. No network connection is required to use the core features. - Package management: Detects common package managers on both Linux (APT, DNF, Pacman, Zypper, Snap) and Windows (Winget, Chocolatey, Scoop). You can install or remove packages directly from the UI. In this prototype the commands run in “dry‑run” mode (they print what would be executed rather than modifying the system). You can extend [
PackageManager][src] to support other package managers or to perform real installations. - Development automation: Basic helpers for opening a project in IntelliJ IDEA and running a sequence of Git commands (
git add,git commitandgit push). The output of each operation is shown in the interface. TheAutomationServicecan be extended to support more complex interactions with IDEs and version control systems. - Command executor: A simple shell command runner for miscellaneous tasks. The command runs in a separate process, and the combined stdout/stderr is displayed.
- Dark, minimal UI: The Compose UI uses a custom dark colour palette that is easy on the eyes. The layout is kept clean and uncluttered.
This repository does not include a Gradle wrapper. To build and run the application you will need to install Gradle (version 7.6 or later) and JDK 11 on your system. Once installed, run the following commands from the root of the life_assistant_app directory:
gradle build # compile the project and download dependencies
gradle run # launch the desktop applicationOn Linux you may need to adjust file permissions for the SQLite database file (life_assistant.db) so the application can create and write to it. On Windows the database is created in the working directory when the app starts.
Warning: The command executor and Git automation features invoke system processes. Be careful when entering arbitrary commands or running Git commands on repositories without a configured remote – errors will be returned to the UI. In a production assistant you would likely sandbox or restrict command execution.
This prototype is intentionally simple. Potential areas for expansion include:
- Adding a network layer with Ktor to synchronise tasks and settings to a server when online.
- Supporting more IDEs (e.g. VS Code) and deeper automation via their plugin APIs.
- Building installers for Windows and Linux using the Compose Multiplatform native packaging tooling.
- Adding mobile or web targets via Kotlin Multiplatform’s additional targets.
If you clone or fork this project, please keep in mind that running and pushing Git commands may require you to configure authentication for your own GitHub account.