Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blissett

Blissett is a small native macOS menu-bar app for rewriting selected text with a configurable LLM style. It supports OpenAI, Anthropic, Google Gemini, OpenAI-compatible endpoints, and local Ollama models.

Blissett suggestion preview

Build and launch

Requirements: macOS 13 or later and Apple’s command-line developer tools.

cd /path/to/blissett
./scripts/build-app.sh
open dist/Blissett.app

The project build offers to install and relaunch the canonical copy at ~/Applications/Blissett.app. For repeat builds, ./scripts/install-app.sh builds, verifies, and replaces that installed copy directly.

Blissett appears only in the menu bar. On first use:

  1. Open the Blissett menu and choose Settings….
  2. Under Providers, configure an endpoint/model and save the API credential. Credentials are stored only in macOS Keychain. Ollama needs no credential.
  3. Use Test connection to verify the provider and model.
  4. Under Styles, edit the included styles or add a named style, choose its provider/model, and choose which style ⌘⇧B uses.
  5. Select editable text in any app and choose a direct action such as Rewrite: Professional from the menu-bar icon. ⌘⇧B immediately uses the default style chosen in Settings.
  6. macOS will ask for Accessibility access. Enable the installed ~/Applications/Blissett.app in System Settings → Privacy & Security → Accessibility, then return to Blissett; it checks the grant immediately.
  7. Review the suggestion in the small preview beside the selection, then choose Apply. Blissett returns to the original app, restores the saved selection, and replaces it directly. Copy remains a secondary action for protected or unsupported editors.

Quit from Blissett menu → Quit Blissett. No universal right-click service is included in this first version; the global shortcut is the reliable cross-app trigger.

Accessibility identity

Authorize and launch the canonical ~/Applications/Blissett.app. Blissett offers to install itself there when a project build is launched. If an older Blissett row looks enabled but the app reports both a denied preflight and apiDisabled, remove every old Blissett row, click +, and select the installed app that Blissett highlights. Toggling an older row cannot replace the code requirement stored by macOS.

Accessibility setup is not part of the normal menu. If macOS later revokes access, Blissett shows a focused blocking message with a button for the correct Settings pane. Internal probes and replacement logs remain available for development without cluttering normal use. Build/install scripts refuse to replace a running copy.

For repeat local development, run ./scripts/setup-local-signing.sh once. It explains and requests confirmation before creating a self-signed identity in the login Keychain and trusting it only for code signing on this Mac. Later builds detect and reuse that identity automatically. This is a local development identity, not a Developer ID and not suitable for distribution. You can instead set BLISSETT_CODESIGN_IDENTITY to an existing Apple Development or Developer ID certificate.

Privacy

Cloud styles send the selected text and rewrite instruction to the chosen provider. An Ollama style using the default localhost endpoint keeps inference on the Mac. The app processes text only when explicitly triggered and does not store rewritten text.

Blissett saves the original target app, editable element, window, and selection range. On Apply it restores that context, then uses macOS Accessibility replacement where supported. Rich-text editors that reject direct replacement use a process-targeted native Paste after the original selection is restored. Blissett restores all captured clipboard formats afterward. macOS may still block protected fields, Secure Input contexts, or custom editors; in those cases Blissett leaves Copy available.

Development build check

On systems where the newest command-line SDK does not match the installed Swift compiler, this checkout’s Mac also has the compatible macOS 15.4 SDK. Use:

SDKROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX15.4.sdk \
CLANG_MODULE_CACHE_PATH=/tmp/blissett-clang-cache \
SWIFTPM_MODULECACHE_OVERRIDE=/tmp/blissett-swiftpm-cache \
swift build --disable-sandbox

Set BLISSETT_SDKROOT when running scripts/build-app.sh to choose another SDK explicitly.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages