免费开源

共享剪贴板

跨设备剪贴板历史管理,局域网实时同步,支持文字与图片。Windows、macOS、Linux 三端原生支持。

版本

核心功能

01
📋

剪贴板历史

自动记录所有复制内容,支持文字与图片,最多保存 10000 条历史记录。

02
🌐

局域网同步

通过共享 SQLite 数据库文件,多台设备实时共享剪贴板内容,零配置。

03
☁️

云端同步

连接 MySQL 数据库,实现跨网络、跨地域的多设备剪贴板同步。

04
⌨️

全局快捷键

自定义热键(默认 Cmd/Win+V)一键唤出剪贴板面板,不打断工作流。

05
🔍

全文搜索

基于 FTS5 的全文搜索,海量历史中秒级定位目标内容。

06
📌

边缘停靠

窗口停靠屏幕任意边缘,鼠标靠近自动弹出,不占用桌面空间。

零数据上传

你的数据,只属于你

共享剪贴板从设计之初就排除了数据收集的可能性。无账号、无云服务器、无遥测。

本地存储

所有剪贴板内容默认存储在你设备上的 SQLite 文件中。应用不持有任何服务器,数据物理上不离开你的电脑。

LAN 同步不经外网

局域网模式通过共享文件系统直连,流量完全在内网中流转,不经过任何第三方服务器或互联网。

开源可验证

完整源代码托管于 GitHub,任何人可以审计网络请求行为。没有混淆代码,没有隐藏逻辑。

云同步由你掌控

MySQL 云同步完全可选,且连接的是你自己的数据库服务器。我们的程序代码不经手任何同步数据。

共享剪贴板
典型云剪贴板
数据存储位置
本机 / 自有服务器
服务商云端
需要账号
不需要
需要注册
后台遥测
通常有
开源
完全开源
闭源
LAN 同步流量
纯内网直连
经云服务器中转

局域网共享指南

两台设备共享同一局域网,即可实时同步剪贴板。

🖥️

