Where a Mac browser keeps your bookmarks
Chrome keeps every bookmark in a single file called Bookmarks — no extension — at ~/Library/Application Support/Google/Chrome/Default/Bookmarks. It is JSON, so you can open it in any text editor. Brave, Arc, Edge and Vivaldi are all built on Chromium and keep the identical file, in their own folder. The paths for all five are below, along with the two things that trip people up: ~/Library is hidden by default, and Default is not always your profile.
Updated
The exact path, and how to open a hidden folder
~/Library/Application Support/Google/Chrome/Default/BookmarksThe obstacle is that ~/Library — the Library folder inside your home folder, not the one at the top of the disk — is hidden by macOS. It will not appear in Finder no matter how far you scroll.
- In Finder, press ⇧⌘G, paste the path above, and press Return. This is the quickest route and works even though the folder is hidden.
- Or hold ⌥ (Option) while opening the Go menu in Finder. Library appears in the menu only while the key is held.
- Quit the browser before copying or editing the file. It is written while the browser runs, and a copy taken mid-write is a copy of half a file.
You will usually see two files side by side: Bookmarks, and Bookmarks.bak. The second is the previous version, rewritten each time the browser starts. It is a safety net measured in one launch, not a backup.
The same file in Brave, Arc, Edge and Vivaldi
All five browsers share the Chromium engine, and with it the bookmark format. The file has the same name and the same structure in each; only the folder differs.
- ~/Library/Application Support/Google/Chrome/
- Chrome. Then the profile folder, then Bookmarks.
- ~/Library/Application Support/BraveSoftware/Brave-Browser/
- Brave. Note the two levels — BraveSoftware, then Brave-Browser.
- ~/Library/Application Support/Arc/User Data/
- Arc. The extra User Data level is Arc’s own, and its bookmarks are not the whole story — see below.
- ~/Library/Application Support/Microsoft Edge/
- Edge. Edge calls them favourites in its interface, but the file on disk is still called Bookmarks.
- ~/Library/Application Support/Vivaldi/
- Vivaldi. Identical layout to Chrome.
Safari and Firefox are the exceptions. Safari keeps a binary property list at ~/Library/Safari/Bookmarks.plist, and Firefox keeps its bookmarks inside places.sqlite in its profile folder. Neither is JSON, and neither can be read by anything expecting the Chromium format.
Why Arc is different, and what its Bookmarks file holds
Arc is the confusing one, and the confusion is genuine rather than yours. Arc’s own help centre has an article titled "Where are Bookmarks?" whose answer is that Arc does not really have them — it has pinned tabs, which live in the sidebar and behave differently.
Those pinned tabs are kept in a separate file, StorableSidebar.json, alongside spaces and folders. Meanwhile the ordinary Chromium Bookmarks file still exists in Arc’s profile folder, and it holds whatever was imported into Arc from another browser, plus anything saved through the standard bookmark commands.
So an Arc user can have links in two places. If you look at the Bookmarks file and find less than you expected, the rest are pinned tabs, and they are in the other file.
Which folder is yours when there are eight of them
Inside the browser folder you will find Default, and often Profile 1, Profile 2 and so on. Each is a separate browser profile with its own bookmarks. The names are not helpful: Default is not necessarily the one you use, and Profile 4 tells you nothing about whose it is.
The real names are in a file called Local State, one level up, in the profile.info_cache section. That is where the browser records that Profile 3 is the one you named "Work", and which account is signed into it.
cd ~/Library/Application\ Support/Google/Chrome
ls -d */ | while read p; do
[ -f "$p/Bookmarks" ] && echo "$p"
doneA profile with no Bookmarks file has never had a bookmark saved in it, which is the quickest way to rule most of them out.
What is actually inside the file
It is plain JSON. At the top there is a roots object, holding bookmark_bar, other and synced — the bookmarks bar, the "other bookmarks" pile, and anything that arrived by sync. Each of those is a tree of nodes, and every node has a type of either folder or url.
{
"type": "url",
"name": "Pavo20 camera mount and antenna holder",
"url": "https://makerworld.com/…",
"date_added": "13396521600000000"
}The field that catches everyone is date_added. It is not a Unix timestamp. Chromium counts microseconds since 1 January 1601 — the Windows epoch — so a value that looks like a date in the year 426,000 is correct and simply needs converting. Subtract 11,644,473,600 seconds after dividing by a million, and you have ordinary Unix time.
Everything else is straightforward, which is why this file is what any Mac app reads when it wants your bookmarks without asking you to export anything.
Questions
- Can I just copy the Bookmarks file to another Mac?
- Yes, with the browser quit on both machines. Drop it into the same profile folder on the other Mac, replacing what is there, and the bookmarks appear on next launch. It replaces rather than merges, so anything already in that profile is lost — an HTML export is the safer way to combine two sets.
- What is the Bookmarks.bak file for?
- It is the previous version of the file, written when the browser starts. If the current one is damaged it can be renamed and used. Because it is overwritten every launch, it protects you against a crash mid-write and against nothing else.
- Does Arc have bookmarks or just pinned tabs?
- Both, in two different files. Pinned tabs — what Arc actually encourages you to use — live in StorableSidebar.json. The standard Chromium Bookmarks file also exists in Arc’s profile folder and holds what was imported from another browser or saved with the ordinary bookmark commands.
- Where does Safari keep bookmarks on a Mac?
- At ~/Library/Safari/Bookmarks.plist, in Apple’s binary property list format rather than JSON. It is a different format entirely, which is why tools written for the Chromium file cannot read it.