Eirlab.

We find out what AI actually does in real work, through projects, products and experiments.

What we've worked with

11 areas · 54 cases

From our own hardware and local models to sites, agents and automation.

Products and live demos

app.charmonye.compto.eirlab.rutorgi.eirlab.rupaker.eirlab.rugraf.abm-ai.rubash.abm-ai.ru

app.charmonye.com ↗ product

A workspace for landscape and interior studios. A public product with accounts, payments and export. Selected for BuildUp Skolkovo.

pto.eirlab.ru ↗ live stand

An open stand for the as-built documentation agent. You can look at a finished pass over a real document set, no sign-in needed.

torgi.eirlab.ru ↗ live stand

An open stand for the tender analyst: it shows how the agent works through a real lot and what it looks for in the paperwork.

paker.eirlab.ru ↗ live stand

An open stand for a knowledge base over internal catalogues. You can see what document search looks like for the person using it.

graf.abm-ai.ru ↗ live stand

An image generator running on our own hardware, with a Bashkir interface. Open to anyone.

bash.abm-ai.ru ↗ live stand

Galiya, an AI tutor for Bashkir. Runs on a local language model, with no cloud service in the loop.

Local models and our own hardware

QwenGPT-OSSGemmaLlamaDeepSeekGLMPhivLLMllama.cppSGLangOllamaQdrantZvecComfyUIFLUX.2Ideogram 4ParakeetGigaAMRTX 3050 → 5090

Where to run the model

There are three options, and the choice usually comes down to where the data goes rather than how good the model is. A foreign cloud is cheap and available today, but it isn't for everyone. Your own hardware keeps everything in the building, but you have to buy it, rack it and look after it. The third option gets forgotten: Russian providers run the same open models on their own hardware and sell access, so the data stays in the country and you buy no equipment. We have working contacts with providers like that, so we can put together whichever of the three fits the job.

GPU servers

We build and set up the machines ourselves, with cards from the RTX 3050 up to the RTX 5090, modded 32 GB RTX 4090s among them. Hardware, OS, networking, remote access, firewall: all of it goes through our hands.

Text models

Those machines run Qwen 3.x, GPT-OSS 120B, Gemma 4, Llama 4, DeepSeek V4, GLM-5 and Phi-5. We watch what fits, how each one holds up in real work, and where quantisation starts costing you the answer.

Models that see

Qwen3-VL and DeepSeek-OCR 2 read drawings, scans, book pages and photos of documents for us.

Voice

Speech to text runs locally on Parakeet and GigaAM, and in the cloud on Groq and Deepgram. For dictation on the desktop we keep separate tools around, Handy among them. We wire voice input into our own setup too: dictate the task and the agent picks it up and gets going.

Image generation on our own boxes ↗

We set up ComfyUI, FLUX.2 and Ideogram 4 on our own hardware, so prompts and source material never leave the building.

Documents and data extraction

PDFscansDOCXXLSXDWG / DXFOCRvision modelsclassificationentitiesanalyticsdashboards

Construction documents ↗ live stand

PDF, DOCX, XLSX, DWG, DXF and images each go to their own handler. OCR reads scans, a vision model reads drawings, DWG gets converted to DXF where needed. One document set comes out as structured data, a list of what is missing, and finished certificates.

Accounting documents

We take bank statements apart: pull the transactions, match counterparties, sort everything into categories and build the analytics with a dashboard on top.

Books and large archives

Text PDFs, scans, DOCX and XLSX turn into clean markdown: headings, page numbers, and markers where the illustrations were. If a page fails, the pipeline resumes from that page instead of starting over.

Document images

We render PDFs to PNG, clean up photographs and strip watermarks off slides. Inpainting, gradient work and plain crop & zoom all come into play.

AI agents

as-built docstender analystsales assistantmessengersvoice messagesrolesescalationkanbanTelegramon-prem

As-built documentation engineer ↗ live stand

Reads through the project set, finds the gaps, asks the questions it needs answered, and puts together concealed-work inspection certificates.

Tender analyst ↗ live stand

Finds procurements under 44-FZ and 223-FZ, reads the documentation, checks requirements and risks, and writes up a verdict on each lot.

Sales assistant ↗ at a client

Handles incoming enquiries and answers on range, services and company policy. It pulls prices, products and live stock directly from internal company sources, so the answers never drift from what's in stock. The enquiries themselves become analytics: what people ask about most, and what they could not find. Shared code sits outside the client folder and is read-only from there, otherwise the agents pull it apart to fit one customer on day one.

Messenger manager

Answers on behalf of the company in Telegram, VK and WhatsApp. Voice messages get transcribed and answered the same way as text. Hard questions go to a human, and the conversation history survives the handover.

Agents on the client's own server

We work through the setups where the agent lives on company hardware and working data never goes to the cloud.

Agentic development and frameworks

MCPClaude CodeCodexDroidOpenCodecliproxyherdrOrcaHermesOpenClawZeroClawPinchTabAntigravityGrok

MCP

Our own setup is built on MCP: through it the agents reach the task tracker, the messengers and the scheduled jobs. One MCP server, raised by a wrapper of our own, registered in every environment we work in, from Claude Code to Antigravity. Dictate a task by voice in Telegram and it is in every agent's morning digest — whichever one picks it up.

What we use every day