主机(共享方)

  1. 打开应用设置,记下数据库文件路径(默认 %APPDATA%\SharedClipboard\clipboard.db
  2. 右键数据库所在文件夹 → 属性 → 共享 → 高级共享,勾选「共享此文件夹」,设置读写权限
  3. 运行 ipconfig(Windows)或 ifconfig(macOS/Linux),记录局域网 IP,如 192.168.1.100
💻

从机(加入方)

Windows 路径 \\192.168.1.100\SharedClipboard\clipboard.db
macOS 路径 /Volumes/SharedClipboard/clipboard.db
Linux 路径 /mnt/SharedClipboard/clipboard.db

在应用设置 → 数据库路径中填入对应路径,保存后重启应用即可同步。

💡 提示:主机需保持开机并运行共享剪贴板,从机才能实时同步。

云端 MySQL 同步

购买云数据库服务,即可实现跨网络的多设备剪贴板同步。

国内用户推荐

服务商 费用 备注
阿里云 RDS Serverless 按量付费,约 ¥5–15/月 个人推荐,弹性计费
腾讯云 MySQL 基础型 约 ¥60/月起 稳定可靠,国内延迟低
华为云 RDS for MySQL 约 ¥50/月起 企业级稳定性

海外用户推荐

服务商 费用 备注
PlanetScale 推荐 免费套餐 5 GB,无需信用卡
Railway $5/月起 简单易用,支持免费试用
Aiven for MySQL $19/月起 多区域,企业级

配置步骤

  1. 在云服务商控制台创建 MySQL 实例
  2. 在安全组 / 防火墙中开放 3306 端口
  3. 创建数据库和专用用户
  4. 打开应用设置,数据库类型选择 MySQL
  5. 填入主机 IP、端口、用户名、密码、数据库名
  6. 点击「测试连接」,成功后保存
  7. 在其他设备填入相同配置,即可多端同步

立即下载

选择你的操作系统,免费下载。

🪟

Windows

Windows 10 / 11(64位)

.exe 单文件,约 70 MB

v2.0.0 最新版
下载 Windows 版
🍎

macOS

macOS 12 Monterey 及以上

.dmg 安装包,约 80 MB

v2.0.0 最新版
下载 macOS 版

🐧

Linux

Ubuntu 22.04+ 或其他主流发行版

.AppImage 免安装,约 85 MB

v2.0.0 最新版
下载 Linux 版

常见问题

PLUGIN API

插件开发文档

只需两个文件即可创建插件,为剪贴板内容添加自定义处理能力。

🚀

快速开始

一个插件由两个文件组成:manifest.json(声明元信息)和 plugin.py(实现逻辑)。放入 plugins/ 目录即可自动加载。

plugins/
└── my_plugin/
    ├── manifest.json
    └── plugin.py
📄

manifest.json

插件清单文件,声明 ID、名称、版本等元信息。所有字段均有默认值,最简只需 id、name、entry_point。

manifest.json
{
    "id": "my_plugin",
    "name": "My Plugin",
    "version": "1.0.0",
    "description": "A simple plugin",
    "author": "Your Name",
    "entry_point": "plugin.py",
    "min_app_version": "1.0.0",
    "timeout": 30,
    "permissions": ["network"],
    "config_schema": {
        "api_key": {
            "type": "string",
            "label": "API Key",
            "description": "Your API key",
            "required": true,
            "secret": true
        }
    }
}
🐍

plugin.py

继承 PluginBase,实现四个抽象方法即可。框架自动注入 logger 和 config。

plugin.py
from core.plugin_api import (
    PluginBase, PluginAction, PluginResult,
    PluginResultAction
)
from core.models import ClipboardItem, ContentType

class MyPlugin(PluginBase):
    def get_id(self):    return "my_plugin"
    def get_name(self):  return "My Plugin"

    def get_actions(self):
        return [PluginAction(
            action_id="process",
            label="Process Text",
            icon="✨",
            supported_types=[ContentType.TEXT],
        )]

    def execute(self, action_id, item,
                progress_callback=None,
                cancel_check=None):
        # Access config: self.get_config()
        # Access logger: self.logger.info(...)
        result = item.text_content.upper()
        return PluginResult(
            success=True,
            text_content=result,
            action=PluginResultAction.COPY,
        )
📚

API 速查表

PluginBase 方法

方法 类型 说明
get_id() → str必须返回插件唯一标识,须与 manifest.json 一致
get_name() → str必须返回插件显示名称
get_actions() → List[PluginAction]必须返回插件提供的操作列表
execute(action_id, item, ...) → PluginResult必须执行操作(在工作线程中调用)
get_description() → str可选返回简短描述
on_load()可选插件加载时调用
on_unload()可选插件卸载时调用
on_config_changed(config)可选配置变更通知
self.logger注入框架注入的专属 Logger
self.get_config() → dict注入获取插件配置字典

PluginAction 字段

字段 类型 说明
action_idstr操作标识,如 "translate_en"
labelstr菜单显示名称
iconstremoji 图标,如 "🌐"
supported_typesList[ContentType]支持的内容类型 (TEXT / IMAGE)

PluginResult 字段

字段 类型 说明
successbool是否执行成功
text_contentOptional[str]文本结果
image_dataOptional[bytes]图片二进制数据
actionPluginResultActionCOPY(复制)/ SAVE(保存)/ REPLACE(替换)
error_messageOptional[str]错误信息(success=False 时)
⚙️

配置机制

在 manifest.json 中声明 config_schema,框架自动在设置页生成配置表单。支持 string、number、boolean、select 四种类型,secret 字段使用密码输入框。

config_schema
"config_schema": {
    "api_key": {
        "type": "string",
        "label": "API Key",
        "required": true,
        "secret": true
    },
    "model": {
        "type": "select",
        "label": "Model",
        "options": ["gpt-4o", "gpt-4o-mini"],
        "default": "gpt-4o-mini"
    },
    "max_tokens": {
        "type": "number",
        "label": "Max Tokens",
        "default": 2000,
        "min": 100,
        "max": 8000
    }
}
💡 execute() 在工作线程中执行,禁止直接操作 Qt 控件。使用 progress_callback 报告进度,cancel_check 检查取消。
📁 插件目录:内置插件放 plugins/,用户插件放 %APPDATA%/SharedClipboard/plugins/(设置页可打开)。
📝 完整设计文档见 GitHub 仓库中的 PLUGIN_SYSTEM_DESIGN.md
商业合作
日本メール放送センター

日本全国へのメール広告配信サービス

docomo・au・SoftBank 等主要キャリア対応。宛先リスト不要で、日本の 60%+ のメールボックスに一斉配信。アプリ・EC・キャンペーンの認知拡大に。

1億+ 累計配信実績 PayPal / USDT 支払対応 500+ 導入企業
サービス詳細・料金プランを見る →
1億+
累計配信数
60%+
日本到达率
24h
サポート