Before starting, one thing is important:
This project was not built to compete with any product. I built it purely to experience what real engineering feels like — experimenting, breaking things, fixing them, and finally making something that actually works.
I came across a video by Piyush Garg where he explained how OpenClaw works internally and what it actually does.
While watching it, something clicked in my mind.
About two years ago, I had already tried building something similar — a Jarvis-like assistant for myself. But at that time, I never took it seriously or built it properly.
Here is that old project:
https://github.com/tanishtirpathi/Jarvis
After watching the video, a few thoughts started running through my head:
So I decided to build my own version.
That night I started researching how OpenClaw actually works internally.
At a high level, the architecture looks something like this:
When I understood the basic workflow, it honestly didn't look impossible.
So I decided:
I'll start building it the next day.
The next day I came back from my exam, opened my laptop, and started working.
The process was simple:
The first step was creating a Telegram bot for remote communication.
I used:
"BotFather"
to generate the bot and get the API token.
After that I:
Once the connection worked, I started adding basic commands.
The first version included simple commands like:
/startThis helped verify that the bot communication and command system were working properly.
Next, I integrated the Gemini API so the bot could respond intelligently.
This allowed the assistant to:
Now it started feeling like an actual AI assistant instead of a simple bot.
At this point something still felt incomplete.
The real power of an agent like this is controlling your machine remotely.
So I started researching how to integrate system-level commands.
The workflow became:
After implementing this system, my bot could control my machine.
Currently, the assistant can perform these actions:
Everything runs through Telegram commands.
This is still an early version, and I want to improve the architecture.
My next steps are:
Currently everything runs locally.
I want to host certain services online such as:
I plan to divide the system into:
Local Agent
Cloud Agent
This architecture will make the system more scalable and reliable.
This project wasn’t about building something perfect.
It was about understanding systems, experimenting, and realizing that most complex tools are just combinations of simpler components.
Sometimes the best way to learn engineering is simple:
See something interesting → Try to rebuild it yourself.