Skip to content
brookqinPublic

About

A Swift macOS Finder launcher for terminals, editors, and custom apps. No menu bar resident app.

Resources

Stars

7 stars

Watchers

1 watching

Forks

Repository files navigation

Gogo

English · 简体中文

Gogo

Open Finder selections in your favorite terminal, editor, or custom program.

Supports macOS 15.7 and later. Download the latest release from GitHub Releases.

Native Gogo settings in English

Finder menus

Context menu

Open with Gogo in the Finder context menu

Toolbar menu

Gogo Finder toolbar menu

Features

  • Configurable presets for Terminal, iTerm2, Ghostty, Visual Studio Code, Zed, Fork, Typora, and Xcode.
  • Custom application or executable paths and one argument per line.
  • Choose per launcher whether to show it directly in the Finder context menu or inside Open with Gogo. The submenu can be hidden without hiding direct launchers; the toolbar menu is unchanged.
  • Finder menus cover visible mounted volumes, including external drives, and refresh when drives are connected or ejected.
  • Drag to reorder launchers; click a row to edit.
  • Automatically follows the system language, with English and Simplified Chinese overrides.
  • Copy selected paths, or the current folder path when nothing is selected. Copy Current Path can appear directly in the context menu or inside Open with Gogo; multiple paths are separated by newlines.
  • No menu bar icon or login item.

Installation

Installing a packaged build does not require Xcode or an Apple developer account. Gogo is currently not notarized by Apple, so macOS may block the first launch.

  1. Download the latest release from GitHub Releases. Choose arm64 for Apple Silicon or x86_64 for Intel, open the DMG, then drag Gogo.app into Applications.
  2. Open Gogo. If macOS cannot verify the developer, go to System Settings → Privacy & Security → Open Anyway, then confirm Open. Only proceed if you trust the download source. See Apple’s instructions.
  3. In Gogo, open General → Finder Extension → Manage Extensions and enable its Finder extension. The System Settings location may vary by macOS version.
  4. In Finder, choose View → Customize Toolbar and add the Gogo button. macOS requests file access when needed during use.

Build

Requires Xcode and system Python 3; no third-party runtime dependencies. Initially compiled using Xcode 27.

swift test
./scripts/build.sh CODE_SIGNING_ALLOWED=NO

The script generates gogo.xcodeproj and builds .build/xcode/Build/Products/Debug/Gogo.app. Unsigned builds only establish compilation.

For isolated settings UI preview:

codesign --force --sign - --entitlements Config/Finder.entitlements .build/xcode/Build/Products/Debug/Gogo.app/Contents/PlugIns/GogoFinder.appex
codesign --force --sign - --entitlements Config/Gogo.entitlements .build/xcode/Build/Products/Debug/Gogo.app
open -n .build/xcode/Build/Products/Debug/Gogo.app --args --preview

Preview configuration lives under gogo-preview/configuration.json in the system temporary directory and does not configure the Finder extension.

Extension not listed

A settings preview does not establish Finder registration. Keep the extension's sandbox entitlement when signing: re-signing with only codesign --sign - removes it, and PlugInKit rejects the extension with plug-ins must be sandboxed.

Install the app in /Applications, open the installed copy, then check System Settings → General → Login Items & Extensions → By App → Gogo. On the tested macOS 27 build, Finder Sync appears under the File Providers label. Enablement is a separate user choice.

For a local development registration check:

pluginkit -a /Applications/Gogo.app/Contents/PlugIns/GogoFinder.appex
pluginkit -m -A -D -v -i cn.053x.gogo.finder

Arguments

  • Open files with application uses LaunchServices and may reuse the running application.
  • Application with arguments starts a new instance so arguments are delivered at launch.
  • Executable with arguments runs an absolute executable path with a working directory, without a shell.

Use {paths} on its own line for selected paths, one argument per item. Use {directory} for the selected directory or a file's parent directory. Do not add shell quotes. Tilde, environment variables, globbing, and shell commands are not expanded. Argument-based launchers currently require a selection that resolves to one working directory; document launchers allow multiple directories.

Configuration UI

Drag launcher rows to change their order; changes are saved when you drop. Click a row to edit it.

Click Add Launcher to create a custom launcher. Use the arrow beside it to restore a removed preset without changing existing launchers.

In Finder, choose whether to show the Open with Gogo submenu and whether to place Copy Current Path directly in the context menu. Hiding the submenu leaves direct launchers and a direct Copy Current Path item available. Toolbar settings are independent.

Gogo Finder settings in English

Choose Follow System, English, or Simplified Chinese in General.

Contributing

Core models and argument tests are under Sources/GogoCore and Tests/GogoCoreTests. The host UI is under Sources/Gogo; the thin Finder extension is under Sources/GogoFinder. Translation resources are in Resources/en.lproj and Resources/zh-Hans.lproj.

Selected design · Validation record

Acknowledgments

Inspired by the workflow of OpenInTerminal. Gogo is independently implemented in Swift.

License

MIT.

About

A Swift macOS Finder launcher for terminals, editors, and custom apps. No menu bar resident app.

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages