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).
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)
