Wox is a cross-platform desktop launcher (macOS, Linux, Windows) written in Go with a custom retained-mode UI framework. It provides a keyboard-first search interface with an extensive plugin system (system plugins in Go, external plugins via WebSocket hosts for Python and Node.js). Core features include file search with content indexing (SQLite FTS5, USN journal, FSEvents), clipboard history, calculator, converter, emoji picker, screenshot with annotation, window management, AI chat with multiple providers (OpenAI, Ollama, etc.), cloud sync with encryption, and system commands (shell, timer, dictation). The architecture is a monolith with a plugin manager dispatching queries to registered plugins, rendering results in a custom widget tree with GPU-accelerated painting. It has a sophisticated settings system with typed definitions, migrations, and cloud sync. The codebase is large but well-organized, with extensive platform-specific code for Windows (COM, Win32), macOS (AppKit, Objective-C), and Linux (GTK, Wayland, X11).
clipboardy is a cross-platform Node.js library that provides a simple, unified API for accessing the system clipboard (copy/paste). It supports macOS, Windows, Linux (including Wayland), WSL, Android (Termux), and modern browsers. The library offers both asynchronous and synchronous methods for reading and writing text, and additionally supports image operations on macOS via the `clipboard-image` package. The implementation automatically detects the platform at runtime and delegates to the appropriate system commands (e.g., `pbcopy`/`pbpaste` on macOS, `Set-Clipboard`/`Get-Clipboard` PowerShell cmdlets on Windows, `xsel` on Linux with a bundled fallback, `wl-copy`/`wl-paste` on Wayland). It carefully handles edge cases such as the Wayland clipboard daemon's background process hang (by redirecting stderr to a temporary file) and gracefully falls back to X11 tools when Wayland is unavailable. The code is well-tested, with a comprehensive test suite covering various content types, error handling, and platform-specific behaviors. The library is a mature, widely-used piece of infrastructure (nearly 2000 stars) that exemplifies clean, reliable Node.js package design.
wl-clipboard-rs is a Rust library providing safe access to the Wayland clipboard through the ext-data-control and wlr-data-control protocols. It consists of a library crate (wl-clipboard-rs) that handles clipboard operations and a tools crate (wl-clipboard-rs-tools) providing terminal utilities: wl-copy (copy to clipboard), wl-paste (paste from clipboard), and wl-clip (xclip-like utility). The library abstracts over different Wayland clipboard protocol versions, manages connections to the compositor, handles MIME type negotiation, and serves clipboard requests. The architecture separates concerns into copy, paste, utils, common connection logic, data control abstraction, and seat data management modules.
This repository provides a lightweight CLI tool (`vision.js`) that enables text-only AI models (like Claude Code without native vision) to 'see' images by converting them to text via an external vision API. The core script reads images from local files, URLs, or the system clipboard (via platform-specific helpers for macOS and Windows), encodes them as base64, and sends them to any OpenAI-compatible vision API (defaulting to Alibaba Cloud's DashScope). It features automatic clipboard fallback, configurable API credentials via environment variables, and clear error handling. The repo also includes documentation files (`AGENTS.md`, `CLAUDE.md`, `SKILL.md`) that instruct AI agents on when and how to invoke the script, plus integration instructions for the cyberboss chatbot framework. It is a practical, well-structured utility that solves a common limitation of text-only AI models.
This repository provides a custom HTML element, `<clipboard-copy>`, that copies text or element content to the clipboard when clicked. Implemented as a web component extending `HTMLElement`, it supports multiple data sources: the `value` attribute, a `for` attribute that references another element by ID (including inputs, textareas, and anchor hrefs), or element text content. The element ensures accessibility by automatically adding `role="button"` and `tabindex="0"` if not present, and handles keyboard events (Enter/Space) for activation. Internally, it uses the modern `navigator.clipboard.writeText()` API when available, falling back to `document.execCommand('copy')` via a temporary hidden node. It also normalizes Unicode whitespace characters (e.g., non-breaking spaces, zero-width joiners) to plain spaces or strips them, ensuring the copied text matches visual expectations. A `clipboard-copy` custom event is dispatched on success, allowing external handlers to provide feedback. The source code is written in TypeScript, is well-structured with clear separation of concerns (clipboard logic in `clipboard.ts`, element definition in `clipboard-copy-element.ts`, and a side-effect module for registration), and includes a comprehensive test suite covering element creation, clipboard operations, shadow DOM contexts, and edge cases like disabled state and Unicode normalization. The project follows GitHub's engineering standards (eslint, prettier, CI via GitHub Actions) and is published as an npm package under `@github/clipboard-copy-element`.
Clipboard.js is a lightweight JavaScript library that provides a modern, no-Flash way to copy or cut text to the clipboard. It operates as a browser library, using event delegation via the `good-listener` package and the deprecated `document.execCommand` API. The core class `ClipboardJS` can be instantiated with a DOM selector, element, or NodeList, and it automatically listens for click events to trigger copy/cut actions based on HTML data attributes (`data-clipboard-text`, `data-clipboard-target`, `data-clipboard-action`). It also exposes static `copy()` and `cut()` methods for programmatic use, and emits custom `success` and `error` events. The library includes a fallback mechanism using a temporary textarea element for browsers that do not support selecting hidden elements. It is well-tested, has TypeScript definitions, and is distributed as a UMD bundle. The architecture is a simple monolith with a single entry point and isolated action modules.
CtxPort is a browser extension and companion documentation website that lets users copy AI conversations (from ChatGPT, Claude, Gemini, DeepSeek, Grok, Doubao, GitHub) as structured Markdown Context Bundles. It solves 'context rot' by enabling portable, lossless migration of conversations between AI tools without uploading data to third parties. The architecture is a modern monorepo using pnpm workspaces and Turborepo, with separate packages for schema validation (Zod), markdown serialization, plugin-based extraction, and shared UI components. The browser extension (Manifest V3, WXT, React 19, Tailwind CSS 4) injects copy buttons and sidebar list icons into supported platforms, while the documentation website (Next.js + Nextra) provides multilingual (en/zh) user guides and feature descriptions. All processing is client-side; no data is uploaded. The codebase demonstrates strong engineering practices including a plugin system for extensibility, a strategy pattern for content flatteners, clean separation of concerns, and comprehensive CI/CD pipelines. Some fragility exists in DOM selectors and platform APIs, but the architecture is well-structured for adaptation.
Clipy is a macOS clipboard extension app that lives in the menu bar. It provides clipboard history management, text snippet storage and quick paste, OCR for image-based clipboard content, and customizable global hotkeys to trigger history menu, snippet editor, or paste actions. The app monitors NSPasteboard using a timer, deduplicates entries, and stores them in a local SQLite database (via GRDB wrapper SQLiteData), with a legacy Realm database still present for migration. UI is built with a mix of SwiftUI (settings panes) and AppKit (snippet editor, menu). Dependency injection via swift-dependencies and reactive storage via swift-sharing are used throughout. The architecture is well-modularized with repository and service layers, extensive unit tests, and a migration system for both database schema and user defaults. However, the project shows signs of drift: legacy Realm code and XIB files persist, localization strings may be out of sync, and the last commit date is anomalous (future date) suggesting the project may be unmaintained despite a large user base.