macOS Ventura 13.0 or above
- Download Selected.zip from releases.
- Unzip it, and move it to the Applications directory.
- For the first installation, you need to set up Accessibility features to allow this app to capture selected text.
-
Safari: you must enable 'Allow JavaScript from Apple Events' in the Developer section of Safari Settings to use 'do JavaScript'. https://developer.apple.com/documentation/safari-developer-tools/enabling-developer-features
-
Chrome: you need to click on the menu bar: View - Developer - Allow JavaScript from Apple Events.
A Mac tool that allows various operations on selected text.
When you select text with the mouse or through the keyboard (cmd+A, cmd+shift+arrow keys), the Selected toolbar will automatically pop up, allowing quick text operations such as copying, translating, searching, querying GPT, reading text aloud, opening links, keyboard operations, executing commands, calculating expression or sharing the text, etc. It also supports custom extensions.
- Allows for the customization of operation lists for different applications. (This can be configured in "Settings - Applications")
- Supports customizing the addresses and keys for OpenAI, Gemini and Claude API. The translation and inquiry GPT functions depend on this. It also supports OpenAI and Claude's function calling. You can have GPT perform searches, fetch web content, write emails, or control your macOS, and virtually anything else.

- Supports custom extensions.
Some applications have already been tested, while others that have not been tested may also be supported.
See https://github.com/sakeven/Selected/wiki/Supported-Applications
This can be configured in "Settings - Applications".
- Supports adding currently running applications (does not support deleting an application)
- Add through "Add - Select an Application"
- Supports setting a series of actions for an application
- Add through "Add - Select an Action"
- Supports deleting an action
- Supports drag-and-drop to rearrange the order of actions
| Action | action.identifier | function | icon |
|---|---|---|---|
| Web Search | selected.websearch | Search via https://www.google.com/search. It can be customized in the settings page. | 🔍 |
| OpenLinks | selected.openlinks | Open all URL links in the text at the same time. | 🔗 |
| Copy | selected.copy | Copy the currently selected text. | 📃 |
| Speak | selected.speak | Read the text. If an OpenAI API Key is configured, use OpenAI's TTS (Text-to-Speech) service to generate speech, otherwise use the system's text reading functionality. | |
| 翻译到中文 | selected.translation.cn | Translate to Chinese. If the selected text is a word, translate the detailed meaning of the word. An API key must be configured in the settings. | 译中 |
| Translate to English | selected.translation.en | Translate to English. You need to configure the OpenAI or Gemini API key in the settings. | 🌍 |
| Share | (none) | Share the selected text by macOS share extension. | 📤 |
| Calculator | (none) | Auto calculate the expression like 1+2/3*4-5 when you selected it. | (none) |
The extension is placed in the Library/Application Support/Selected/Extensions directory, with one directory per extension.
Inside the extension directory, there must be a config.yaml file that describes the relevant information about the extension.
Example:
info:
icon: file://./go-logo-white.svg
name: Go Search
enabled: true
actions:
- meta:
title: GoSearch
icon: file://./go-logo-white.svg
identifier: selected.gosearch
after: ""
url:
url: https://pkg.go.dev/search?limit=25&m=symbol&q={text}
Each action can and must be configured with only one of the following: action.url, action.service, action.keycombo, action.gpt, or action.runCommand.
See https://github.com/sakeven/Selected-Extensions
This tool is a hobby project of the author and is still under rapid development and iteration, with incomplete features. Everyone is welcome to submit suggestions for features and implementation code.
This project welcomes any contributions.
As the author is a complete beginner in Swift, SwiftUI, and macOS App development, all implementations are acquired through GPT, searching, and reading the code and documentation of related projects (EasyDict, PopClip). Therefore, if you wish to contribute code, please clearly explain how the code is implemented and why it is implemented in this way, to help the author understand your code.


