I built zkzkAgent as a fully offline, privacy-first AI assistant for Linux (LangGraph + Ollama, no cloud). It already does natural language file/process/service management, Wi-Fi healing, voice I/O, and human-in-the-loop safety for risky actions.
Just added package management with these goals:
- 100% local/offline capable (no web search required for known packages)
- Human confirmation for every install/remove/upgrade
- Smart fallback order to avoid conflicts:
1. Special cases (Postman → snap, VSCode → snap --classic, Discord → snap/flatpak, etc.)
2. Flatpak preferred for GUI apps
3. Snap when flatpak unavailable
4. apt only for CLI/system tools
- Checks if already installed before proposing anything
- Dry-run style preview + full command output shown
- No blind execution — always asks "yes/no" for modifications
Example flow for "install postman":
→ Detects OS & internet (once)
→ Recognizes snap path → proposes "sudo snap install postman"
→ Shows preview & asks confirmation
→ Runs only after "yes"
→ Verifies with "postman --version"
Repo: https://github.com/zkzkGamal/zkzkAgent
Would love feedback, especially:
- What other packages/tools should have special handling?
- Should it prefer flatpak even more aggressively?
- Any scary edge cases I missed?
Thanks!