01
create_qrcode
QR codes generated right on the server — no external service, no request leaving the machine.
skip2/go-qrcode · 256px · Low EC
An open AI assistant
An open AI assistant. The core is mine. The tools are shared.
What this actually is
HidirAi is an open AI assistant built around an architecture of tools. Anyone can read the code, write a tool of their own and use it exactly the way they need.
func MyOwnTool(ctx Context) Result {
// your logic, your rules
return Execute(ctx)
}
register("my_tool", MyOwnTool)
How the core works
The project in numbers
0
active tools in the orchestrator
0
providers joined in one core
0
modalities: text, voice, photo, sticker in — image out
0
lines of Go in the core, tools folder aside
What it can do right now
Every tool is a schema plus a handler. The core decides which one to call — the assistant itself never hardcodes a route.
01
QR codes generated right on the server — no external service, no request leaving the machine.
skip2/go-qrcode · 256px · Low EC
02
A three-day forecast delivered as an image, cropped and handed straight into the chat.
wttr.in · PNG
03
Live internet search wired directly into the dialogue, for anything that changes over time.
Tavily API
04
Image generation from a description. The prompt is always translated to English before it goes out.
Pollinations.ai · no key
Five ways in and out
An ordinary message. The same entry point as everything else — the core reads the text and decides which tool, if any, is needed.
A voice message is transcribed by Whisper and passed on as text — so everything that works for text works for speech too.
A photo goes through a vision model first: the scene, the objects and any text in the frame are described in detail, and that description becomes the prompt.
Stickers get their own prompt. Instead of describing composition and colour, the model works out the joke — which is usually the only thing that matters about a sticker.
Answers are not always text. A request for a picture, a QR code or a forecast comes back as an image in the same message.
Built to be extended
Apache-2.0. Fork it, add a function, use it however you like — without asking anyone's permission.
ai/tools/Model Context Protocol is not a small thing to implement: a transport, a handshake, a tool schema negotiated at runtime. HidirAi has its own MCP server, so any MCP client can connect to it and reach the assistant's tools through an open protocol instead of bespoke code. It is hard to build precisely because it is general — one protocol in place of one integration per client.
How it got here
v1
705 lines of Go
skils/, each wired to a model hardcoded in the code.v2
993 lines of Go
skils/ became ai/tools/ — one file per tool./delmydata added.The whole jump happened in that one rewrite. v1 to v2 is a 41% increase in code that bought a genuine agent loop — the version numbers after it are iterations on the same architecture.
Data, and what it does not do
./users/<id>/<id>.json. No database, no encryption./start clears your history. /delmydata deletes it on demand./delmydata
HidirAi is an AI and it can make mistakes. Check important information twice.
See for yourself
This is a recorded session, replayed in your browser. The real HidirAi answers in Telegram — and the timing you are watching is the bot's own: one dot per second, in the same message that then turns into the answer.