emelianov.cloud

Arkadii Emelianov

Things I build outside of work.

01Infrastructure

AI labRead the introduction

A GPU cluster modelled on GB200 NVL72, scaled down to two compute trays and run on one Linux machine. Real Slurm or Kubernetes, PyTorch, vLLM and NCCL run against emulated GPUs, NVLink partitions, Redfish BMCs and InfiniBand, so cluster tooling can be built and tested without a rack.

Ansible · Incus · C · Go · Slurm · Kubernetes · PyTorch · vLLM

zapperRead the introduction

Runs AI agents in Firecracker microVMs, with what they reach on the network, which credentials they use and which programs they start decided on the host, where the agent can’t touch it. Secrets never enter the VM, a rule can ask you before allowing, and everything is recorded.

Rust · Firecracker · KVM · seccomp · TLS inspection

Kubernetes Ingress DNSRead on Medium

A small DNS server that answers for a home cluster’s Ingress hosts and forwards everything else upstream, so ingresses resolve on the LAN.

Go · Kubernetes API · Helm

02Desktop

mmk

Makes Linux feel like macOS on an Apple keyboard, so switching between the two is seamless: your Mac shortcuts just work, in every app.

Rust · evdev · uinput · udev

pdf-preview

A fast PDF viewer and editor for Linux, modelled on macOS Preview: annotate, fill forms, rotate, undo. Ships as one AppImage.

TypeScript · Electron · React · PDFium · pdf-lib

Bonsai Studio

A simple runner for the ternary Bonsai 27B model on one consumer GPU: pick a workload profile, and use the model through an OpenAI-compatible endpoint.

Rust · Tauri · llama.cpp · Vulkan · Metal

03Linux tray

power-applet

A tray power applet for Linux: every device’s battery, the power mode, and what is keeping the computer awake, in one popup. Unlike Cinnamon’s own, it re-reads every device on any change, so a mouse’s level is never days old, and a low battery stays marked on the tray icon until you see it.

Rust · GTK · WebKitGTK · UPower · D-Bus

di.fm

A system tray player for DI.FM and JAZZRADIO, so a station is one click away without a browser tab. Plays the same track-based streams as the official extension, gaplessly, on Linux, macOS and Windows.

Rust · tao · wry · rodio

blackshark-battery

Shows a Razer BlackShark V2 HyperSpeed headset’s battery in the Linux desktop power applet, next to the keyboard and mouse. It reads the level over Razer’s vendor protocol and republishes it as a standard HID battery, so UPower lists it like any other.

Rust · HID · uhid · UPower · systemd

basilisk-battery

Shows a Razer Basilisk V3 X HyperSpeed mouse’s battery in the Linux desktop power applet, beside the headset and keyboard. It reads the level from the 2.4 GHz receiver over Razer’s vendor protocol and republishes it as a standard HID battery, so UPower lists it as a mouse.

Rust · HID · uhid · UPower · systemd

04Just for fun

ExpressLRS Joystick

An ExpressLRS radio as a wireless simulator joystick at 500 Hz. An ELRS receiver feeds a XIAO SAMD21, which shows up on the PC as a USB gamepad.

C++ · Arduino · PlatformIO · CRSF · USB HID

OSD Overlay

Burns WTFOS on-screen telemetry into DJI Goggles V2 recordings. A standalone, offline desktop app for Linux, macOS and Windows.

TypeScript · Electron · React

llm-heroes2

An LLM plays Heroes of Might and Magic II battles in the real engine. You can watch it, play against it, or hand a side to a coding agent.

Python · LangGraph · C++ · fheroes2