DeepSeek Harness Remote
DeepSeek Harness Remote 可將手機或另一台電腦與你運行 DeepSeek Harness 的電腦安全連接,隨時隨地繼續你的工作,方便隨時查看進度並繼續工作。
AI 翻譯
A tiny bubble that remembers everything you copy. Clipboard history for macOS with a mascot and an MCP server for AI agents.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗Downloads/ClipBubble until you delete it. It uses about 30 MB of RAM and 0% CPU at idle.Download: grab ClipBubble.dmg from Releases, open it, and drag ClipBubble.app to Applications. It's signed and notarized by Apple, so it opens like any other app.
Or build from source (needs the Xcode command line tools):
git clone https://github.com/rohit3a/clipbubble && cd clipbubble && ./build.sh
build.sh compiles the app, installs it to ~/Applications and launches it. Requires macOS 14 or later.
Updates: ClipBubble checks GitHub for a new version every few hours. When there is one, a dot appears on ⚙, and Settings → General → Update installs it and reopens the app. ClipBubble --update does the same from a terminal.
Permissions: Settings (⚙ in the panel) → Folders & permissions shows each one live, with a switch and a Fix button that opens the right page in System Settings:
The Windows version lives in Windows/. It's a separate C# app with the same panel, mascots, history database and MCP tools. It needs Windows 10 22H2 or Windows 11 and nothing else. It runs on the .NET Framework that ships with Windows, as one 360 KB ClipBubble.exe.
Download: grab ClipBubble.exe from Releases, put it in %LOCALAPPDATA%\Programs\ClipBubble and run it. Anywhere works on its own, but other devices look for it there. It isn't signed, so the first launch shows SmartScreen: click More info → Run anyway. After that it updates itself from Settings → General → Update.
Or build from source (needs the .NET SDK):
git clone https://github.com/rohit3a/clipbubble; cd clipbubble
powershell -ExecutionPolicy Bypass -File Windows\build.ps1
Windows blocks unsigned scripts by default, which is why the command allows this one. build.ps1 builds the app, installs it to %LOCALAPPDATA%\Programs\ClipBubble and launches it. To run the tests, run dotnet build Windows\Tests\ClipBubble.Tests.csproj -c Release, then Windows\Tests\bin\Release\net48\ClipBubble.Tests.exe.
What's different on Windows:
Pictures\Screenshots, where WinPrtScn and Snipping Tool save them, or from a folder you pick.ExcludeClipboardContentFromMonitorProcessing) are never stored.%LOCALAPPDATA%\ClipBubble.ClipBubble.exe in %LOCALAPPDATA%\Programs\ClipBubble, where build.ps1 puts it. Link iPhone… in Settings turns the server on for you.For MCP, use the path of your ClipBubble.exe, or copy the setup prompt from Settings:
claude mcp add --scope user clipbubble -- "$env:LOCALAPPDATA\Programs\ClipBubble\ClipBubble.exe" --mcp
The Linux version lives in Linux/. It's a Python app with the same history database, sync and MCP tools, plus a small GNOME Shell extension that watches copies, shows the bubble and pastes. It needs Python 3.8 or later. The panel and bubble need GNOME 48 to 51 with GTK 4, so Ubuntu 25.04 or Fedora 42 or later. On an older desktop, or none, it still syncs and serves MCP. CtrlAltV opens the panel.
Download: grab ClipBubble-Linux.tar.gz from Releases, then run:
tar xzf ClipBubble-Linux.tar.gz && ClipBubble-Linux/install.sh
install.sh installs ClipBubble for your user in ~/.local and starts it at login. Run it again to update. Log out and back in once so GNOME loads the extension.
The iPhone app lives in iOS/. It shows the history from your computers, takes anything you share to it, and adds a keyboard that types from your history in any app. It syncs with a Mac, a Windows PC or a Linux computer over SSH on your Wi-Fi, so it gives you a Universal Clipboard with computers Apple's doesn't reach.
Link a computer: on the computer, open ClipBubble → Settings → Sync over SSH → Link iPhone…, and scan the code with the iPhone's Camera. On Linux without a desktop, run clipbubble --pair and scan the code it prints. The iPhone sends its key over your Wi-Fi, and the computer lets that key run ClipBubble and nothing else.
sudo apt install openssh-server on Ubuntu). If your firewall is on, let the iPhone through once with sudo ufw allow 22,47821/tcp.Install: the app isn't on the App Store yet. To try it now, install XcodeGen, run xcodegen generate in iOS/, open ClipBubble.xcodeproj in Xcode and run it on your iPhone.
Settings → Sync over SSH lists the hosts in your ~/.ssh/config, with a switch for each. Turn one on, and your history and new copies go both ways over SSH, using your own keys and nothing else in between. Something you copy on one computer lands on the clipboard of the others. Files up to 25 MB come over on their own, and bigger ones wait for you to press Get. ClipBubble has to be installed on both sides, and Settings can set it up on a Linux host for you.
| Key | Action |
|---|---|
| ⌃⌥V | Open or close the panel from anywhere |
| ⌃⌥B | Show or hide the bubble, with Hide bubble until needed on. Change it in Settings. |
| ↑ ↓ | Move the selection |
| ↩ | Paste into the app you were in |
| ⌥↩ | Copy only |
| ⌘1–⌘9 | Paste one of the first nine items |
| ⌘Y | Full-size preview |
| ⌘⌫ | Delete from history |
| Tab | Next filter (All, Text, Images, Files, Screenshots, Downloads, iPhone) |
| Esc | Close the preview, clear the search, or close the panel |
The blob family blinks, wiggles when you hover, squishes when you click and grins when it catches a copy. Switch mascots from the ⚙ menu in the panel, or add your own image (PNG, GIF, JPG or SVG; GIFs play while you interact with it).
Custom mascots are small JSON files in ~/Library/Application Support/ClipBubble/mascots/:
{ "id": "pinky", "name": "Pinky", "kind": "blob", "color": "#FF6AD5" }
{ "id": "owl", "name": "Owl", "kind": "emoji", "idle": "🦉", "active": "🤩" }
{ "id": "fox", "name": "Fox", "kind": "image", "idle": "fox-idle.svg", "hover": "fox-wave.gif" }
hover and active (shown on click or when a copy lands) fall back to idle.
The app binary doubles as a stdio MCP server. The easiest way to connect an agent: open the panel, click ⚙ → AI agents (MCP) → Copy setup prompt, and paste it into Claude Code, Codex, Cursor or any other agent. It registers ClipBubble itself, using the exact path of your copy of the app, and checks that it works.
Or register it by hand (adjust the path if the app is in /Applications):
claude mcp add --scope user clipbubble -- ~/Applications/ClipBubble.app/Contents/MacOS/ClipBubble --mcp
For Codex it's codex mcp add clipbubble -- <same path> --mcp. For Claude Desktop, Cursor or Windsurf, add "clipbubble": { "command": "<same path>", "args": ["--mcp"] } under mcpServers.
| Tool | What it does |
|---|---|
clipboard_history | Recent items, filterable by kind, source (iPhone, Screenshot, Downloads, an app name), search text and time |
clipboard_get | One item in full, including the image itself so the model can see it |
clipboard_set | Put text or a history item on your clipboard |
mascot_list / mascot_set | See and switch mascots |
mascot_add / mascot_remove | Create mascots from a colour, emoji, image files or inline SVG |
Try asking your agent: "Make my ClipBubble mascot a tiny pixel-art fox" or "What was that error I copied an hour ago?"
Sources/Capture.swift polls the clipboard every 0.4 s and waits for it to settle first, so paste-through tools like Wispr Flow (which paste and then restore your clipboard) aren't disturbed and don't clutter history. Copies marked as concealed or transient by password managers are never stored.Sources/Store.swift keeps everything in ~/Library/Application Support/ClipBubble/clips.sqlite (WAL mode, so the MCP server can read while the app writes). Copied images are stored as PNGs next to it.Sources/UI.swift has the bubble, the panel and the peek: non-activating panels, so your app keeps focus and ↩ can paste into it.Sources/MCP.swift is a small JSON-RPC server over stdio, with no SDK.Sources/Mascot.swift draws the mascots with plain SwiftUI shapes. When nobody is interacting, the only thing that animates is a blink every few seconds.