Clipboard Sync
Clipboard sync is based on the SyncClipboard protocol. BiBi Keyboard acts as a SyncClipboard client: it syncs clipboard content by accessing the server's SyncClipboard.json (and optionally the /file/ directory).
The current version is compatible with the newer SyncClipboard text-sync protocol (3.11.1 and above). If you also use the desktop client, keeping the desktop client and server reasonably up to date is recommended.
You can use any of the following backends as a "server":
- SyncClipboard dedicated server (SyncClipboard.Server)
- Desktop SyncClipboard built-in server
- WebDAV / cloud storage (as long as it supports HTTP PUT/GET)
Currently, BiBi Keyboard mainly syncs text. If the server pushes images/files, the file name will be shown in clipboard history or the keyboard status bar, and you can tap to download if needed.
What it does
Clipboard sync service provides:
- Auto upload: on local clipboard changes,
PUTto serverSyncClipboard.json - Auto download: periodically
GETserverSyncClipboard.jsonand apply new content locally - Deduplication: uses content hash to avoid uploading duplicates
- File name dedup: remembers recent file names to avoid repeated previews
How it works
- Upload: uses SHA-256 hash of content to decide whether upload is needed
- Download: remembers the last handled file name to avoid duplicate processing
- Protocol basics:
PUT /SyncClipboard.jsonuploadGET /SyncClipboard.jsonpull- if
TypeisImage/File, the file is under/file/<filename>
Configuration
Master switch
| Key | Type | Default | Description |
|---|---|---|---|
syncClipboardEnabled | Boolean | false | enable clipboard sync service |
Enable it in Settings → Other Settings → Clipboard sync.
Server config (SyncClipboard)
| Key | Type | Required | Description |
|---|---|---|---|
syncClipboardServerBase | String | ✓ | server base URL or full SyncClipboard.json URL |
syncClipboardUsername | String | ✓ | username (HTTP Basic Auth) |
syncClipboardPassword | String | ✓ | password (HTTP Basic Auth) |
The server address can be either a base URL or the full file URL:
- Base URL examples:
https://example.com:5033/,https://dav.jianguoyun.com/dav/ - Full URL example:
https://example.com:5033/SyncClipboard.json
If the URL does not end with .json, the app automatically appends /SyncClipboard.json.
Note
All fields are auto-trimmed (trim()). Make sure you did not paste extra spaces.
Auto pull
| Key | Type | Range | Default | Description |
|---|---|---|---|---|
syncClipboardAutoPullEnabled | Boolean | - | false | enable auto pull |
syncClipboardPullIntervalSec | Int | 1-600 | 15 | pull interval (seconds) |
When enabled, the app periodically checks and syncs cloud clipboard content.
Suggested intervals
- 15-30s: near real-time sync
- 60-120s: balance real-time and battery usage
- 300-600s: low frequency, saves power and data
Available servers/backends
SyncClipboard dedicated server (recommended)
SyncClipboard provides a standalone server SyncClipboard.Server, cross-platform and compatible with desktop/mobile clients. See upstream docs for deployment details.
Example:
Server: https://your-domain.com:5033/
Username: UserName in appsettings.json
Password: Password in appsettings.jsonDesktop built-in server
Desktop clients for Windows/macOS/Linux can run a built-in server. Enable it in the client settings and use the displayed address here.
WebDAV server (optional)
If you want to use WebDAV/cloud storage as backend, it only needs to support HTTP PUT/GET to SyncClipboard.json (typically via Basic Auth). Below is a common example.
Jianguoyun (Nutstore)
Jianguoyun is a popular WebDAV provider. Quota/pricing depend on their official plans.
Example:
Server: https://dav.jianguoyun.com/dav/
Username: your Jianguoyun account (email)
Password: app-specific passwordImportant
Jianguoyun does not allow WebDAV access with your login password. You must generate an app password under Account settings → Security → Third-party apps.
Steps:
- Log in to Jianguoyun web
- Open Account settings → Security
- Find Third-party apps
- Add an app (e.g. "BiBi Keyboard")
- Use the generated password as WebDAV password
Use cases
Phone ↔ PC text transfer
- Copy text on phone
- App uploads to server automatically
- PC SyncClipboard client syncs
- Paste on PC
Multi-phone sync
- Copy on Phone A
- Phone B pulls and updates its clipboard
- Paste on Phone B
Cross-app sharing
- Copy a link/text in one app
- Switch device/app
- Paste directly without manual transfer
Permissions
- Network access: connect to the server/backend
- Read clipboard: detect clipboard changes and read content
- Write clipboard: apply synced content to local clipboard
Troubleshooting
Cannot connect to server
Possible causes:
- Server URL wrong
- ensure scheme
https:///http:// - ensure path is correct (Jianguoyun must end with
/dav/)
- ensure scheme
- Wrong username/password
- Jianguoyun requires an app password
- check for extra spaces
- Network issues
- check device connectivity
- try opening the URL in a browser
Upload failed
Possible causes:
- permission: account has no write access
- app in background and cannot write clipboard
- timeout: unstable network or slow server
Fix:
- verify account permissions
- delete old files on server to free space
- switch to a more stable network
Download not applied
Possible causes:
- auto pull disabled (
syncClipboardAutoPullEnabled = false) - interval too long
- app in background and cannot write clipboard
Fix:
- enable auto pull and shorten interval
- disable battery optimization for the app
- manually trigger sync ("Sync now" button in settings)