A collection of PopClip extensions and snippet extensions for macOS. The
repository contains the editable sources in src/ and locally buildable
packages in dist/.
Open a .popclipextz file from dist/ to install an extension in
PopClip. Snippet extensions use the .popcliptxt format.
PopClip deletes a .popclipextz file after installation (official documentation). Download or copy packages before opening them to keep the repository copy. ./build.sh install NAME opens a temporary copy and retains the built file in dist/. Unsigned JavaScript extensions with network permissions, including Emoji Append, show an installation warning.
These 16 packages are configured for submission to the PopClip Extensions Directory:
| Extension | Description | Source | Package |
|---|---|---|---|
| Comment Switcher | Toggle line comments with a configurable prefix. | Source | Install |
| DeepL Translator | Translate with the DeepL app or website. | Source | Install |
| Emoji Append | Append 1–3 contextual emojis with a configurable API; preserve the original text. | Source | Install |
| LinguaDock Translate | Translate selected text with the LinguaDock app. | Source | Install |
| Format JSON | Format selected JSON with configurable indentation. | Source | Install |
| Password Generator | Generate configurable random passwords locally. | Source | Install |
| Markdown List | Convert lines to numbered or bulleted Markdown. | Source | Install |
| Mosaic Text | Replace text with a configurable mosaic character. | Source | Install |
| Multi-Line to Array | Convert lines into a JavaScript array. | Source | Install |
| Open GitHub Repo | Open a repository from AUTHOR/REPO or scoped npm package text. |
Source | Install |
| PinYin | Convert Chinese text to Pinyin or Zhuyin. | Source | Install |
| Color Conversion | Convert RGB and hexadecimal colors. | Source | Install |
| Text Repeater | Repeat text using a multiplier suffix. | Source | Install |
| Variable Name Convert | Convert between snake case and camel case. | Source | Install |
| Add to WordClip | Send selected text to WordClip. | Source | Install |
| ray.so | Generate a code image with ray.so. | Source | Install |
Each package has its own README with usage, options, privacy notes, and changelog:
- Comment Switcher
- DeepL Translator
- Emoji Append
- LinguaDock Translate
- Format JSON
- Password Generator
- Markdown List
- Mosaic Text
- Multi-Line to Array
- Open GitHub Repo
- PinYin
- Color Conversion
- Text Repeater
- Variable Name Convert
- Add to WordClip
- ray.so
These are standalone PopClip snippet extensions and are not included in the directory package glob:
-
ChatGPT Make PopClip Extension · Install
Send the selected request to the ChatGPT Chat Bar and ask it to generate an installable PopClip snippet. The ChatGPT macOS app and Accessibility permission for System Events are required.
Emoji Append for Raycast provides a regular hotkey command: select text, run Append Contextual Emoji, and paste back the original text with contextual emojis. Configure the API Base URL, API key, model and emoji limit independently in each extension. It uses an OpenAI-compatible Chat Completions API and does not require Raycast AI Commands or Pro. Run pnpm install --frozen-lockfile && pnpm dev in /Users/seven/Documents/raycast-extensions/emoji-append/ to add the command locally.
Rebuild all 16 packages and 3 snippets, replacing same-name files in dist/:
for package in src/*.popclipext; do
./build.sh build "$(basename "$package" .popclipext)"
done
for snippet in ChatGPTMakePopclipExt FancyText Search-in-NPM; do
./build.sh build "$snippet"
donebuild.sh builds, installs, creates, and removes PopClip packages and snippets.
Run it without arguments to open the interactive menu, which provides these
actions:
- Build a package
- Build and install a package
- Build a snippet
- Build and install a snippet
- Create a package from a template
- Create a snippet from a template
- Remove source and generated files after confirmation
./build.shFor direct commands, use the following:
./build.sh PinYin
./build.sh build PinYin
./build.sh install PinYin
./build.sh build FancyText
./build.sh create-package yaml NewExtension
./build.sh create-snippet javascript NewSnippet
./build.sh remove NewExtension
./build.sh help./build.sh NAME is shorthand for ./build.sh build NAME.
build NAME builds either src/NAME.popclipext/ or a snippet source in src/
and writes the result to dist/NAME.popclipextz or
dist/NAME.popcliptxt. install NAME builds the target and opens the
a temporary copy with macOS open for installation in PopClip, retaining the
original generated file in dist/.
The available package template formats are plist, yaml, json, and
module. The available snippet template formats are javascript,
typescript, and yaml. A module package contains a YAML configuration and
TypeScript source. Package names may contain letters, numbers, dots, hyphens,
and underscores.
Package builds validate that the package contains exactly one root Config
file and no more than 100 files, 1 MB per file, or 2 MB in total. remove NAME
deletes the matching source and generated files only after an interactive
confirmation. Run ./build.sh help to print the command reference.
The repository is configured by popclip-directory.yaml.
The PopClip Directory reads changed package folders when a new matching Git tag
is pushed, runs the Submission Check, and queues successful submissions for
manual review. See the official submission guide
for the workflow and requirements.