{"id":49992932,"url":"https://github.com/sqmw/lan-clipboard","last_synced_at":"2026-05-24T03:08:24.522Z","repository":{"id":358782631,"uuid":"1243052747","full_name":"sqmw/lan-clipboard","owner":"sqmw","description":"LAN clipboard sync for macOS and Windows with shared-domain discovery, text/image/file transfer, and encrypted local network sync","archived":false,"fork":false,"pushed_at":"2026-05-19T04:21:27.000Z","size":2253,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-19T06:53:05.022Z","etag":null,"topics":["clipboard","cross-platform","lan","local-network","macos","rust","sharing","sync","tauri","typescritp","udp","vite","windows"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sqmw.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-19T02:23:02.000Z","updated_at":"2026-05-19T04:21:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/sqmw/lan-clipboard","commit_stats":null,"previous_names":["sqmw/lan-clipboard"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/sqmw/lan-clipboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqmw%2Flan-clipboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqmw%2Flan-clipboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqmw%2Flan-clipboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqmw%2Flan-clipboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sqmw","download_url":"https://codeload.github.com/sqmw/lan-clipboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sqmw%2Flan-clipboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33419589,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T22:14:44.296Z","status":"online","status_checked_at":"2026-05-24T02:00:06.296Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clipboard","cross-platform","lan","local-network","macos","rust","sharing","sync","tauri","typescritp","udp","vite","windows"],"created_at":"2026-05-19T06:09:52.857Z","updated_at":"2026-05-24T03:08:24.508Z","avatar_url":"https://github.com/sqmw.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/image/lan-clipboard-logo.svg\" width=\"128\" alt=\"LAN Clipboard Logo\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003elan-clipboard\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eShare clipboard across macOS / Windows on the same LAN.\u003c/b\u003e\u003cbr\u003e\n  Tauri UI · Rust Core · Shared-domain auto discovery\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/sqmw/lan-clipboard/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/sqmw/lan-clipboard?style=for-the-badge\u0026color=f5c542\" alt=\"stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/sqmw/lan-clipboard/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/sqmw/lan-clipboard?style=for-the-badge\u0026color=6c63ff\" alt=\"release\"\u003e\u003c/a\u003e\n  \u003ca href=\"./LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-brightgreen?style=for-the-badge\" alt=\"license\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-Windows%20%7C%20macOS-lightgrey?style=for-the-badge\" alt=\"platform\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"./docs/README.md\"\u003e📖 Docs\u003c/a\u003e ·\n  \u003ca href=\"./docs/dev.md\"\u003e🧰 Dev Guide\u003c/a\u003e ·\n  \u003ca href=\"https://github.com/sqmw/lan-clipboard/issues\"\u003e🐛 Issues\u003c/a\u003e ·\n  \u003ca href=\"https://github.com/sqmw/lan-clipboard\"\u003e⭐ Star\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"README.md\"\u003e\u003cb\u003e🇨🇳 中文\u003c/b\u003e\u003c/a\u003e | \u003cb\u003e🇬🇧 English\u003c/b\u003e\n\u003c/p\u003e\n\n---\n\n## 🖼️ UI Screenshot\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/image/screen-shot.png\" width=\"920\" alt=\"LAN Clipboard UI Screenshot\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ci\u003eBuilt around shared-domain status, transfer visibility, and only the configuration users actually need.\u003c/i\u003e\u003c/p\u003e\n\n## 🎯 Design Principles\n\n- **Minimal first**: the UI keeps only the pieces that matter in daily use, such as domain members, network selection, size limit, and transfer progress\n- **Efficiency first**: the app is designed around “open, join by shared code, copy, sync” instead of exposing a complex connection flow\n- **Debuggable without clutter**: logs, progress, and member state stay available, but the main screen remains quiet and focused\n\n## ✨ Features\n\n- **Shared-domain model**: devices with the same 6-digit shared code on the same LAN join one domain automatically\n- **Shared-domain debounce**: the same content is allowed only one effective send in the domain; duplicates are dropped both while the first send is still in flight and after it has already synced successfully\n- **Auto discovery**: `mDNS + UDP heartbeat` maintain a live member cache; click “Refresh” for an instant scan\n- **Event-driven sync**: clipboard changes are queued and pushed to peers via TCP binary frames\n- **Common payloads**: plain text / PNG image / files \u0026 folders / basic rich text (HTML/RTF)\n- **Encrypted transfer**: toggleable, derived from the shared code by default\n- **Multi-NIC support**: pick the correct local IP to avoid virtual adapters on Windows\n- **Debug friendly**: transfer progress, type, and previews; logs live under “Advanced / Logs”\n\n## 🚀 Quick Start (Windows + macOS)\n\n1. Connect both devices to the same LAN and open the app.\n2. Set the same 6-digit shared code on both sides and click “Save”.\n3. If you have multiple NICs/virtual adapters, pick the correct local IP in “Network”, then save.\n4. Click “Refresh” and confirm the peer shows up in the members list.\n5. Copy text/images/files(or folders)/rich text on one device, then paste on the other.\n\nAdditional note:\nIf the same file or clipboard content is copied repeatedly in a short burst, the app guarantees only the first effective sync. Later duplicate copies are dropped before send to reduce loop risk and avoid wasting bandwidth.\n\n## 📚 Docs\n\n- `docs/README.md`: docs index\n- `docs/status.md`: supported scope, limits, and key parameters (including throughput notes)\n- `docs/dev.md`: development / debugging guide\n- `docs/todo.md`: milestones and TODOs\n\n## ⚠️ Current Limits\n\n- “Any type” does not mean perfect parity for app-private clipboard formats; we only promise a cross-platform supported set (see `docs/protocol.md`)\n- Throughput is not yet tuned to consistently saturate LAN bandwidth for large files/images; more data-plane optimizations are planned (see “Throughput” in `docs/status.md`)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsqmw%2Flan-clipboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsqmw%2Flan-clipboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsqmw%2Flan-clipboard/lists"}