MILAGPT
Start with “For business”: three steps to launch.
Try 3 days for $5The $5 goes to your Mila’s balance · Telegram will open
RU·EN
Docs · Languages

Russian, Uzbek and English

Mila replies in the language the other person writes in. They write in Uzbek, and the reply and the buttons are in Uzbek. Each chat has its own languages, time zone and quiet hours. Every line below links to the code.

The other person picks the language, not Mila.

The other person’s language

She answers in the language of the one who writes

Russian, Uzbek, English. The other person decides, not Mila. client-chat/SKILL.en.md:19-21

01 · GUEST

Across the whole talk

The language comes from the guest’s messages over the whole conversation, not from one word, an @name or the account language. A photo with no caption gets the language of their last text.

skills/guest-path:12 skills/guest-path:14
02 · BUTTONS

No switch to Russian

The greeting, the buttons and the tracking-tag texts are in the guest’s language. Tags have _uz and _en fields for this.

skills/guest-path:13
03 · CLIENT

In a client chat

By default, formal and in Russian. They write in Uzbek, she answers in Uzbek; in English, in English. A draft reply built from past examples is in the other person’s language too.

skills/client-chat:25-26skills/reply-from-examples:10
Getting to know the owner

The first talk is in the owner’s language

A new Mila gets to know her owner step by step. If the owner writes in Uzbek or English, the whole first message, greeting and progress line included, is in that language. There are ready greetings for Uzbek and English. skills/onboarding:52-54

If the greeting has already gone out in Russian and the person writes in another language, the next message is in their language at once, without repeating the greeting. skills/onboarding:52-54

How it goes
Chat languages

One chat, three languages

With a real client, languages split: the chat is in Russian, the posts go out in Uzbek. So each chat has three settings, not one. chat_locale.py:13-23

01 · SPEAK

The chat language

The language Mila writes in the chat. Not set: the language of the other person.

chat_locale.py:252
02 · PUBLISH

The work language

The language the work comes out in: a post, a site, a poster. The main one goes first: “uz,ru” and “ru,uz” give different posts.

chat_locale.py:91-96
03 · EXPECT

What may arrive

Languages that may come in without switching the talk. One polite phrase in English is no reason to move the whole chat to English.

chat_locale.py:9-11
04 · WARNING

Do not mix them up

The chat in one language and the work in another: the tool prints a warning, so the work is not delivered in the chat language.

chat_locale.py:231-237
Time zone and quiet hours

“Good morning” arrives in the client’s morning

Quiet hours from 22 to 08 mean nothing until you know whose 22 it is. So each chat has its own time zone and its own quiet hours; the default is 22–08. A chat with no time zone is counted in the owner’s zone. chat_locale.py:5-7 chat_locale.py:256-258

On every turn Mila sees the chats where it is night right now, with local time: do not write there unless it burns. mila when --now shows the time for each client and whether you can write. telegram-inbox-feed.py:124-129 telegram-inbox-feed.py:248-251 install/mila:256-261 chat_locale.py:271-286

$ mila when --now
$ mila when <id> --tz Asia/Dubai
$ mila when <id> --speak ru
$ mila when <id> --publish uz,ru
$ mila when <id> --quiet 22-08
Uzbek

Uzbek is not a translation from Russian

The kit has separate tools for Uzbek.

01 · VOICE

A second pass

A voice note is transcribed with language detection. If it sounds Uzbek or close to it, there is a second pass with Uzbek set explicitly.

transcribe-voice.sh:3 transcribe-voice.sh:27-32
02 · SCRIPT

Latin to Cyrillic

By the official letter mapping: sh, ch, oʻ and gʻ each become one Cyrillic letter. Site addresses, @names and words with digits stay as they are. In flashcards the Cyrillic version is built from the Latin one.

translit_uz.py:2-7skills/flashcards:73-77
03 · STYLE

Living Uzbek

The humanizer-uz skill rewrites bureaucratese in plain language. Its tuning fork is Abdulla Qodiriy, Abdulla Qahhor and Abdulla Oripov. The last step is a read-aloud check.

skills/humanizer-uz:13-21skills/humanizer-uz:67-68
04 · FACTS

Content stays

Sums, dates, names and document numbers do not change. The form is Mila’s; the content is the customer’s.

skills/humanizer-uz:201-202
Honestly

What this page does not claim

In the repository

Read every line yourself

Files behind languages in the mila-companion repository
FileWhat it does
skills/guest-paththe guest’s language, buttons in their language (in Russian)
skills/client-chatthe language the client picks (English translation)
skills/onboardinggetting to know the owner, language buttons (in Russian)
GREETING.uz.mdgreeting in Uzbek
GREETING.en.mdgreeting in English
install/chat_locale.pythree languages, time zone and quiet hours per chat
install/telegram-inbox-feed.pynight chats on every turn
install/transcribe-voice.shvoice notes, a second pass for Uzbek
translit_uz.pyUzbek Latin to Cyrillic
skills/humanizer-uzliving Uzbek instead of bureaucratese (in Russian)
Open source · Apache-2.0

Fork it, teach it, send a PR

The kit is open: skills, hooks, tools and templates. Translate a skill to your language; every pull request is read by a person and by Mila Quality.

Facts on this page: github.com/shakhruz/mila-companion (main, 76efa3a, v1.5.0), checked 20 Oct 2026. The chat in the phone is an illustration. “Mila”, “MILAGPT” and the logo are trademarks of MILAGPT.