应用未公证,首次启动可能被 macOS 拦截,需在隐私与安全里点仍要打开或执行 xattr -dr com.apple.quarantine /Applications/Dinky.app;CLI 需单独用 SwiftPM 构建,且编码器要在磁盘上(DINKY_BIN、bin/ 或 Homebrew 的 cwebp/avifenc/oxipng);dinky serve 仅监听本机 127.0.0.1:17381,需带 Bearer token。
dinky
heyderekjMIT活跃维护一款 macOS 上的文件压缩工具,能把图片、PDF 和视频压得更小,支持 AVIF 等格式转换,适合需要批量瘦身素材的场景。
Dinky makes files smaller.
brew tap heyderekj/dinky https://github.com/heyderekj/dinky
brew install --cask dinky仅支持 Apple Silicon(M 系列 Mac),需 macOS 15 Sequoia 或更高;2.x 版本不支持 Intel Mac。README 未提及显存或 CPU 运行要求。
macOS 上拖拽即压缩图片、视频和 PDF 的小工具,输出更小的文件
一款 macOS 上的文件压缩工具,能把图片、PDF 和视频压得更小,支持 AVIF 等格式转换,适合需要批量瘦身素材的场景。
核心能力
- 拖拽文件或整个文件夹到窗口、Dock 图标即可压缩
- 图片可转 WebP、AVIF、无损 PNG、HEIC 或 JPEG
- 视频导出 MP4,支持 H.264 或 HEVC 与质量预设
- PDF 默认扁平化,也可保留文字链接或先跑 Vision OCR
- 监视文件夹自动压缩新文件,支持全局或按预设
容易踩的坑
- v2.17.0Dinky 2.17.0最新正式版2026-10-30 · 2026-10-30 01:10 UTC
Dinky 2.17.0
Changes since v2.16.0 (commit subjects from this repo):
- Site: hero version line says v2.16.0; release.sh bumps it from now on
- Floating dropzone: compress from any app without opening the window
- Sidebar pickers: one sliding track instead of boxed chip grids
- Cut installed size 35 MB → 23 MB: strip Release binary, drop coverage, binary .strings, one libjpeg
- Speed: keep the main thread free and let jobs actually run in parallel
- Simpler first drop, honest status, and Mac conveniences
- Dropzone: show each dragged file's kind; livelier waiting pill
- Settings: split Behavior into focused panes
- Decode inputs cwebp/avifenc can't read to PNG first
- Menu bar: a Slinky-style panel, shown by default
- Settings: pick the dropzone corner on a little screen
- Settings: corner picker as System Settings-style tiles
- Corner picker: your real wallpaper, Aerials too; inset like the real dropzone
- Corner picker: use the macOS default wallpaper
- Don't point encoders at /opt/homebrew/lib
- Static, trimmed encoder builds: 23 MB → 15 MB
- Menu bar: give the Floating dropzone row an icon that exists
- Menu bar: build with pre-27 SDKs (CI uses Xcode 26)
- Floating dropzone: keep the ring on the pill, morph it into the card
- Site: Dinky 2.17 — floating dropzone, menu bar panel, sliding pickers, 15 MB
- Dropzone scene: Finder-style cards with document icons, like the app
- Site: Format conversion as a list by kind of file; shorter Smart destination
- Dropzone scene: a wider, shorter Exports window, shaped like Finder's
- Family menu bar: Binky's panel shows the real routine names and counts
- Site: every guided step fits in four lines
- Family menu bar: Slinky's panel unlocks, and hides Health and recents while locked, as in the app
- Keep quality: fix cropped PDFs and quality floors across all media
Install
Homebrew (optional):
brew tap heyderekj/dinky https://github.com/heyderekj/dinky brew install --cask dinkyOr download Dinky-2.17.0.dmg from the assets below and drag Dinky into Applications. Already using Dinky? Choose Install Update from the in-app banner when it appears.
Finder “Open With” shows two Dinkys
macOS lists each Dinky.app on disk with its own version. After an upgrade, an older copy is often still around.
- Homebrew:
brew cleanup dinky(orbrew cleanup) removes old cask versions under Caskroom. - List every copy:
mdfind 'kMDItemCFBundleIdentifier == "com.dinky.app"'in Terminal; delete extras you do not need (e.g. in Downloads).
- v2.16.0Dinky 2.16.02026-10-23 · 2026-10-23 00:18 UTC
查看更新说明
Dinky 2.16.0
Changes since v2.15.0 (commit subjects from this repo):
- Site: clarify Watch Folders can override the Originals setting
- Site/README: originals setting is global with a watch-folder override, not per preset
- Prepare for Cloudflare Pages; family Dock replaces the tab strip
- Family Dock behaves like the macOS Dock
- Homepage in the family's new design language
- Nav: icon-only GitHub button; nav appears once the hero buttons scroll away.
- Dock: Slinky's new glacier cyan icon.
- Support email: [email protected], shared by the Testament Made apps.
- Menu bar glyph: draw at 14pt (about 14 x 12pt of ink), in line with the system items.
- Homepage: Dinky's windows rebuilt in HTML and CSS instead of screenshots
- Dock: switch sites like turning a page. Go on click (the bounce plays while the next site loads, no 700ms wait), preconnect to the other sites, prefetch on hover (speculation rules in Chrome, prefetch links in Firefox), and declare light/dark so arrival paints the right background.
- Dock: on localhost, open the other sites' local servers.
- Menu bar: Apple logo, battery, Wi-Fi, Spotlight and Control Center traced from SF Symbols at 13 pt; medium-weight titles like macOS.
- Homepage: feature rows as guided steps and editorial lists, like slinkyfiles.com
- Hero menu bar that works (shared family-menubar.js): Dinky's real menus, Apple menu, Spotlight, Control Center, Minimize into the Dock; drop a picture on the hand to shrink it, and Quit Dinky waves goodbye.
- Hero version line like Slinky's: version · macOS · Apple silicon · How to install, as a plain underlined text link.
- Control Center: Tahoe modules without outlines, a capsule brightness slider, each app's own tile (Lock Slinky, Clipboard Compress, Routines), and a Testament Made module with all three apps.
- Spotlight like Tahoe's: large glass and 22 pt placeholder, with the four mode icons on the right.
- Control Center: drop the Display slider (it dimmed Control Center too); add Reduce Motion, which stops the page's animations and the demos' auto-advance, and a Download tile. Rounded app icons in the Testament Made module.
- Recreated windows: sidebar traffic lights and toggle share a middle with the window title, with less padding above and below.
- Menu bar: Wi-Fi opens a real Wi-Fi menu (switch, joined network, others to join), battery opens its menu, and the clock opens Notification Center with what the page has shown.
- Battery menu: Power Source: Battery, and three of the usual suspects under Using Significant Energy (a different three each time).
- Battery menu: the energy-hungry apps show their real icons (64 px WebP, about 4 KB each).
- Site: bento for "Also in Dinky" and a download strip
- Ask a question: Spotlight's Ask row and an ask field above the FAQ, answered from this site's own words (FAQ, homepage, llms.txt and the app's Help) via Workers AI in functions/api/ask.js. Real FAQ source links, a key filter, caching, and the rainbow glow while it thinks. tools/make_ask_json.py rebuilds site/ask.json and the FAQ anchors.
- Ignore Wrangler's local state.
- FAQ: four core questions first, the rest behind "Show all questions", now that the ask field answers anything. Spotlight, answer source links and #faq-… links open the full list when they point at a hidden one. Keeps the page's existing FAQ ids so older links still work.
- Spotlight: drop the four mode icons, and keep the answer row hidden until something is asked.
- FAQ ask: the answer card stays hidden until a question is asked, and goes away when the field is cleared.
- Preview copies on Cloudflare Pages (*-preview.pages.dev): the Dock moves between the previews, and every pages.dev response says noindex.
- Make the Dinky homepage work well on phones and touch screens
- Touch: the Dock sizes to its icons (it was squeezed on phones once Search joined it), hover effects only with a real pointer, finger-sized targets in the menu bar, its menus and Spotlight; Notification
- v2.15.0Dinky 2.15.02026-09-25 · 2026-09-25 19:57 UTC
查看更新说明
Dinky 2.15.0
If you use a Watch folder: on 2.14.0 or earlier, originals could be moved to the Trash even when the compressed result was discarded ("No gain"). If a file has gone missing from a watch folder, check your Trash — it's very likely still there.
What's fixed
- Originals are only touched after a smaller file is actually saved. Before, the original could be moved to Trash/Backup as soon as an output existed, even if that output turned out not to be smaller and got thrown away — leaving you with neither file. This now applies to images, video, audio, and PDF alike.
- Drops and the global Watch folder now use the preset you have selected, read live — not a snapshot taken when you picked it. Editing a preset's settings (e.g. turning on a width limit) now applies to the next file you drop or that lands in a watch folder.
- A width limit now wins. If a preset resizes an image, the resized file is kept even if it isn't smaller in bytes — you asked for those dimensions.
- Watch-folder originals follow your general Original Files setting by default now, instead of always defaulting to Trash. You can still pick something different just for watch folders under Settings → Watch.
- Audio Smart Quality no longer inflates already-compressed music. A typical 256–320 kbps MP3 or AAC file used to be switched to lossless FLAC and come out much larger, so it was skipped as "No gain." It now stays lossy and picks a bitrate below the source.
- Watch folders wait for large files to finish copying before compressing them, and recover on their own after a reboot or a drive/share mounting late.
- Batch totals (savings, history) now count only the files in that batch, instead of also re-counting files left over from an earlier batch still in the list.
- Fixed a rare case where two files that would produce the same output name (e.g.
photo.jpgandphoto.png→photo-dinky.webp) could collide and corrupt one of them. - Fixed chip labels in the results list wrapping oddly on narrow windows.
Changes since v2.14.0 (commit subjects from this repo)
- Never lose an original; apply the selected preset to drops and watch folders (#29)
- Watch folders: wait for copies to finish, recover after reboot, activity log (#30)
- Count only the current batch in its summary, history and lifetime savings (#31)
Install
Homebrew (optional):
brew tap heyderekj/dinky https://github.com/heyderekj/dinky brew install --cask dinkyOr download Dinky-2.15.0.dmg from the assets below and drag Dinky into Applications. Already using Dinky? Choose Install Update from the in-app banner when it appears.
Finder “Open With” shows two Dinkys
macOS lists each Dinky.app on disk with its own version. After an upgrade, an older copy is often still around.
- Homebrew:
brew cleanup dinky(orbrew cleanup) removes old cask versions under Caskroom. - List every copy:
mdfind 'kMDItemCFBundleIdentifier == "com.dinky.app"'in Terminal; delete extras you do not need (e.g. in Downloads).
- v2.14.0Dinky 2.14.02026-09-25 · 2026-09-25 02:56 UTC
查看更新说明
Dinky 2.14.0
Changes since v2.13.2 (commit subjects from this repo):
- Harden dinky serve: loopback-only bind, request checks, bearer token (#28)
⚠️
dinky serveAPI clients: action requireddinky servenow binds to127.0.0.1/[::1]only (previously reachable from other devices on your network) and every endpoint exceptGET /v1/healthnow requires a bearer token:- Send
Authorization: Bearer <token>— a new token is printed to stderr on each launch, or pin one withDINKY_SERVE_TOKEN. - Send
Content-Type: application/jsononPOSTrequests (plaincurl -dand some HTTP clients don't set this by default — usecurl --jsonor set the header explicitly). - Requests with an
Originheader, or aHostother thanlocalhost/127.0.0.1/[::1], are now refused.
See docs/local-cli.md for details and examples.
Install
Homebrew (optional):
brew tap heyderekj/dinky https://github.com/heyderekj/dinky brew install --cask dinkyOr download Dinky-2.14.0.dmg from the assets below and drag Dinky into Applications. Already using Dinky? Choose Install Update from the in-app banner when it appears.
Finder “Open With” shows two Dinkys
macOS lists each Dinky.app on disk with its own version. After an upgrade, an older copy is often still around.
- Homebrew:
brew cleanup dinky(orbrew cleanup) removes old cask versions under Caskroom. - List every copy:
mdfind 'kMDItemCFBundleIdentifier == "com.dinky.app"'in Terminal; delete extras you do not need (e.g. in Downloads).
- v2.13.2Dinky 2.13.22026-09-24 · 2026-09-24 18:09 UTC
查看更新说明
Dinky 2.13.2
Fixes a side effect of 2.13.1. For Macs with Apple Silicon (M-series).
Watch Folder originals: back to what you had
2.13.1 gave Watch Folders their own Originals setting (Settings → Watch), defaulting to Move to Trash. If you already had a watch folder set up, that changed what happened to your originals without you choosing it — anyone who was on "Stay where they are" for the general setting started getting watch-folder originals trashed too.
This release fixes that: if you already had a watch folder (global or on a preset), your watch-folder originals setting now matches whatever your general Originals setting was, so nothing changes going forward. If you're setting up your first watch folder after this update, it still defaults to Trash, so the folder can stay an inbox.
If you were already on 2.13.1 and want to double check, it's in Settings → Watch.
Install
Homebrew (optional):
brew tap heyderekj/dinky https://github.com/heyderekj/dinky brew install --cask dinkyOr download Dinky-2.13.2.dmg from the assets below and drag Dinky into Applications. Already using Dinky? Choose Install Update from the in-app banner when it appears.
Finder “Open With” shows two Dinkys
macOS lists each Dinky.app on disk with its own version. After an upgrade, an older copy is often still around.
- Homebrew:
brew cleanup dinky(orbrew cleanup) removes old cask versions under Caskroom. - List every copy:
mdfind 'kMDItemCFBundleIdentifier == "com.dinky.app"'in Terminal; delete extras you do not need (e.g. in Downloads).
- Homebrew:
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Dinky
A small macOS utility that compresses images, videos, and PDFs. Drop files in, get smaller ones back.
For images: supports JPG, PNG, WebP, AVIF, HEIC/HEIF, TIFF, and BMP. Outputs WebP, AVIF, lossless PNG, HEIC, or JPEG depending on your preference.
For video: export to MP4 with H.264 or HEVC and quality presets.
For PDFs: flatten pages (default) for reliable smaller files on most scans and image-heavy documents, or preserve text and links for a best-effort stream rewrite when size is secondary. Scan-like PDFs can optionally run Vision OCR first (on-device) to lay down a text layer, then your chosen flatten or preserve pass — born-digital PDFs skip OCR. Strips metadata (where applicable), respects max dimensions and file size targets for images, and saves next to the original by default.
System requirements
- Apple Silicon (M-series Mac). Current 2.x DMG and Homebrew cask builds are not for Intel-based Macs (Finder may show the app icon with a slash through it on the wrong architecture).
- macOS 15 (Sequoia) or later.
Releases
1.x (from 1.0 on) was images only. 2.0 added videos and PDFs alongside images. Older 1.x DMGs and ZIPs stay on GitHub Releases for anyone who needs them; use the latest release for full format support.
Homebrew: add this repo as a tap once, then install the cask (see Casks/README.md for why it lives in-tree):
brew tap heyderekj/dinky https://github.com/heyderekj/dinky
brew install --cask dinky
About the developer
Hey! I'm Derek Castelli, a full-time freelance web designer working primarily in Webflow and Figma (and now more in Cursor and Claude). Image compression is a constant part of the job — every site build involves optimizing photos for fast load times, and doing that by hand in a browser or through a bloated app gets old fast. Dinky came out of that frustration.
Features
- Drag and drop — drop images, videos, audio, PDFs, or a whole folder onto the window, the Dock icon, or the file picker
- Floating dropzone — optional: start dragging files anywhere and a small dropzone pops up in a screen corner; drop on it to compress without opening the window, then drag the smaller files back out
- Menu bar panel — Open Files, Clipboard Compress, the floating dropzone switch, and your latest results (drag one out or click to show it in Finder)
- Clipboard compress — paste a copied image straight into Dinky with ⌘⇧V; the hotkey works system-wide, even when Dinky isn't focused
- Compress from a URL — drop or paste a direct
http(s)link to an image, video, or PDF; Dinky downloads it (max 500 MB) into a temp folder, compresses, and cleans up after itself - Format conversion (images) — Auto, WebP, AVIF, lossless PNG, HEIC, or JPEG; Auto picks WebP or AVIF per image, and JPEG is there for apps that can't open WebP
- PDF compression — flatten (default) or preserve text and links (qpdf + PDFKit); optional Vision OCR on scan-like documents for searchability before flatten or preserve
- Video compression — export to MP4 with H.264 or HEVC and quality presets
- Compression presets — save named presets with format, quality, limits, destination, watch folder, and filename settings; apply in one click
- Before & after preview — side-by-side or slider view to compare original and compressed (images)
- Watch folder — point Dinky at a folder and new supported files are compressed automatically; global or per-preset with its own folder
- Batch speed — cap parallel jobs: one at a time (Gentle), up to three (Balanced), or up to eight (Maximum)
- Batch order (optional) — start with the largest files first to finish the full batch sooner; default is smallest first for quicker early feedback
- Max width or scale — resize on the way out to a max width (web presets or a custom value), a percentage of the original, or both (images)
- Max file size — binary-searches the quality level to hit an exact MB target (images)
- Batch compression — multiple files compress concurrently, live results as they finish
- Wait for Compress Now — drop files first, then right-click each one to choose format individually
- Show in Finder — jump straight to any compressed file from the results list
- PNG lossless — run oxipng on PNGs when you need to keep transparency or format fidelity
- Destination — save next to the original, to Downloads, or pick a custom folder; presets can have their own unique output folder
- Originals — keep, move to Trash, or move to a Backup folder of your choosing on every successful compress; watch folders can use their own setting
- Notifications — sound and system notification when a batch finishes; sound scales with savings: a soft tink for tiny saves, a full chime for big ones
- Smart quality — auto-detects photo vs. graphic (UI, illustration, logo, screenshot) per image and picks quality accordingly; or force Photo, Graphic, or Mixed per preset
- Session history — review past compression sessions with file counts and total bytes saved
- Apple Shortcuts — compress images from automations via a native Shortcuts action
- Custom keyboard shortcuts — rebind Open Files, Clipboard Compress, Compress Now, Clear, and Delete in Settings → Shortcuts
- CLI + local API (pro users) — optional
dinkyCLI and localdinky serveendpoint for scripts and AI-agent workflows (--jsonoutput;servestays on this Mac and needs a token) - Launch at login — opt in once and Dinky's ready the moment you log in (handy alongside Watch Folders for set-and-forget compression)
- Easy updating — one click checks for a new release, installs, and relaunches; no browser, no re-drag
- Skip threshold — skip files below a minimum savings target: Off, 2%, 5%, or 10%
- Advanced — strip metadata, sanitize filenames for web, show results in Finder when done
- Quirky idle animation — three choreographed card-drop variants that loop then hold until you come back
- 15 MB installed. Dinky style.
What others don't do
- Actually changes the format (images) — ImageOptim squeezes your JPEG and hands it back as a JPEG. Dinky converts to WebP, AVIF, lossless PNG, or HEIC (or JPEG when you need it), which is where 30–80% of the real savings live. Optimage does this too, but costs money and weighs 62 MB.
- Images, videos, and PDFs in one app — most "compression" apps stop at images. Dinky also re-encodes video to MP4 (H.264 or HEVC) with quality presets, and shrinks PDFs by flattening (default) or preserving structure with qpdf when you need selectable text — with optional Vision OCR on scan-like documents before that step. One drop zone, three file types, same workflow.
- Results you can act on — most compression apps give you a done screen you can't do anything with. Dinky's results list works like Finder: select files, drag them somewhere else, double-click to open, right-click to remove individual items.
- Watch folders that actually fit a workflow — point Dinky at a folder and new files get compressed automatically. Global, or per-preset with its own folder, format, and destination — so screenshots, client video exports, and PDF receipts can all land in different places and come out optimized.
- Presets for everything, not just quality — save format, quality, max width, scale, max file size, destination, watch folder, and filename rules together, then apply in one click. Different presets for blog images, social video, and CMS PDFs without touching settings each time.
- Notifications with a personality — other apps either don't notify at all or send a generic "Done." Dinky's notification (and chime) changes based on how many files you compressed and how much you saved. Small things, but they add up.
- Built into macOS — Finder Quick Action, "Open with" handler, clipboard paste with ⌘⇧V, Dock-icon drops, and a native Apple Shortcuts action for automations. No browser tab, no upload, nothing leaves your Mac.
- Free, open source, and tiny — Optimage is $15 and image-only. ImageOptim is free but lossless and image-only. Dinky is free, open source, handles images + video + PDFs, converts formats, and at 15 MB fits in a fraction of the space Optimage takes up.
Why it exists
Optimage crashed. Instead of finding a replacement, I figured it was a good excuse to build my own — this was my first macOS app.
I liked Squoosh but didn't want to be in a browser every time I needed to compress something. I wanted something that lived on my Mac, stayed out of the way, and just worked.
How it works
Built entirely in Swift and SwiftUI, targeting macOS 15 Sequoia and later. On macOS 26 Tahoe you get the full liquid glass UI; on Sequoia it uses the frosted material fallback. No Electron, no web views, no third-party UI frameworks. Image compression logic is shared with an in-tree Swift package (DinkyCoreImage) and optional dinky CLI — no network-downloaded dependencies. The whole app is 15 MB, still appropriately dinky.
Compression runs through native Swift concurrency, with jobs in parallel off the main thread. Images use bundled CLI encoders (cwebp, avifenc, oxipng) plus ImageIO for HEIC and JPEG output. Video uses AVFoundation export. PDFs use PDFKit plus ImageIO for flattening, and bundled qpdf (then PDFKit) on the preserve-text path; Vision can add an invisible text layer on scan-like inputs before those steps when OCR is enabled. See docs/PDF_COMPRESSION.md for modes, metrics logging (pdf_metrics in Console), and manual fixture checks. Multiple files can run concurrently according to your batch speed setting; heavy PDF flattening and HEIC transcoding run off the actor so parallel slots stay useful, and AVIF encoder threads scale with batch width so many concurrent jobs don’t each claim all cores.
The sidebar stores preferences via @AppStorage. The results list updates live as each file finishes. Error details are tappable. The idle animation on the drop zone runs through three choreographed variants then holds — portrait, landscape, and wide cards dragged in by a pinch cursor from whatever corner the window is closest to.
The app registers as an "Open with" handler and exposes a Finder Quick Action so you can compress without opening the app manually.
Built with
- SwiftUI (macOS 15+, liquid glass on macOS 26)
- AppKit for window and event integration
- Swift concurrency for compression, with jobs in parallel off the main thread
@AppStorage/UserDefaultsfor preferencesNSServicesfor Finder integration- Claude Sonnet 4.6, Opus 4.7, and Cursor
Compression engines
Dinky is a native front-end for these pieces:
- cwebp — Google's WebP encoder (BSD)
- avifenc — Alliance for Open Media's AVIF encoder (BSD)
- oxipng — lossless PNG optimizer in Rust (MIT)
- qpdf — structural PDF optimization on the preserve-text path (Apache 2.0)
- PDFKit, Core Graphics, ImageIO, and Vision — page flatten, PDF rewrite, HEIC and JPEG stills, and optional OCR on scans in macOS
- AVFoundation — video export
Install
Download the DMG and drag Dinky to Applications.
Since the app isn't notarized, macOS may (will probably) block it on first launch. To open it anyway, try launching it once, then go to System Settings → Privacy & Security, scroll down, and click Open Anyway.
Or skip that entirely and run this in Terminal:
xattr -dr com.apple.quarantine /Applications/Dinky.app
Updating Dinky is one click — no browser, no re-drag, no quarantine step. A banner appears when a new version is out; click Install Update and the app downloads, installs, and relaunches on its own.
CLI and local image API (optional)
The same compression engines as the app are shipped as a small Swift package in this repo (DinkyCoreImage/). Build the dinky binary with SwiftPM and run dinky compress-image, dinky compress-video, dinky compress-pdf, dinky ocr, dinky serve (loopback-only HTTP with a bearer token), or dinky make-fixtures (developer-only sample files for testing). See docs/local-cli.md for flags and JSON schemas.
- Docs: docs/local-cli.md — flags, exit codes, JSON schema (
dinky.image.compress/1.0.0), andserveendpoints. - Encoders must be on disk (
DINKY_BIN,bin/next to the binary, or Homebrewcwebp/avifenc/oxipng), matching how the app bundles them.
This is local-only (no cloud API). The website still has no public HTTP API; see site/llms.txt.
FAQ
Finder shows two Dinkys in “Open With” (different versions)
macOS lists every Dinky.app on disk in that menu, with the version in parentheses. If you still have an older copy somewhere, you will see both.
- Homebrew: old versions stay under Homebrew’s Caskroom until pruned. Run
brew cleanup dinky(orbrew cleanup). - Find every copy: in Terminal:
mdfind 'kMDItemCFBundleIdentifier == "com.dinky.app"'
Delete or move any extra Dinky.app you do not need (for example an old one left in Downloads). Log out and back in if the menu still looks stale.
How do I access the CLI or use Dinky with AI agents?
Use the optional local package in this repo:
cd DinkyCoreImage
swift build -c release
./.build/release/dinky --help
- One-shot automation: run
dinky compress ... --json - Repeated automation/agents: run
dinky serveand callhttp://127.0.0.1:17381withAuthorization: Bearer <token>(printed at startup, or pin one withDINKY_SERVE_TOKEN) andContent-Type: application/json
See docs/local-cli.md for commands, JSON schemas, and examples.