GitHub - amanharshx/vision-export-studio: Desktop app to export Ultralytics YOLO & Roboflow RF-DETR models to ONNX, TensorRT, CoreML, TFLite & more — runs 100% locally.

6 min read Original article ↗

Desktop studio for exporting Ultralytics YOLO .pt and Roboflow RF-DETR .pth models into deployment-ready formats.

Platforms Homebrew Built with Tauri v2 Rust TypeScript

CI GitHub Release

Vision Export Studio demo


Select your Ultralytics YOLO .pt or Roboflow RF-DETR .pth model, pick an export target, and generate deployment-ready output locally - everything runs on your machine, nothing leaves your environment.


Table of Contents


Vision Export Studio is a desktop app that exports computer-vision model weights into deployment-ready formats. It supports two model families: Ultralytics YOLO .pt weights with full target coverage (ONNX, TensorRT, CoreML, TFLite, and more), and Roboflow RF-DETR .pth checkpoints with a focused set of targets (ONNX and TensorRT). Select your model, pick a target, and generate the export locally - model files stay on your machine.

Features

  • Local-first - exports run on your machine; model files do not leave your environment
  • Managed runtime - app creates and uses ~/.vision-export-studio/.venv for Python tooling by default
  • Optional Python override - power users can point the app at a different interpreter
  • Optional output directory - choose where exported artifacts are written, or use the default next to the source model
  • Automatic route installs - route-specific Python dependencies install when needed for most export paths
  • Dependency status checks - each route reports missing Python packages or system binaries before you export, with install hints
  • Two model families - Ultralytics YOLO (.pt) with full target coverage, and Roboflow RF-DETR (.pth) for ONNX and TensorRT
  • Multiple export targets - ONNX, TensorRT, CoreML, OpenVINO, TFLite, Paddle, NCNN, RKNN, and more
  • Configurable export options - tune target-specific settings such as image size, batch size, FP16 (half), INT8, dynamic axes, ONNX opset, TensorRT workspace, and RKNN target chip
  • RF-DETR checkpoint inspection - after trusted-checkpoint confirmation, auto-detects model family (detection vs segmentation), size, and recommended native image size from the .pth checkpoint
  • Safer process execution - export commands run through Tauri/Rust with argv-based subprocess handling

Supported Formats

Vision Export Studio is not universal all-to-all model converter.

source format -> supported route -> target format

Current source support is intentionally narrow:

  • Ultralytics-compatible .pt weights (full target coverage)
  • Roboflow RF-DETR .pth checkpoints (ONNX and TensorRT only)
  • Generic PyTorch checkpoints not supported
  • Reverse conversion not supported

Current source formats:

Format Provider Status Notes
.pt Ultralytics YOLO Ultralytics-compatible weights only.
.pth Roboflow RF-DETR RF-DETR checkpoints. Exports to ONNX and TensorRT only.

Ultralytics YOLO (.pt) target formats:

Format Status Notes
.pt -> onnx Most portable intermediate.
.pt -> torchscript Traced TorchScript module.
.pt -> openvino Optimised for Intel CPUs, iGPUs, and VPUs.
.pt -> engine TensorRT. NVIDIA GPU and supported stack required.
.pt -> coreml macOS-only.
.pt -> saved_model TensorFlow SavedModel output.
.pt -> pb TensorFlow GraphDef output.
.pt -> tflite One-way runtime artifact.
.pt -> edgetpu Linux x86_64 and edgetpu_compiler required.
.pt -> tfjs Web deployment output.
.pt -> paddle PaddlePaddle export path.
.pt -> ncnn Mobile-friendly runtime output.
.pt -> mnn One-way runtime artifact.
.pt -> rknn Linux-only. Target chip required.
.pt -> imx Linux-only. Java >= 17 required.
.pt -> axelera Linux-only.
.pt -> executorch Edge runtime output.

Roboflow RF-DETR (.pth) target formats:

