Skip to content

About

Select text to copy automatically. A tiny, local-only browser extension for Helium and desktop Chromium browsers.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

CopyOnSelect

Select text. It is already copied.

A tiny, free browser extension that brings terminal-style copy-on-select to Helium and other desktop Chromium browsers. A brief glass shimmer follows the selection after copying. Click the toolbar icon to turn it off or back on.

CopyOnSelect: selecting text, seeing the shimmer, and pasting it

No accounts. No tracking. No network requests. No runtime dependencies. Install it locally; nothing is published to an extension store.

Install

  1. Download the ZIP and extract it into a folder you will keep. Or clone:

    git clone https://github.com/ertyurk/CopyOnSelect.git
  2. Open your browser's extensions page using the table below.

  3. Enable Developer mode, click Load unpacked, and select the folder containing manifest.json.

  4. Pin CopyOnSelect from the extensions menu and reload existing webpages.

Desktop browser Extensions page Compatibility
Helium helium://extensions Tested on macOS
Brave brave://extensions Tested on macOS
Google Chrome chrome://extensions Expected to work; not tested
Microsoft Edge edge://extensions Expected to work; not tested
Vivaldi vivaldi://extensions Expected to work; not tested

Requires a browser based on Chromium 120 or newer with unpacked Manifest V3 extension support. This package is for desktop browsers; it is not built for Firefox, Safari, or mobile browsers. Managed browsers may restrict installation.

The shared Chromium extension format makes the untested browsers compatible in principle; that is not a claim of testing on every browser or operating system. See the installation guide for profiles, local files, updates, and troubleshooting.

Use

  • Drag, double-click, or triple-click to select text. It is copied as plain text with the selection's whitespace preserved.
  • A short shimmer confirms a successful copy. The native highlight stays intact.
  • Paste normally with ⌘V on macOS or Ctrl+V on Windows/Linux.
  • Click the toolbar icon to toggle ON / OFF. Each profile remembers its own setting; open webpages update immediately.

Works in normal webpage text, editable content, text fields, and permitted frames. Password fields and whitespace-only selections are ignored. Keyboard-only selection leaves your clipboard alone. Reduced-motion settings are respected.

Limits

  • HTTPS and other secure contexts only. Localhost is supported; ordinary insecure HTTP pages are left untouched. The extension uses the modern Clipboard API exclusively, with no deprecated copy commands.
  • Browser controls, internal pages, the Chrome Web Store, other extensions, and built-in PDF viewers cannot run this content script.
  • Closed shadow roots and custom canvas-based editors can hide selections from browser extensions. Embedded frames may also restrict clipboard writes.
  • Text fields do not expose selection rectangles, so their shimmer appears next to the mouse release point instead.
  • Local files require Allow access to file URLs. Incognito access is opt-in.

Privacy

Read the full privacy policy.

All code and assets are in this repository. The extension makes no network requests and contains no analytics, remote scripts, account system, clipboard reading, or storage of selected text.

Permission Purpose
clipboardWrite Write your selection to the system clipboard.
storage Save one local enabled boolean per browser profile.
Webpage content script access Detect selections on the pages you allow.

Browser installation warnings describe the capability to read and change webpage content because detecting selections and displaying feedback require page access. You can restrict site access in the extension's browser settings.

Selected text goes directly from the page's isolated content script to the clipboard. It is never sent to the background worker or stored by this extension. There is no automatic updater; updates are manual and reviewable.

Small on purpose

Vanilla JavaScript. No build step, framework, package installation, polling, mutation observer, mouse-move handler, or permanent animation loop.

Clipboard writes begin before selection geometry or feedback DOM work. Disabled pages have no extension mouse listeners. Feedback styles are parsed lazily once per document, and feedback is limited to 120 visible selection rectangles.

The development notes describe the implementation, regression tests, and measured copy-path timings. Run the dependency-free tests with Node:

node --test tests/core.test.cjs

Free to use, fork, and modify

MIT licensed. This is a personal tool shared as-is, with no support or maintenance guarantee. Contributions, pull requests, and feature requests are not accepted. Issues are disabled and pull requests are automatically closed. Please maintain changes in your own fork. See CONTRIBUTING.md.

About

Select text to copy automatically. A tiny, local-only browser extension for Helium and desktop Chromium browsers.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages