Skip to content

Releases: mk668a/GhostType

v0.3.1 — Menu bar status fix

22 May 10:20

Choose a tag to compare

⚠️ Not signed/notarized yet. macOS will block the first launch.
Open via System Settings > Privacy & Security > "Open Anyway", or run:
xattr -dr com.apple.quarantine /Applications/GhostType.app

What's fixed

  • Menu bar "Connection: Unknown" no longer lingers after a successful Test Connection. (#1) The Settings panel and the menu-bar indicator now share a single connection-state source.

Under the hood

  • Add LLMClient.probe() reusing the bounded-timeout session (8s/10s) and the existing URLErrorLLMError mapping. Removes two URLSession.shared direct calls.
  • Add CompletionEngine.probe() which routes the result through settings.connectionState (resets the circuit breaker on success, marks .unreachable on failure without advancing the failure counter — explicit user probes shouldn't push auto-trigger toward suppression).
  • Both Test Connection buttons (Model tab and Setup tab) now call engine.probe().

Install

  • Download GhostType-0.3.1.dmg below, or wait — existing 0.3.x users get this via the in-app updater.

v0.3.0 — Auto-updates

21 May 00:02

Choose a tag to compare

⚠️ Not signed/notarized yet. macOS will block the first launch.
Open via System Settings > Privacy & Security > "Open Anyway", or run:
xattr -dr com.apple.quarantine /Applications/GhostType.app

GhostType v0.3.0 ships with built-in auto-updates powered by Sparkle 2. From this version onward, the app checks for new releases in the background and surfaces them as a familiar update dialog — no more polling the Releases page by hand.

⚠️ Users on 0.1.0 / 0.2.0 will not get an auto-update prompt because those builds don't embed Sparkle. Please download this DMG manually one last time; future releases (0.3.1+) will update automatically.

Highlights

  • Sparkle 2.9.2 integrated via Swift Package Manager and embedded as a signed framework
  • Scheduled background check every 24 hours (SUScheduledCheckInterval=86400)
  • Manual check from the menu bar → Check for Updates… (新: アップデートを確認…)
  • Ed25519-signed appcast at raw.githubusercontent.com/mk668a/GhostType/main/appcast.xml — every DMG is signed with a private key kept in the build machine's macOS Keychain, and verified on the client against the public key embedded in Info.plist
  • First-launch consent dialog asks whether automatic checks should be enabled (Sparkle standard UI)

Release pipeline

scripts/create-dmg.sh now builds, signs (tools/sparkle/sign_update), and updates appcast.xml in a single pass. See tools/sparkle/README.md for the one-time bootstrap on a new build machine.

Install

  1. Download the DMG attached to this release
  2. Open it and drag GhostType into Applications
  3. Launch from Applications

macOS may show an "unidentified developer" warning on first launch.
Right-click the app → Open, or open System Settings → Privacy & Security and click Open Anyway.

Requirements

  • macOS 14 (Sonoma) or later
  • An OpenAI-compatible inference server reachable from your Mac (LM Studio, Ollama, llama.cpp, vLLM, mlx-lm, etc.)

Full changelog: v0.2.0...v0.3.0

v0.2.0 — Endpoint robustness

20 May 23:45

Choose a tag to compare

⚠️ Not signed/notarized yet. macOS will block the first launch.
Open via System Settings > Privacy & Security > "Open Anyway", or run:
xattr -dr com.apple.quarantine /Applications/GhostType.app

GhostType v0.2.0 focuses on how the app behaves when the LLM endpoint is slow, unreachable, or misconfigured. The goal: an unresponsive server should never feel like the whole app froze.

Highlights

  • Tighter request timeouts. Completion requests now use a dedicated URLSession with an 8-second request timeout and a 10-second resource timeout (replacing the previous 30-second per-request timeout). A stuck endpoint can no longer stall the UI for half a minute.
  • Failure circuit breaker. After three consecutive network failures, auto-trigger is paused for 30 seconds. The manual shortcut (default ⌘⌥\) always bypasses the breaker, and a successful request or any endpoint/model change resets it immediately.
  • Connection status in the menu bar. A new ConnectionState (unknown / ok / suppressed / unreachable) drives a colored dot in the menu and swaps the status-bar icon between text.bubble and exclamationmark.bubble, so you can tell at a glance whether GhostType can reach its endpoint.
  • Errors stay visible. Completion errors used to clear back to Ready after two seconds, hiding misconfiguration. Errors now stay on screen until the next successful completion.
  • Better error classification. LLMError.timedOut is split from serverNotRunning, all messages are localized (English / Japanese), and HTTP error bodies are truncated to 200 characters so the status line never gets flooded.

Upgrade notes

  • No settings migration is required.
  • No new permissions are requested.
  • Existing keyboard shortcuts and endpoints are preserved.

Install

  1. Download the DMG attached to this release
  2. Open it and drag GhostType into Applications
  3. Launch from Applications

macOS may show an "unidentified developer" warning on first launch.
Right-click the app → Open, or open System Settings → Privacy & Security and click Open Anyway.

Requirements

  • macOS 13 (Ventura) or later
  • An OpenAI-compatible inference server reachable from your Mac (LM Studio, Ollama, llama.cpp, vLLM, mlx-lm, etc.)

Full changelog: v0.1.0...v0.2.0

v0.1.0 — Initial Release

14 May 02:09

Choose a tag to compare

⚠️ Not signed/notarized yet. macOS will block the first launch.
Open via System Settings > Privacy & Security > "Open Anyway", or run:
xattr -dr com.apple.quarantine /Applications/GhostType.app

First public release of GhostType — AI-powered keyboard completion engine for macOS.

Features

  • GitHub Copilot-style ghost text completions in any app on macOS
  • Works with any OpenAI-compatible server (LM Studio, Ollama, llama.cpp, vLLM, etc.)
  • Manual trigger via keyboard shortcut, plus optional auto-trigger
  • Per-app exclusion / manual-only lists
  • Customizable shortcuts, model parameters, and appearance
  • Bilingual UI: English and Japanese (follows system language by default)
  • Optimized for low latency on Apple Silicon

Install

  1. Download GhostType-0.1.0.dmg below
  2. Open the DMG and drag GhostType into Applications
  3. Launch from Applications and follow the first-launch setup guide

macOS may show an "unidentified developer" warning on first launch.
Right-click the app → Open, or open System Settings → Privacy & Security and click Open Anyway.

Requirements

  • macOS 13 (Ventura) or later
  • An OpenAI-compatible inference server reachable from your Mac

See the README for full setup instructions.