Simple tool to migrate from Mozilla Pocket to linkding.
Like many others, I needed to find a new home for my bookmarks when Mozilla announced on May 22, 2025 that they are shutting down Pocket as of July 8, 2025. I wanted something self-hosted. After looking at many different options (see awesome-selfhosted), I decided to switch to linkding (GitHub). I put together a quick Python-based migration tool to convert from the Pocket export format to linkding's import format while preserving the original time the link was added to Pocket and any tags that you have set.
Note that while Pocket is shutting down on July 8, 2025, Mozilla will keep the export service up until October 8, 2025.
While there are many ways to run Python scripts, this should be enough to get you going:
- Use the Pocket export to initiate an export.
- Mozilla will send you a link to download the CSV export once it's ready. Download the
pocket.zip
file and unzip it on your local system.:unzip pocket.zip
- The
pocket.zip
file contains one or more files with names likepart_000000.csv
. - If you have more than 10,000 bookmmarks, there will be multiple files with 10K bookmarks
in each (e.g.,
part_000000.csv
,part_000001.csv
, etc.)
- The
Use the migration tool to convert each part_######.csv
file into a part_######.html
bookmark
file that can be imported into linkding.
Using Python uv
- Install uv if you don't have it already
- See Installing uv for details,
but they recommend
curl -LsSf https://astral.sh/uv/install.sh | sh
. - Note that many people have legitimate security concerns about using curl to pipe commands into the shell in this manner. See the "Installing uv" link above for alternatives.
- See Installing uv for details,
but they recommend
- View the help info:
uv run Pocket2Linkding.py -h
- Run the migration:
uv run Pocket2Linkding -d .
I'm skipping the normal virtual environment activation step here, but feel free to include that if you want.
- Create a Python Virtual Environment:
python3 -m venv venv
- Install dependencies:
./venv/bin/pip3 install attrs unidecode
- View the help info:
./venv/bin/python Pocket2Linkding.py -h
- Run the migration:
./venv/bin/python Pocket2Linkding.py -d .
Or, for Windows:
- Create a Python Virtual Environment:
py -3 -m venv venv
- Install dependencies:
.\venv\Scripts\pip.exe install attrs unidecode
- View the help info:
.\venv\Scripts\python.exe .\Pocket2Linkding.py -h
- Run the migration:
.\venv\Scripts\python.exe .\Pocket2Linkding.py -d .
- Install linkding if you haven't already. I recommend
using Docker and using the
latest-plus
image to get the built-in ability to archive pages using SingleFile. - Open your instance of linkding.
- Go to Settings -> General.
- Near the bottom of the page you will see an "Import" section.
- Click the "Browse" button and select a .html file.
- Click "Upload".
- Repeat for each file if you have more than 10K bookmarks saved in Pocket.