Skip to content

About

A couple of my PopClip extensions and a simple command line tool for creating PopClip extensions.

Topics

Resources

Stars

73 stars

Watchers

4 watching

Forks

Repository files navigation

PopClip Extensions

English | 简体中文 | 繁體中文 | 日本語

A collection of PopClip extensions and snippet extensions for macOS. The repository contains the editable sources in src/ and locally buildable packages in dist/.

Install

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.

Extensions

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:

Snippets

These are standalone PopClip snippet extensions and are not included in the directory package glob:

Raycast command

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.

Build

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"
done

build.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.sh

For 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.

Directory submission

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.

References

About

A couple of my PopClip extensions and a simple command line tool for creating PopClip extensions.

Topics

Resources

Stars

73 stars

Watchers

4 watching

Forks

Used by

Contributors

Languages