Claude Code and Codex constantly, each with its own roles. Droid, OpenCode and cliproxy regularly. Several projects run at once, so the sessions live in herdr and Orca. Sometimes we put models head to head on the same task: it's the fastest way to tell whether the model is making things up or the instruction was written badly. We measured the cost side too: the rtk request router saved us nothing on our workloads, so it went.

Our own development loop

A product task turns into architecture, BDD scenarios, code and a check.

Hermes

Runs on our VPS, tuned to fit: task tracker over MCP, Telegram channels and scheduled runs.

OpenClaw and ZeroClaw

We run them separately. OpenClaw has its own containers, Telegram bots and the PinchTab browser. ZeroClaw we keep as a standalone environment to compare against.

agent-pipeline-kit ↗ open-source

Our own orchestrator, built in spring 2026 to understand how models behave inside a pipeline: task handout, a ladder of checks, a separate reviewer that hands down the verdict. The backend switched with a single command: the same task on Codex, GLM, Sonnet, Haiku, MiniMax and Kimi, and you see straight away which one holds up. The experiment did its job: we dropped the homemade wheel and moved to off-the-shelf tools.

ai-agent-roles ↗ open-source

Open roles for working with agents: librarian, architect, developer.

landkit ↗ open-source

A folder template where the agent runs a project from files, instructions and rules instead of scattered chats.

Images, video and visualisation

photos and plans44 stylesComfyUIFLUX.2Ideogram 4SeedanceKlingRunwayinfographics

Plots and interiors ↗ product

We take a photo from ground level, a 2D plan or a finished project and change the surroundings without moving the house, the windows or the utilities. The styles come out of real work.

Video

We work with Seedance, Kling, Runway and other models: clips, promos, bringing stills to life, material for social. Editing and sound come after.

When the source material cannot leave ↗ live stand

Some jobs must not leave the perimeter at all. Then generation runs on our own server and the source material stays inside.

Carousels and infographics

First we check the material and pull out the points, then we lay it out. HTML templates and Python turn that into carousels, reports, dashboards and PDFs.

Sites and web products

AstroNext.jsReact + ViteFastAPI + VueQloAppsPlaywrightRU / EN / ARRTLVercelnginxalesyadesign.ruostalyk.rucharmonye.comabm-ai.ru

Astro

One stack, different jobs: a studio showcase with an AI assistant built in (alesyadesign.ru ↗), the OSTA design bureau site with a single-screen home and cases running from AI visuals to print- and production-ready artwork (ostalyk.ru ↗), and a bilingual site with an Arabic version and RTL layout (charmonye.com ↗). Interactive parts ship as React islands, and we check the markup with Playwright.

Next.js ↗

Company and product sites on App Router, Tailwind and Framer Motion. That's how the site for one of our business lines is built, with two language versions.

React + Vite

Landing pages for festivals and cultural projects, plus an estimate calculator that reads photos and PDFs.

Web apps ↗ product

When a site is not enough: a visualisation service on FastAPI + Vue with accounts, credits, a generation queue and PDF export. If the main provider drops out, the request goes to a backup. Booking runs as a separate system on QloApps.

Hosting and running it

A site does not end at the build. We keep both: Vercel where the platform is enough, and our own VPS under nginx where we need the control. Docker, certificates, CDN, clean URLs, sitemaps, OG previews for links in messengers, and backups.

Automation

TelegramTelethonyt-dlpffmpegYooKassascraperscronsupervisor

Video → audio

Send the bot a link and it pulls the audio track, splits the file when it is too big, and hands it back in Telegram.

Mention monitor

The bot watches selected channels, catches keywords and forwards what it finds into the right group.

Visualisation in Telegram

Photo of a plot → pick a style → finished image. The web product grew out of this bot.

Background jobs

Scrapers, change notifications, scheduled tasks, and taking payments inside Telegram.

Servers and operations

Dockernginxsupervisorpm2PrometheusVictoriaMetricsGrafanafail2banRustDeskTailscaleTermius

Monitoring

Prometheus, VictoriaMetrics, Alertmanager and Grafana. External checks watch from the outside and tell us when a site or service stops responding.

Self-hosted services

We run RustDesk for remote access, Tailscale to link hosts together, and a SOCKS5 proxy.

Day-to-day operations

nginx across several domains, Docker, supervisor, pm2, fail2ban and backups. We work with physical machines and VPS alike, and reach the hosts themselves through Termius and RustDesk.

Research, materials and events

“Gardens and People”dashboard.charmonye.composts in RU / EN

AI Day at the “Gardens and People” festival →

We came up with the idea and ran a day of the Green Lecture Hall at a Moscow festival, August 2026. One rule for the line-up: no technology overviews, one concrete case taken apart in detail. So the speakers were not course instructors but people from the industry, with their own work, their own mistakes and the parts they had to redo by hand.

Our own library

Third year of keeping our own library of material, and a separate librarian agent fills it: we read industry channels, hand it whatever is worth keeping, and it sorts and files. Before a task, agents go there for the rules and the context.

dashboard.charmonye.com ↗ product

An open map of AI tools for architecture, interiors and landscape. It is built for finding the tool for a specific job rather than the “best service”. Every card carries its sources.

Posts →

We write about what AI actually does in real work: where it saves time, where it needs watching, and why the same model behaves differently at different steps.

Have questions?

Drop us a line