How to export your Chrome tabs to Markdown

Updated November 6, 2026 · 6 min read

A Markdown list is one of the most useful forms a set of tabs can take. Each tab becomes one line, - [Page title](https://example.com/page), which you can read as plain text, search, paste into a notes app that understands Markdown, or keep next to a project. Chrome has no “export tabs as Markdown” button, but you can get there in a few minutes. Here are the honest options, starting with the ones that need nothing installed.

What you are aiming for

A good export is short and easy to scan:

# Research 2026-11-06
- [Web browser - Wikipedia](https://en.wikipedia.org/wiki/Web_browser)
- [MDN Web Docs](https://developer.mozilla.org/en-US/)

A heading with the date, then one line per tab. Keep the file name dated too, like tabs-2026-11-06.md, so new exports never overwrite old ones.

Method 1: Bookmark all tabs, export, then convert (no extension)

This works for any number of tabs and uses only Chrome and a text editor.

  1. Bookmark the window. Press Ctrl + Shift + D (⌘ + Shift + D on Mac). Chrome’s keyboard shortcut list describes this as saving all open tabs as bookmarks in a new folder. Name the folder with the date.
  2. Export bookmarks. Open the Bookmark Manager with Ctrl + Shift + O (⌘ + Option + B on Mac), open the More menu at the top and choose Export bookmarks. Chrome saves an HTML file (Chrome Help).
  3. Convert the file. Each bookmark in that file is a line containing <A HREF="…">title</A>. Use one of the two ways below.

Convert with find and replace

Open the HTML file in an editor that supports regular expressions, such as VS Code. Search for:

.*<A HREF="([^"]+)"[^>]*>(.*?)</A>.*

and replace with - [$2]($1) (some editors write \2 and \1 instead). Then delete the lines that do not start with - [. Titles may still contain HTML codes such as &amp;; replace them with the plain character.

Convert with a short Python script

If you have Python 3, save this as bookmarks-to-md.py:

import html, re, sys

text = open(sys.argv[1], encoding="utf-8").read()
for url, title in re.findall(r'<A HREF="([^"]+)"[^>]*>(.*?)</A>', text, re.I):
    title = html.unescape(title).replace("[", "\\[").replace("]", "\\]")
    print(f"- [{title}]({html.unescape(url)})")

Run python3 bookmarks-to-md.py bookmarks.html > tabs.md, using the name of your exported file. It turns HTML codes back into characters and escapes square brackets in titles, which would otherwise break the links.

Limits: the export always contains every bookmark you have, so the output lists them all. Keep the lines under your dated folder and delete the rest. Pinned tabs and tab groups are not part of bookmarks.

Method 2: Copy the links by hand

For five or ten tabs, typing is faster than converting. For each tab, click the address bar, copy the address, and paste it into your file in the form - [title](address). Group lines under # headings by topic. It is slow for long lists, but you choose exactly what goes in.

Method 3: Use an extension that copies Markdown

Some tab managers can produce Markdown for you. Session Buddy, for example, says on its website that it can copy tabs as links, Markdown, CSV or JSON. This is quicker than Method 1, but you still have to remember to do it, and the copy only exists once you paste it somewhere.

Problems you may run into

Markdown holds titles and links only. If you also want to restore sessions with their names, pinned tabs and groups, keep a JSON export from your tab manager as well. Our guide to backing up Chrome tabs to a file compares the formats.

Questions

Can Chrome export open tabs to Markdown without an extension?

Not directly. Chrome can bookmark all open tabs into a folder and export bookmarks as an HTML file. Converting that file with find and replace or a short script gives you a Markdown list.

Should I keep Markdown or JSON?

Markdown is for reading and pasting into notes. JSON is for importing back into the tool that made it, with session names, groups and pins. If you can, keep both.

A Markdown file on every save, without the steps

Tab Cabinet is the tab manager we make. It saves every tab in a window in one click, with no account. With Pro, each save writes a Markdown file with one - [title](URL) line per tab, plus a JSON file, to Downloads/TabCabinet/, and a daily snapshot adds one copy a day. The free plan keeps 5 sessions and exports them as JSON; Pro is $5 once.

A Markdown file written by Tab Cabinet Pro: a heading with the date, then one line per tab with its title and link

See how Tab Cabinet works