I built Mofakir: A native, local AI desktop assistant for Linux that actually interacts with your system (Hyprland / Wayland)
Hey everyone,
I wanted to share an open-source project I’ve been working on called Mofakir. I was tired of AI assistants being trapped inside web browsers, so I built a lightweight, native PyQt6 GUI agent designed specifically for Linux environments.
I’ve attached a demo video showing it in action on my setup!
What it actually does
It acts as a bridge between a local LLM and your OS:
- Context Aware: It can see your active screen, read copied text, or analyze image paths directly from your clipboard.
- Agentic Terminal Control: It can run local bash commands. For safety, harmless commands (
ls,uptime) run instantly in the background, while destructive commands (mkdir, package installs) trigger an interactive Approve/Deny GUI prompt. - Obsidian Integration: It uses the Local REST API to read, search, and write notes directly to your local vaults.
- Window Management: It can move active windows and manage workspaces on Hyprland.
- Offline Voice: Features automatic multilingual STT (via Whisper-cli) and fully offline TTS (via Piper).
My Hardware & Experience
I built and daily-drive this on Arch Linux and NixOS using Hyprland. My machine has 32GB of RAM, an AMD Ryzen 7 8845HS CPU, and I currently have it pointed to a local llama.cpp server running Gemma-4-e2b. I've also tested it out with GPT OSS (OpenRouter API).
Running it completely locally is incredibly satisfying. Gemma-4-e2b is surprisingly capable at navigating the system and figuring out which tools to call.
The Potential
While it works great on my current hardware with a smaller model, the agentic architecture scales directly with the model's intelligence. Hooking this up to heavier 32B+ parameters (or fast cloud endpoints) turns it into an absolute powerhouse for complex bash pipelines and deep code analysis.
If you want to try it out, hack on it, or break it, the repo on: https://github.com/bonnjalal/Mofakir
There is a Nix Flake available, as well as an interactive install script for standard distros.
Would love to hear your feedback or ideas for new tools to add to it!