The CyrFlip desktop app works standalone — it puts the layout marker on the system cursor and next to the text caret everywhere, and transliterates mistyped text with one hotkey. If you use VS Code, the optional VS Code extension adds the same marker precisely at the Monaco editor caret. Here's how to set them up.
The app is the brain - it knows the active layout. The extension is just a display surface for VS Code, because VS Code draws its own caret and isn't keen on sharing its whereabouts with the outside world.
CyrFlip.exe (tray app) %LOCALAPPDATA%\CyrFlip\ VS Code extension
detects the layout ──writes──▶ layout.txt ──watches──▶ draws the marker
at the editor caret
The app must be running for the extension to show anything - the extension only reads what the app publishes. Without VS Code you still get the tray icon, the mouse-cursor marker, and the transliteration hotkey everywhere.
Pick any option:
winget install SerZhyAle.CyrFlip
CyrFlip.exe. Nothing to install; it runs on stock Windows 10/11.On launch, CyrFlip sits in the system tray (no window). The tray icon shows the active layout. Right-click it to show the clipboard-history strip, enable or pause history, change the indicator, or open Settings. Settings contains hotkeys, autostart, privacy controls and diagnostics.
Turn on Start with Windows so the app - and therefore the layout marker everywhere, including in VS Code - is always available after a reboot.
The VS Code extension is not required for the app to work. Skip this step entirely if you don't use VS Code. Install it only if you want the layout marker to appear exactly at the caret inside VS Code. Choose one:
.vsix file - get
cyrflip-vscode-<version>.vsix from the
vscode-extension folder,
then in VS Code: Extensions ▸ ⋯ ▸ Install from VSIX.., or from a terminal:
code --install-extension cyrflip-vscode-<version>.vsix
After installing, run Developer: Reload Window (Ctrl+Shift+P). The extension activates on startup - no configuration needed.
EN/RU/UK marker follows your caret, and the status
bar shows ⌨ EN, ⌨ DE, ⌨ ZH - whatever is active.hELLO wORLD?
Select it and press Ctrl+Shift+F11 -
CyrFlip swaps UPPER ↔ lower case in place. It has its own configurable hotkey, and an
optional Flip CapsLock after the flip toggle turns CapsLock off afterwards
so you can keep typing normally.When CapsLock is on, a thin frame appears around the
EN/RU/UK marker on the mouse cursor, the text caret and the
tray icon - so the CapsLock state is visible right where you type.
Clipboard history is off until you enable it from the tray menu. It keeps recent Unicode text in a small topmost strip. Click an item to use it; pin items you want to keep or delete individual entries. Press Ctrl+Shift+F10 to show or hide the strip.
History is stored locally and protected with Windows DPAPI for your Windows account. Pause capture, clear the history, or disable it entirely in the tray menu or Settings.
Right-click the tray icon and choose Settings… (or double-click the icon). Every change applies at once - there is nothing to restart and nothing to save.
| Tab | What lives there |
|---|---|
| General | Start with Windows; keep the computer awake and keep the screen on (both are remembered - a switch left on keeps the machine awake after a restart too, and CyrFlip will not watch your battery for you); the interface language - 13 to choose from. |
| Indicators | The I-beam cursor marker (off by default), the caret marker (on), the compact dot style, change the layout after converting text, and synchronize CapsLock after the case fix. |
| Hotkeys | A master switch plus a separate on/off and chord for the case fix and the clipboard manager - so a machine can keep only the one chord it needs. Also yield hotkeys to the remote desktop: while an mstsc/msrdc window is focused the chord is passed to the remote session, which is what you want when CyrFlip runs on both ends of an RDP connection. The context menu lives here too: its on/off switch and the mouse chord that opens it. |
| Layout conversions | One table holding every chord that converts text between layouts. EN ⇄ RU on Ctrl+Shift+F12 is created on the first run and can be edited or deleted like any other row; add as many pairs as you like, each with its own chord and switch. |
| Windows languages | Windows' own input settings, without opening the Windows pane: install / reorder / remove keyboard layouts (nothing is downloaded - the layouts ship with Windows), the cycle chord (Alt+Shift, Ctrl+Shift, ` or off), and direct per-language shortcuts that Windows handles itself, so they keep working when CyrFlip is closed - and, unlike the built-in Windows dialog, they are not limited to Ctrl+Shift+digit. Both sections snapshot your pre-CyrFlip state once and can restore it. |
| Clipboard | History on/off, pause capture, whether the manager window opens at startup, its transparency, full-history search, and clearing everything. |
| Translation | The optional local translator - see the section below. |
| Quick launch | The optional scenario launcher - see the section below. |
| About & Advanced | Links, the caret-position diagnostics report, and Send logs to the author.. - it packs CyrFlip's own logs into one archive and opens a message that you send yourself. |
A Windows-language change usually takes effect immediately, but Windows occasionally only settles it after signing out and back in. The Microsoft Store build runs in a container, so Windows may redirect those registry writes into the package - the tab says so and links to the Windows settings.
An opt-in module that absorbs OneClickRunner into CyrFlip - one tray process instead of two. It is off by default: until you enable it on Settings → Quick launch, CyrFlip behaves exactly as before - no extra tray entry and no Jump List tasks.
yt-dlp tool must be on PATH). The
settings table adds, edits, clones, reorders, searches, exports and imports them.%APPDATA%\CyrFlip\Scenarios,
format-compatible with OneClickRunner. Turning the module off clears the tray and Jump List but keeps the
files for the next enable.%APPDATA%\OneClickRunner\Scenarios); the originals are never modified, and the
"Import from OneClickRunner…" button repeats the import any time. .ps1 runs via PowerShell
with a one-off -ExecutionPolicy Bypass, .bat/.cmd via
cmd.exe; elevation is requested only by scenarios marked "run as administrator".Select text anywhere in Windows, press the chord, and the translation appears in a small window next to the mouse pointer, filling in as the model writes it. The translating is done by Ollama - a free program you install once on your own computer. CyrFlip does not bundle it, has no account and no key, and sends nothing to the author or to any cloud service. It is off by default: until you enable it on Settings → Translation, no chord is bound, there is no tray entry, and CyrFlip opens no network connection at all.
http://localhost:11434 by default,
your own machine, so the selection never leaves the computer. The tab says plainly that entering another
address sends the selected text to that machine.aya-expanse:8b (~4.7 GB, the default - the best translation of those tested) and
gemma2:9b (~5 GB). Models under 4 GB failed the Russian and Ukrainian check outright,
so gemma2:2b (~1.5 GB) is there only for a machine short on space, and it will make mistakes. In the
Microsoft Store build the install button only opens ollama.com - a Store app must not download
and run an installer.Worth knowing before you start: the quality is the local model's; the first translation after a cold start takes a while, because the model has to load; and Ollama plus a model are a multi-gigabyte download you make once. The model is held in memory by the Ollama process, not by CyrFlip - the app itself stays within its 50 MB budget.
Everything CyrFlip can do to a selection lives behind a hotkey. This module puts the same commands on the mouse: hold Ctrl and right-click a selection, and CyrFlip's own menu opens at the pointer - Copy / Cut / Paste, then your layout conversions, the case fix and your translation rows, then Quick launch and the clipboard history, then Settings. It is off by default, and while it is off the mouse hook is not installed at all: a hook that sits in the path of every mouse move on the machine has no business existing for a feature nobody switched on.
This module reads no text and stores nothing. It watches for its own chord and, while its menu is open, for a click outside it - a menu that belongs to a background process never hears the click that should dismiss it, so CyrFlip closes it itself.
The interface is available in English, Русский, Українська, Deutsch, Italiano, Español, Français, Português, العربية, हिन्दी, বাংলা, اردو and 中文. A fresh install follows the Windows display language and falls back to English; Arabic and Urdu are mirrored right-to-left. Translations into languages the author does not speak are machine-made and not proofread - corrections are very welcome on GitHub.
| Surface | Shown by | Where |
|---|---|---|
| Mouse text cursor (I-beam) | App | Everywhere you can type |
| Marker next to the text caret | App | Classic Win32 / UI-Automation text fields |
| Marker at the editor caret | Extension | VS Code code editors (precise) |
| Status-bar indicator | Extension | VS Code, everywhere in the window |
| Tray icon | App | Always, in the notification area |
Inside VS Code, webviews and widgets - the integrated terminal, search boxes, chat panels, the Command Palette - can't host editor decorations, so the caret marker can't appear there. The status-bar indicator and the app's mouse-cursor marker still show the layout.
%LOCALAPPDATA%\CyrFlip\layout.txt;
Microsoft Store → %ProgramData%\CyrFlip\layout.txt.
The status-bar indicator is the quickest way to tell the extension is reading the file. Try
Developer: Reload Window.