HidirAi

An open AI assistant

HidirAi

An open AI assistant. The core is mine. The tools are shared.

License
Apache-2.0
Developer
Jasur

What this actually is

Not a bot. A platform for tools.

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.

  • The whole core is 714 lines of Go — readable in one sitting.
  • Adding a tool means adding a file, not rewriting the assistant.
  • Runs on free and self-hostable services wherever it can.
ai/tools/
func MyOwnTool(ctx Context) Result {
    // your logic, your rules
    return Execute(ctx)
}

register("my_tool", MyOwnTool)

How the core works

Specialisation instead of universality

HidirAi core routing tasks to specialised providers and tools Telegram interface Tavily web search OpenAI-compatible reasoning · text Groq vision · speech HidirAi orchestrator
One general-purpose model answering everything is always a compromise. HidirAi routes each task to a specialised model instead: reasoning to one, vision and speech to another, search to a third. It is the same principle behind modern agent systems — several narrow specialists joined in a single core beat one generalist. The main model is set through the environment, so swapping providers needs no code changes.

The project in numbers

Not a concept — working code

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

  • 993 lines of Go across 15 files in total — including every tool.
  • Only 5 direct dependencies, and an agent loop that survives 10 rounds of tool calls.
  • The community adds new tools over time — the count above grows with them.

What it can do right now

Four tools, each one a separate file

Every tool is a schema plus a handler. The core decides which one to call — the assistant itself never hardcodes a route.

01

create_qrcode

QR codes generated right on the server — no external service, no request leaving the machine.

skip2/go-qrcode · 256px · Low EC

02

get_weather

A three-day forecast delivered as an image, cropped and handed straight into the chat.

wttr.in · PNG

03

web_search

Live internet search wired directly into the dialogue, for anything that changes over time.

Tavily API

04

image_gen

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

However you prefer to talk

An ordinary message. The same entry point as everything else — the core reads the text and decides which tool, if any, is needed.

Built to be extended

Write your own tool, keep your own assistant

Apache-2.0. Fork it, add a function, use it however you like — without asking anyone's permission.

Apache-2.0 github.com/Jasurios/HidirAi
  1. 01Fork the repository
  2. 02Write a tool in ai/tools/
  3. 03Register it in the orchestrator
  4. 04Use your own assistant
MCP

HidirAi speaks MCP

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

One rewrite that changed everything

  1. v1

    705 lines of Go

    • Skills lived in skils/, each wired to a model hardcoded in the code.
    • Exactly one tool call per request — no loop.
    • No sticker handler, and no way to delete your own data.
  2. v2

    993 lines of Go

    • skils/ became ai/tools/ — one file per tool.
    • A real agent loop: up to 10 rounds of tool calls per request.
    • Vision and speech-to-text became tools instead of special cases.
    • Models moved out of the code and into environment variables.
    • Sticker handling added; /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

Said plainly

Where your messages live

  • History is a plain JSON file, ./users/<id>/<id>.json. No database, no encryption.
  • It is trimmed past 16 messages, keeping the system prompt intact.
  • /start clears your history. /delmydata deletes it on demand.

/delmydata

What it will not do

  • It reports only the numbers and facts that are actually present in the sources it finds.
  • When a figure is not there, it says so instead of inventing something plausible.
  • It is an AI and it can be wrong — important information is worth checking twice.

HidirAi is an AI and it can make mistakes. Check important information twice.

See for yourself

Two ways in. One assistant.

HidirAi @Hidiraibot DEMO · RECORDED

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.