tray · hotkeys ~1s · local-first · open source

Capture once. Annotate once.

Capture visual proof, annotate it once, and turn it into actionable ByteDesk work — without leaving the desk. CleanShot-class depth as a native tray agent and a full CLI.

Features
~1s Hotkey reload after Settings save
30d Default history retention
≤5% Accent footprint (design rule)
CLI First-class agent surface
From tray to ticket

Visual proof without leaving the desk.

Three steps. No empty main window. No cloud required.

tray · panel

Stay in the tray.

No empty main window. Left-click the tray for the A+B menu: capture groups, last shot, open at login.

pick-area → overlay

Capture, then act.

Region select with HUD and loupe. Quick access overlays Copy, Annotate, Pin, OCR — then gets out of the way.

local-first annotate · evidence

Annotate once. Package proof.

Redact and mark up, then pin, share locally, or build an evidence package for a mission or ticket.

Product surface

CleanShot-class depth. ByteDesk desk fit.

pick-area

Capture

Area, window, fullscreen, timer, and scrolling — with aspect lock, loupe, multi-monitor, freeze, and all-in-one mode.

  • Region picker + size badge
  • Window + scroll stitch
  • Crosshair / magnifier
annotate

Annotate

Arrows, shapes, pixelate, blur, spotlight, counters, pencil, text — backgrounds, layers, and .bdcapture projects.

  • Redact in place
  • Layers + eyedropper
  • Export PNG / clipboard
record-hud

Record

GIF (pure Rust) and MP4 (ffmpeg when present), with a session HUD, optional audio flags, and trim/mute paths.

  • GIF without ffmpeg
  • MP4 when ffmpeg is in PATH
  • HUD timer + pause chrome
history · pin

Pin & history

Floating pins for reference, searchable history, favorites, tags, bulk actions, and 30-day retention.

  • Always-on-top pins
  • Grid or list browser
  • Evidence packages
cli · first-class

Humans get a tray. Agents get a binary.

Same product. Script captures, OCR, evidence packages, and settings without a GUI when you need it.

terminal
# tray agent — no empty window
$ bytedesk-capture tray

# region → overlay → annotate
$ bytedesk-capture pick-area
$ bytedesk-capture annotate --image stills/….png

# evidence for a mission
$ bytedesk-capture evidence --mission M-123

# command palette
$ bytedesk-capture palette
privacy

Local-first by default.

Captures live under your OS data directory. Local share binds to 127.0.0.1. Hosted cloud teams are Deferred — we do not sell them as shipping.

Privacy stance
  • Stills, projects, history on disk you control
  • Residency labels for evidence packages
  • Optional ffmpeg / tesseract — stills work without them
  • Native Rust chrome (egui today) — no Electron shell
Get started

Capture once. Annotate once. Ship the proof.

Tray agent, full CLI, local-first by default. Hosted cloud is deferred.

Download GitHub Quickstart