ZyVOP Logo
Content That Connects
SeriesAI NewsLeaderboardWrite for Us
ZyVOP Logo
Content That Connects

Empowering developers and creators with cutting-edge insights, comprehensive tutorials, and innovative solutions for the digital future.

Content

  • Categories
  • Tags
  • Badges
  • Leaderboard
  • Write Article
  • Newsletter

Company

  • About Us
  • API Documentation
  • Write for Us
  • Contact

Connect

  • Privacy Policy
  • Terms of Service
  • Cookie Policy
  • DMCA Policy
  • Code of Conduct

© 2026 ZyVOP. Crafted with care for the developer community.

Made with ❤️ by the ZyVOP team
All systems operational
HomeI Built a Local AI Linux Assistant That Doesn't Rely on the Cloud

I Built a Local AI Linux Assistant That Doesn't Rely on the Cloud

I built zkzkAgent to escape cloud AI tools and repetitive terminal commands—a fully local Linux AI assistant powered by LangGraph + Ollama that safely executes tasks while keeping everything private.

zkaria gamal
zkaria gamalMid.Ai Engineer
August 13, 2026
4 min read
I Built a Local AI Linux Assistant That Doesn't Rely on the Cloud
#machinelearning#AI#LLM#agent#opensource
👍1

Why LangGraph

I tried simple ReAct-style agents, but it became messy. Every turn, the LLM had to figure out everything in one go, and I had no clean way to maintain consistent state across steps.

That’s why I chose LangGraph. It gave me a proper graph-based structure with shared state between nodes, which was exactly what I needed.

How I Built the Core Architecture

My first version was just one agent trying to handle everything. It worked at first, but after adding more tools it started making strange decisions. Sometimes it would overcomplicate simple requests, and other times it would skip steps it actually needed.

I fixed that by splitting the system into smaller nodes. The first step simply decides what kind of request came in: a normal conversation, a direct action, or something that needs multiple steps. From there the graph routes the request to the right place.

I also moved all shared information into one state object so every node can access the same context instead of passing values around manually.

That change made a bigger difference than switching models. The behavior became easier to understand and debugging stopped feeling like guessing.

What can my agent do?

  • Files and folder operation my agent can read and write files and create and delete folders and find any

  • System and process management: my agent can find running processes, stop them, run deployment scripts, and keep track of background running tasks.

  • Dangerous operations: for actions like deleting files, removing packages, or cleaning trash, I added a confirmation step first so it does not do risky actions directly this to make the human in-loop with my agent .

  • Network and utility tasks: my agent can check internet connection, recover some network issues automatically, and search the web if needed.

  • Applications: my agent can open applications directly such as VS Code and browser windows.

  • Voice mode: I also added voice support using Whisper for speech input and TTS for responses.

So why this:

Instead of remembering commands, I wanted things like:

"Find my latest deployment log and summarize it" or "Clean my trash but ask me first" to work naturally.

and for planning node:

I added a simple planning step. If a task needs multiple actions, my agent first creates a small plan and then executes each step one by one instead of immediately running everything.

Seeing it in action

I recorded some real demos while using zkzkAgent:

1- Intelligent image search

Video: https://github.com/zkzkGamal/zkzkAgent/search_images_demo_vedio.mp4

In this demo the agent searches for images from the web and handles the results automatically.

2- Creating a new project

Video: https://github.com/zkzkGamal/zkzkAgent/zkzk_agent_create_project.mp4

In this demo I gave a simple request and the agent created the project structure, installed dependencies, and completed the setup process.

Some other requests I use regularly:

"Find my last deployment log and summarize the errors"

"Deploy the frontend and run it in background"

"Clean up my trash"

For dangerous actions like cleaning files or deleting data, the agent asks for confirmation first before executing.

live image test from empty trash cycle

demo

Safety first

One thing I cared about while building zkzkAgent was making sure it does not blindly execute dangerous actions.

Earlier, I used this request:

"Clean up my trash"

Here is what actually happened when I ran it.

I typed:

User: "clean up my trash"

The router understood that this was a direct action request and selected the correct tool. But before running it, the agent detected that empty-trash is a dangerous operation.

Instead of executing immediately, it paused and asked:

System: "I'm about to perform 'empty_trash'. This will delete data permanently. Please confirm with 'yes' or 'no'."

Only after I replied:

User: "yes"

did the agent continue and execute the action.

I added the same confirmation flow for other risky operations like deleting files, removing packages, and similar system actions.

I wanted automation, but I also wanted a human to stay in control. The agent can make decisions and prepare actions, but for sensitive operations the final decision still belongs to the user.

How to install zkzkAgent

I recently added an installation script because I wanted setup to be easier and avoid making users manually install and configure everything.

Clone the project:

git clone https://github.com/zkzkGamal/zkzkAgent.git
cd zkzkAgent

Make the installer executable and run it:

chmod +x install.sh
./install.sh

The installer handles the setup process automatically.

After installation is finished, you can start using zkzkAgent with the CLI:

./cli.sh

or use the normal text mode:

python3 main.py

That's it, setup should be done and ready to use.

Agent CLI

I recently added a dedicated CLI because I wanted something closer to tools like Claude CLI and Codex CLI instead of a simple terminal input loop.

The CLI includes live streamed responses, conversation history, session tracking, and commands like /help, /history and “/reset”.

I mainly added it because while building the project I was constantly testing requests and reopening terminals. Having a dedicated CLI made it feel more like using a real assistant instead of repeatedly running scripts.

Final thoughts

zkzkAgent started as a small project for myself. I just wanted an easier way to handle daily Linux tasks without relying on cloud services.

I still adding small features and improving things as I used it more.

There is a lot I want to add, but I wanted to share it and see what other people think.

GitHub Repository:

https://github.com/zkzkGamal/zkzkAgent

If you try it, I would love to hear your feedback. And if you like it, a star always makes me happy

zkaria gamal

zkaria gamal

Mid.Ai Engineer

AI Engineer. I ship LLM systems, autonomous agents, and inference pipelines then write about what I learned

Comments (0)

Login to post a comment.

Related Posts

Building MindWell: Accessible Mental Health Tech for Developers

MindWell is an accessible mental health platform designed to bridge developer wellness with tech innovation. Learn how human-centered UI design, accessible features, and AI-driven tools were combined to create an empowering wellness space for software engineers and creators.

Read article

Control your AI coding agents from any browser

Browser control plane for AI coding agents. Start at ThumbGate.app.

Read article

Why I score contractor websites for after-hours leak risk before I sell anything

I score HVAC and plumbing public sites for after-hours leak risk before any paid offer. Free radar first; fixed 149 USD audit only if they want the write-up.

Read article

OpenRouter: One API Key to Rule Them All 🔑

Overview Hey everyone 👋 Managing AI models in 2026 has gotten ridiculous. Anthropic key here, OpenAI key there, a separate billing account for Google, another ...

Read article

Why I built my own local-first job-search tool (and how it works)

A free, open-source, local-first job-search command center: it aggregates 78 sources, AI-scores every posting against your CV, tracks applications and generates ATS resumes — all on 127.0.0.1, with no cloud, telemetry or auto-submit.

Read article