A Linux package manager for GitHub releases, built with Flutter.
Autonomix helps you track, install, update, and manage applications distributed via GitHub releases. It provides a clean, modern GUI for managing your GitHub-sourced applications with support for multiple package formats.
- Track Applications - Add any GitHub repository to track its releases
- Automatic Update Checking - Check for new versions across all tracked apps
- Multi-Format Support - Install
.deb,.rpm, AppImage, Flatpak, and Snap packages - Version Management - View installed versions and available updates at a glance
- Launch Applications - Start installed apps directly from Autonomix
- Self-Management - Autonomix tracks itself and can update to new versions
- DEB - Debian/Ubuntu packages (via
dpkg) - RPM - Fedora/RHEL/CentOS packages (via
rpm) - AppImage - Portable Linux applications
- Flatpak - Universal Linux packages
- Snap - Canonical's universal packages
- Material Design 3 interface
- Clean, intuitive navigation
- Real-time status updates
- Visual indicators for available updates
- Responsive design
- Lightweight JSON-based storage
- Tracks installation metadata
- Stores package information and launch commands
- Preserves update history
wget https://github.com/plebone/autonomix/releases/latest/download/autonomix_0.3.5-1_amd64.deb
sudo dpkg -i autonomix_0.3.5-1_amd64.debwget https://github.com/plebone/autonomix/releases/latest/download/autonomix-0.3.5-1.x86_64.rpm
sudo rpm -i autonomix-0.3.5-1.x86_64.rpmgit clone https://github.com/plebone/autonomix.git
cd autonomix
flutter pub get
flutter build linux --release- Click the + button
- Enter the GitHub repository details (owner/repo)
- Provide a display name for the app
- Click Add
- Click the Refresh icon in the app bar to check all tracked apps for updates
- Apps with available updates will show an "Update Available" badge
- Tap on an app in the list
- Choose the package format if multiple are available
- Click Install or Update
- Authenticate when prompted (packages requiring root access use
pkexec)
- Tap on an installed app
- Click Launch
- Tap on an installed app
- Click Uninstall
- Confirm the action
- Framework: Flutter 3.0+
- Language: Dart
- State Management: Provider
- Storage: JSON file-based database
- HTTP Client: http package for GitHub API
- System Integration: process_run for package management
lib/
βββ main.dart # Application entry point
βββ models/ # Data models
β βββ tracked_app.dart # App tracking model
β βββ release.dart # GitHub release model
β βββ install_type.dart # Package format enum
βββ services/ # Business logic
β βββ database_service.dart # JSON storage
β βββ github_service.dart # GitHub API client
β βββ installer_service.dart # Package installation
βββ ui/ # User interface
βββ home_screen.dart # Main screen
βββ widgets/ # Reusable UI components
βββ app_list_item.dart
βββ add_app_dialog.dart
- Flutter SDK (>=3.0.0)
- Linux development environment
- Basic Linux package management tools (dpkg, rpm, etc.)
# Get dependencies
flutter pub get
# Run in debug mode
flutter run -d linux
# Build release
flutter build linux --release
# Run tests
flutter testflutter build linux --release
# Package structure is created in packaging/deb/
dpkg-deb --build packaging/deb/autonomix_0.3.5-1_amd64flutter build linux --release
# Package spec is in packaging/rpm/SPECS/autonomix.spec
rpmbuild --define "_topdir $PWD/packaging/rpm" -bb packaging/rpm/SPECS/autonomix.specConfiguration and data are stored in:
- Linux:
~/.local/share/autonomix/apps.json- Tracked applications databasedownloads/- Temporary download storageappimages/- Installed AppImage files
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Flatpak and Snap installation support
- Automatic update scheduling
- Application categories and tags
- Search and filter functionality
- Import/export tracked apps list
- Custom installation directories
- Release notes display
- Multiple GitHub accounts support
This project is licensed under the MIT License - see the LICENSE file for details.
Built with Flutter - Google's UI toolkit for beautiful, natively compiled applications.
If you encounter any issues or have questions:
- Open an issue on GitHub Issues
- Check existing issues for solutions