個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Your files' big brother: drag apps onto file types and open them from Finder's right-click menu. Native macOS app.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
The “Open with Code” menu your Mac never had.
Right‑click any folder in Finder → open it in VS Code, Cursor, Zed, Terminal, iTerm, Ghostty, or any app you like.
On Windows, VS Code puts “Open with Code” in the right‑click menu. On a Mac you get… dragging folders onto the Dock, or cd‑ing around to type code .. Finder's Open With menu doesn't even appear for folders.
OpenAbi fixes that. Tell it once which apps belong to folders (or to .md, .json, .xcodeproj, anything), and they're one right‑click away forever.檢視完整 README ↗The “Open with Code” menu your Mac never had. Right‑click any folder in Finder → open it in VS Code, Cursor, Zed, Terminal, iTerm, Ghostty, or any app you like.
Website · Download · Report a bug
On Windows, VS Code puts “Open with Code” in the right‑click menu. On a Mac you get… dragging folders onto the Dock, or cd‑ing around to type code .. Finder's Open With menu doesn't even appear for folders.
OpenAbi fixes that. Tell it once which apps belong to folders (or to .md, .json, .xcodeproj, anything), and they're one right‑click away forever.
abi /ah‑bee/ (Turkish): big brother. The one who always knows what to do with your stuff.
.app onto Folders, All Files, or a specific type like .md, .json or .xcodeproj.Download: grab OpenAbi.dmg, open it, drag OpenAbi into Applications, and launch it once.
Homebrew:
brew tap firatmelih/openabi https://github.com/firatmelih/OpenAbi
brew install --cask openabi
On first launch, OpenAbi turns on its Finder extension for you; the green dot at the top of the window confirms it. Then click Add All to Folders in Quick setup, or drag in your own apps.
| You add… | to… | Right‑click in Finder shows |
|---|---|---|
| Visual Studio Code | Folders | Open in Visual Studio Code on every folder |
| Terminal / iTerm / Ghostty | Folders | Open in Terminal, which opens a shell right there |
| Typora | .md | Open in Typora on Markdown files |
| Xcode | .xcodeproj | Open in Xcode on project bundles |
| TextEdit | All Files | Open in TextEdit on any file |
md, json, yml) and press Return.You don't need to keep OpenAbi running. Finder loads the extension by itself, and changes apply immediately.
OpenAbi uses Sparkle, the standard updater for Mac apps:
OpenAbi only goes online to check for updates (the appcast.xml feed and release notes on GitHub Pages) and to download them from GitHub Releases.
┌──────────────────────┐ rules.json (App Group) ┌──────────────────────────┐
│ OpenAbi.app │ ─────────────────────────▶ │ Finder Sync extension │
│ SwiftUI + Sparkle │ │ context menu & toolbar │
└──────────┬───────────┘ └────────────┬─────────────┘
│ installs │ runs on click
▼ ▼
~/Library/Application Scripts/…/open-with.sh ──▶ open -a "<App>" <items…>
Finder extensions must be sandboxed, and a sandboxed process isn't allowed to ask another app to open your files. So the main app installs a one‑line helper script into the extension's Application Scripts folder. macOS runs scripts from that folder outside the sandbox (via NSUserUnixTask). The script is just open -a.
Your rules stay on your Mac in ~/Library/Group Containers/XQH36L7379.com.melihfirat.OpenAbi/rules.json.
Requires Xcode 26 or later (the icon is an Icon Composer .icon). Sparkle is pulled in by Swift Package Manager.
git clone https://github.com/firatmelih/OpenAbi.git
cd OpenAbi
open OpenAbi.xcodeproj # then Run the "OpenAbi" scheme
For your own fork, set your team in Signing & Capabilities for both targets, and replace the XQH36L7379 App Group prefix in Config/*.entitlements and Shared/Rules.swift.
MARKETING_VERSION and CURRENT_PROJECT_VERSION (Sparkle compares the build number).docs/release-notes/<version>.html.docs/appcast.xml:
NOTARY_PROFILE=OpenAbi scripts/release.sh
gh release create v<version> dist/OpenAbi.dmg), then commit and push docs/appcast.xml and bump version/sha256 in Casks/openabi.rb.The Sparkle private key lives in the maintainer's Keychain (account OpenAbi). The public key is SUPublicEDKey in Config/OpenAbi-Info.plist.
| Path | What's inside |
|---|---|
OpenAbi/ | The app: SwiftUI window, presets, rule editing, Sparkle updater, helper-script installer, app icon |
FinderExtension/ | The Finder Sync extension: context menu, toolbar button, daily update check |
Shared/ | Rule model and storage used by both targets |
Config/ | Entitlements and Info.plists |
Casks/ | Homebrew cask |
docs/ | The website, update feed, and release notes (GitHub Pages) |
Quit OpenAbi and move it to the Trash (or brew uninstall --zap --cask openabi). To remove its leftover data by hand:
rm -rf ~/Library/Group\ Containers/XQH36L7379.com.melihfirat.OpenAbi \
~/Library/Application\ Scripts/com.melihfirat.OpenAbi.FinderExtension
MIT © Melih Firat