Max Nardit
Beetroot

Beetroot v1.6.5 — Your Clipboard Can Now Read Images

AI Vision transforms let your clipboard read images — OCR, describe, extract data, translate. Background job queue means no more UI freezing. All AI providers moved to native Rust.

This is a big one. Your clipboard can now read images — right-click any screenshot, photo, or scan and ask AI to extract text, describe what it sees, pull structured data, or translate. AI transforms run in the background now, so nothing freezes while you wait.

At a glance:

  • AI Vision transforms — analyze images with 5 built-in prompts + custom ones
  • Background AI job queue — transforms no longer freeze the UI
  • All AI providers in native Rust — faster, more reliable, no CORS issues
  • Native Windows notifications — results pop up when Beetroot is hidden
  • 11 bug fixes

AI Vision Transforms

Select any image in your clipboard history, right-click → AI, and pick a vision prompt. The image goes to your AI provider and the result lands in your clipboard, ready to paste.

Five built-in vision prompts:

PromptWhat it does
Read TextOCR from photos, screenshots, handwritten notes
Describe ImageGet a text description of what's in the image
Extract DataPull structured data from tables, receipts, prescriptions
Summarize ImageQuick summary of visual content
Translate Image TextTranslate text found in images

You can also create your own vision prompts in Settings.

Works with all providers:

  • Cloud: OpenAI GPT-5.4, Anthropic Claude (Haiku/Sonnet), Google Gemini 2.5, DeepSeek
  • Local: Ollama (llava, bakllava, moondream), LM Studio

Even a 4B local model running on your own hardware can read handwritten prescriptions. No cloud, no API key, no data leaves your computer.

Real-world test: doctor's handwriting

To test AI Vision, I grabbed a random handwritten medical prescription from Google Images — a dental clinic note with cursive handwriting and medical abbreviations. The kind of thing that's hard to read even for humans.

Original handwritten prescription from a dental clinic

I ran it through five different models. Here's how they did:

ModelTypeSpeedQuality
GPT 5.4 miniCloudFastExcellent — accurate reading of cursive, good formatting
Gemini 2.5 FlashCloudVery fastExcellent — well-structured output, preserves layout
Claude Haiku 4.5CloudFastExcellent — clean output, accurate
LM Studio Qwen 3.5 4BLocalModerateVery good — best local model, good formatting
Ollama Qwen 3 4BLocalModerateGood — solid OCR, less formatting

All five correctly read the medications (Augmentin 625mg, Enzoflam, Pan-D 40mg), dosages, and instructions — from cursive handwriting on paper.

GPT 5.4 mini — clean, well-formatted output

Gemini 2.5 Flash — well-structured, preserves original layout

Claude Haiku 4.5 — clean and accurate

LM Studio Qwen 3.5 4B — best local model, runs entirely on your machine

Ollama Qwen 3 4B — solid OCR from a fully local model

Some ideas for what you can do with this:

  • Read handwritten notes, whiteboards, sticky notes
  • Extract data from receipts, invoices, business cards
  • OCR screenshots from foreign-language apps
  • Describe charts, diagrams, technical drawings
  • Translate signs, menus, documents from photos

Background AI job queue

AI transforms used to freeze the UI for 5–30 seconds while waiting for the response. Now they run in the background:

Before: Click AI prompt → UI freezes → result appears

After: Click AI prompt → menu closes instantly → keep working → notification pops up with result

Queue multiple transforms — they run one by one. If Beetroot's window is hidden, you get a native Windows notification. Click it to bring Beetroot to the front.

All AI providers in native Rust

All cloud API calls (OpenAI, Anthropic, Gemini, DeepSeek, Ollama) moved from browser JavaScript to native Rust code:

  • No more CORS errors
  • Works when the window is hidden (needed for background transforms)
  • More reliable with consistent error handling
  • Faster

Bug fixes

  • Fixed AI menu sometimes getting stuck after an error
  • Fixed Settings not rolling back font changes on Cancel
  • Fixed error toast being unreadable on dark themes
  • Fixed legacy model names not migrating correctly
  • 6 fixes for edge cases in vision transforms

How to update

Beetroot will offer to update automatically. Or download v1.6.5 from GitHub.

Discussion

No comment section here — all discussions happen on X.

Max Nardit

Max Nardit

@mnardit

More articles

Beetroot v1.6.2 — The Truncation Bug

A hotfix for v1.6.1's content truncation — AI transforms, preview, and copy were silently working with partial text. Plus Alt+T toggle and filter count fixes.