Skip to content
esoteric-frogPublic

About

Tiny citrus flavored file manipulation tool: drag a file, hold ⌃, drop it on a slice to convert it.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Tangelo: drag a photo.heic file, hold Control, and a wheel of formats opens at the pointer; the WebP slice lights orange.

Tests macOS 14 or later on Apple silicon Swift 6 Latest release License

Tangelo is a tiny Mac menu-bar app that converts files where you drag them.
No window to open, no upload, no settings. The new file lands next to the old one.

Try it in your browser


Try it first

No Mac needed. The try-it page has a sample photo. Drag it, hold ⌃, and drop it on a slice. You get a real converted file to download. You can use your own image too, and it never leaves your browser. On a phone, tap the photo, then tap a key button.

Three wheels, one per key

Start dragging any file, from Finder or any app. Hold one key and a wheel opens right under the pointer. Let go of the file on a slice.

Control opens Convert (JPG, PNG, TIFF, AVIF, WebP). Command opens Tools (Compress, Resize 50%, Smaller PDF). Option opens Actions (AirDrop, Copy, Copy Paths, Open in Terminal, Show in Finder).

Hold Wheel What is on it
⌃ Convert JPG · PNG · TIFF · HEIC · AVIF · WebP, and Smaller PDF
⌘ Tools Compress · Resize 50% · Smaller PDF
⌥ Actions AirDrop · Copy Files · Copy Paths · Open in Terminal · Show in Finder

The wheel only shows choices that work for every file you are dragging. Drop in the middle, or anywhere off the wheel, and nothing happens.

Prefer clicking? Drop files on the menu-bar icon, or click it and choose Choose Files….

What it reads

In Out
HEIC, JPEG, PNG, TIFF, WebP, AVIF, GIF, BMP JPG, PNG, TIFF, HEIC, AVIF, WebP
PDF a smaller PDF (kept only if it really is smaller)

Small promises

  • Never overwrites. photo.heic becomes photo.jpg. If that name is taken, you get photo 2.jpg.
  • No half files. Tangelo writes to a temp file, then moves it into place. A failed job leaves nothing behind.
  • Nothing leaves your Mac. Images use Apple's own ImageIO and PDFKit. WebP uses Google's cwebp, which ships inside the app.
  • No permissions to grant. Tangelo sees drags by watching the mouse and the drag pasteboard, so it does not need Accessibility access.

Install

You need macOS 14 or later on Apple silicon, and the Swift 6 toolchain (Xcode or just the Command Line Tools: xcode-select --install).

git clone https://github.com/esoteric-frog/Tangelo.git
cd Tangelo
scripts/install.sh      # builds, copies to /Applications, starts it

Tangelo adds itself to Login Items the first time it runs from /Applications.

Using the release download instead

The app on the Releases page is ad-hoc signed, not notarized. macOS will block it the first time. After you move it to /Applications, run:

xattr -dr com.apple.quarantine /Applications/Tangelo.app

Build and test

scripts/test.sh         # swift test (works without full Xcode)
scripts/make-app.sh     # builds build/Tangelo.app, ad-hoc signed

scripts/fetch-tools.sh downloads cwebp from Google and checks its SHA-256 before use.

How it fits together
flowchart LR
  D[Drag + held key] --> W[Wheel]
  M[Drop on menu-bar icon] --> P[Panel]
  W --> R[Registry]
  P --> R
  R --> C1[ImageConverter<br/>ImageIO + cwebp]
  R --> C2[PDFShrinkConverter<br/>PDFKit]
  R --> C3[ImageToolConverter<br/>compress / resize]
  C1 & C2 & C3 --> Q[JobQueue<br/>2 at a time]
  Q --> N[OutputNamer<br/>temp file, then move]
Loading
  • Sources/TangeloCore holds the logic and has no UI, so all of it is under test.
  • Sources/Tangelo is the menu-bar app: the drag watcher, the wheel and the panel.
  • A new format is one new Converter. The wheel and panel do not change.

Coming next

  • Video and audio (bundled ffmpeg)
  • Documents: Word, Pages, EPUB, PowerPoint
  • Strip photo metadata, read QR codes
  • A floating shelf that holds files for later

License

MIT. cwebp is BSD 3-Clause; its notice ships in Tangelo.app/Contents/Resources/licenses/.

A small orange wheel of five slices

About

Tiny citrus flavored file manipulation tool: drag a file, hold ⌃, drop it on a slice to convert it.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages