Clean vCard
Current contacts, including multiple emails, phones, and retained custom properties. Each card keeps its original v3 or v4 version.
Untangle duplicate contacts, choose what matters, and move a cleaner address book wherever you need it.
Import local exports from your address books. Original text is kept separately for a downloadable backup.
Shared details are clues, not proof. Nothing is merged automatically.
Select any two contacts to compare them, or open one to inspect its fields.
Download a copy and inspect it before importing into your contacts app. Your source address books stay unchanged.
Current contacts, including multiple emails, phones, and retained custom properties. Each card keeps its original v3 or v4 version.
Common fields only. Photos, custom properties, labels, and structured details can be lost. Multiple values use line breaks.
Original file text, original and working records, and the complete edit log. Keep this private. Restore this JSON through Bring contacts in to recover the full working session.
A JSON record of imports, manual merges, normalization, and undo actions. Contains contact details where edits occurred.
Start from local exports. We keep the source text alongside a working copy, so you can always download what you started with.
Compare shared emails, normalized phones, and possible name matches. Choose every field before combining a pair.
Take a fresh vCard, a portable CSV, and a full backup. Check the results before bringing them into your address book.
ContactWeave runs entirely in your browser after the page loads. There are no contact uploads or AI services, external fonts, or runtime CDN dependencies in the app. Hosting may process ordinary page requests such as IP addresses. Downloaded files are saved by your browser; keep backups somewhere private. The clipboard is used only when you press a donation copy button.
vCard 3.0 and 4.0 are supported, including folded UTF-8 lines, escaped values, multiple emails/phones, grouped names, and unknown properties. vCard 2.1, missing/duplicate version declarations, malformed cards, invalid UTF-8, and over-limit files are rejected clearly. Some encoded values are retained verbatim rather than decoded; photos and external URLs are never fetched. The original files remain in the full backup, including rejected cards.
CSV accepts commas, semicolons, or tabs, with quoted fields and embedded line breaks. Map columns before import. Unmapped data is retained in X-CONTACTWEAVE properties and original CSV text. Spreadsheet exports flatten common fields and are intentionally lossy. Unknown vCard properties are not interpreted. Merges across vCard versions may need compatibility review in the destination app.
Phone formatting is conservative and requires an explicit country for local numbers. Supported country prefixes do not validate ownership, reachability, or every regional numbering rule. Extensions are kept distinct. Shared email addresses or household phone numbers do not prove two people are the same. Name matches are always only suggestions. There is no live synchronization, enrichment, account connection, or automatic merge.
Full-backup JSON v1 is validated before export and restore (64 MiB maximum). Restore replaces the current session after confirmation, preserving original files, working contacts, unknown properties, and audit history. Single-step undo is not included. Audit-only JSON is not restorable. Sessions are held only in memory. Reload or Reset erases the working session; downloaded files and the system clipboard are not erased. Reset also clears pasted text and originals. Export a full backup first if needed. Undo restores only the most recent merge or normalization.
If this saved you some time, you can support its upkeep. Donations are optional and do not unlock features.
Crypto toolkit & transfer guidance →bc1qz50cp2uwpp98hdv49ellhwatdm997yzm9xlh7h0x83604D79dF4ED54E8D8935def21a79B51798cDa50x83604D79dF4ED54E8D8935def21a79B51798cDa5