Format Status Notes
.pth -> onnx Recommended RF-DETR target and primary path.
.pth -> engine TensorRT. NVIDIA GPU and trtexec required. No macOS.

Note

RF-DETR support is intentionally focused on ONNX and TensorRT. TFLite export was evaluated and dropped because the ONNX → TFLite conversion failed consistently across macOS and Linux.


Target Caveats

Some targets are one-way deployment artifacts or platform-locked:

  • engine requires NVIDIA GPU and supported TensorRT stack. No macOS support.
  • coreml export is macOS-only.
  • edgetpu export requires Linux x86_64 and edgetpu_compiler.
  • rknn export is Linux-only and requires target chip selection.
  • imx export is Linux-only and requires Java >= 17.
  • axelera export is Linux-only.
  • tflite, engine, mnn, rknn, imx, axelera, edgetpu, and some coreml outputs should be treated as one-way deployment outputs.
  • Roboflow RF-DETR (.pth) exports only to onnx and engine. Its engine (TensorRT) path is NVIDIA-only and requires trtexec, identical to the Ultralytics engine caveat.

Installation

Quick Install

macOS (Homebrew):

brew install --cask amanharshx/tap/vision-export-studio

Linux (Homebrew):

brew install amanharshx/tap/vision-export-studio

Windows / macOS / Linux (GitHub Releases):

Download the latest desktop build from GitHub Releases.

Linux package note:

Current Linux release assets include Homebrew tarball, .AppImage, .deb, and .rpm packages.

In-App Updates

Released builds can check for updates from Updates inside app.

Expected flow:

  • click Updates
  • if no update exists, app shows Up to date
  • if update exists, app offers Update to <version>
  • after install, click Restart to update

Updater metadata is served from GitHub Releases.

Troubleshooting

Note: The app is not code-signed yet, so macOS and Windows may show security warnings.

macOS - "App is damaged and can't be opened"

Run this command in Terminal after installing:

xattr -cr "/Applications/Vision Export Studio.app"

Then open the app again.

Windows - "Windows protected your PC" (SmartScreen)
  1. Click More info
  2. Click Run anyway

Or: Right-click the .exe -> Properties -> Check Unblock -> Apply

First Launch Runtime Setup

Expected flow:

  • install app
  • let Vision Export Studio prepare runtime on first launch
  • pick export route
  • install route dependencies only when needed

Vision Export Studio now defaults to managed runtime in:

~/.vision-export-studio/.venv

Vision Export Studio creates this environment automatically and installs ultralytics there for the base runtime. Roboflow RF-DETR dependencies (rfdetr) install on demand the first time you pick an RF-DETR route.

Current bootstrap limitation:

  • first-time runtime creation still depends on working python/python3 already available on host machine
  • bundled Python is not implemented yet

Build From Source

Prerequisites: Rust, Bun, Tauri v2 prerequisites

git clone https://github.com/amanharshx/vision-export-studio.git
cd vision-export-studio
bun install
bun run tauri dev      # development
bun run tauri build    # local production build

Analytics

Vision Export Studio uses PostHog for install-scoped pseudonymous usage analytics. The app stores a persistent install identifier locally so launches from the same install can be measured across sessions.

Current analytics covers:

  • app launches
  • setup completion and setup failures
  • export started, completed, failed, and cancelled
  • app and device metadata such as app version, OS, architecture, install channel, and route/event metadata

Collected analytics excludes:

  • model files
  • dataset contents
  • file contents
  • export logs
  • local file paths
  • personal identity such as email address or username

More detail lives in PRIVACY.md.


Privacy

Privacy summary: exports run locally, model files stay on your machine, and install-scoped pseudonymous analytics is limited to product usage and app/device metadata. See PRIVACY.md for details.


Contributing

Contributions are welcome. Whether it's a bug fix, new format, or documentation improvement - every bit helps. Please read the Contributing Guide before opening a pull request.


Security

If you discover a security issue, please do not open a public issue. Use GitHub private vulnerability reporting as described in SECURITY.md.


License

This project is licensed under the MIT License.