Skip to content

TetsuakiBaba/GenGo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GenGo

GenGo Logo

GenGo is a native macOS app for processing selected text with Large Language Models. It lives in the menu bar, watches global shortcuts, and lets you translate, proofread, rewrite, or generate text without leaving the app you are working in.

Version License Platform Swift

Status

GenGo is now developed and supported as a Swift / SwiftUI macOS application.

The older Electron implementation remains in electron/ for historical reference only. It is not the supported application, and new fixes or features should target the Swift app under swift/.

The project version is defined in one place: docs/version.json. The README badge, documentation site, and Swift release scripts read from that file.

Features

Native macOS App

  • Menu bar app built with Swift and SwiftUI
  • Global shortcuts for preset prompts and on-demand prompts
  • Selected text capture and in-place replacement
  • macOS accessibility integration for copy and paste workflows

LLM Providers

  • LM Studio: choose from models loaded in LM Studio
  • Ollama: choose local or cloud models from the Ollama catalog
  • Apple Intelligence: available on supported macOS versions
  • OpenAI-compatible APIs: use a remote endpoint and API key when needed

Prompt Workflows

  • Preset prompts with custom shortcuts
  • On-demand prompt mode
  • Text generation mode when no text is selected
  • Default preset for Japanese / English translation
  • Up to 5 preset prompts

Privacy Options

  • Use LM Studio, Ollama, or Apple Intelligence for local-first workflows
  • Use remote OpenAI-compatible providers only when explicitly configured
  • Settings are stored locally in Application Support

Installation

Download the latest macOS release from:

https://github.com/TetsuakiBaba/GenGo/releases

On first launch, macOS may ask for confirmation because the app was downloaded from the internet. GenGo also needs Accessibility permission so it can read selected text and paste the processed result back into the active app.

Quick Start

1. Install an LLM Provider

Choose one provider:

Ollama

  1. Install Ollama.
  2. Create an account from https://ollama.com/.
  3. Sign in from the Ollama app Settings.
  4. Make sure Cloud is enabled if you want to use Ollama cloud models.

LM Studio

  1. Install LM Studio.
  2. Download a model from Discover or search.
  3. Load the model in LM Studio and start the local server.

2. Configure GenGo

Open GenGo from the menu bar and choose Settings.

  • Select the LLM provider.
  • Select a model from the available model list.
  • Click the connection test button.
  • Save after the connection succeeds.

3. Use the Default Shortcut

  1. Select text in any macOS application.
  2. Press Ctrl+1.
  3. Japanese text is translated into English, and English text is translated into Japanese.
  4. Click Apply or press Command+Enter to replace the selected text.

If you press a shortcut without selecting text, GenGo opens text generation mode.

Default Shortcuts

Shortcut Action
Ctrl+1 Default Japanese / English translation preset
Ctrl+0 On-demand prompt / text generation

Shortcuts can be changed in the Settings panel.

Build from Source

Requirements:

  • macOS
  • Xcode command line tools
  • Swift Package Manager

Run the Swift app locally:

git clone https://github.com/TetsuakiBaba/GenGo.git
cd GenGo/swift
swift build
swift run GenGoSwift

Release Build

Swift release packaging scripts live under swift/scripts/.

Create local release artifacts:

cd swift
chmod +x scripts/package-macos-app.sh scripts/release-macos.sh
SIGN_IDENTITY="Developer ID Application: YOUR NAME (TEAMID)" \
NOTARIZE_TARGET=none \
scripts/release-macos.sh

Artifacts are written to swift/dist/:

  • GenGo.app
  • GenGo-<version>-macos-<arch>.zip
  • GenGo-<version>-macos-<arch>.dmg
  • SHA-256 checksum text files

For notarized releases and GitHub Actions setup, see swift/README.md.

GitHub Actions Release Package

The repository also includes a GitHub Actions workflow at .github/workflows/swift-release.yml. It builds signed and notarized Swift macOS release packages on the macos-26 runner.

Required repository secrets:

  • MACOS_CERTIFICATE_P12_BASE64
  • MACOS_CERTIFICATE_PASSWORD
  • MACOS_KEYCHAIN_PASSWORD
  • MACOS_SIGNING_IDENTITY
  • APPLE_ID
  • APPLE_TEAM_ID
  • APPLE_APP_SPECIFIC_PASSWORD
  • SPARKLE_PUBLIC_ED_KEY
  • SPARKLE_PRIVATE_KEY_BASE64

To test package creation without publishing a GitHub Release:

  1. Open Actions on GitHub.
  2. Select Swift macOS Release.
  3. Click Run workflow.
  4. Optionally enter a version. If omitted, the workflow uses docs/version.json.
  5. Download the generated workflow artifact after the run finishes.

The workflow artifact contains:

  • GenGo-<version>-macos-<arch>.zip
  • GenGo-<version>-macos-<arch>.dmg
  • SHA-256 checksum text files
  • swift-appcast.xml

To create a draft GitHub Release with the same package files, push a Swift release tag:

VERSION="$(/usr/bin/plutil -extract version raw -o - docs/version.json)"
git tag "swift-v${VERSION}"
git push origin "swift-v${VERSION}"

The tag must start with swift-v. After the workflow completes, review the generated draft release on GitHub and publish it manually. Publishing a swift-v* release also updates docs/swift/appcast.xml from the released swift-appcast.xml.

Project Structure

GenGo/
├── swift/                  # Supported Swift / SwiftUI macOS app
│   ├── Package.swift
│   ├── Sources/GenGoSwift/
│   └── scripts/
├── docs/                   # Documentation website / GitHub Pages
├── icons/                  # Shared application icons
├── electron/               # Legacy Electron implementation, unsupported
└── README.md

Configuration Files

The Swift app stores settings in:

~/Library/Application Support/GenGo/settings.json

Older GenGoSwift settings are migrated when possible. Electron settings are separate and are not the supported configuration path.

Documentation

Contributing

Contributions are welcome. Please target the Swift macOS app unless a change is explicitly about archived Electron code or documentation cleanup.

  1. Fork the repository.
  2. Create a feature branch.
  3. Make changes under swift/, docs/, or shared assets as appropriate.
  4. Run the relevant Swift build or documentation checks.
  5. Open a pull request.

Support

If you encounter a problem:

Electron-specific issues are not currently supported.

License

This project is licensed under the MIT License. See LICENSE for details.

Author

Tetsuaki Baba