ClientPDF
running locally in this tab — nothing uploaded

Open DevTools.
Add bookmarks.
Watch nothing get sent anywhere.

Name a page and it shows up in the outline sidebar of any PDF reader — chapters, sections, appendices, whatever you need to jump to — entirely inside this tab. Zero network requests after the page loads, same rule as every other tool here. Check the Network tab yourself.

Drop one PDF here or click to browse

One file at a time · stays on this device

      Why trust this tool

      0 network requests since page load · verified live, not our word for it

      No accounts

      No signup, no email, no watermark. Use it and close the tab.

      No limits (for now)

      Add as many bookmarks as you need. No artificial caps.

      Filling out form fields too? Both live.

      Fill form fields, or insert blank pages — same rule: everything stays local. Leave your email and we'll let you know about a Pro batch mode.

      Adding a table of contents a reader can click through

      Add Bookmarks writes named outline entries that jump straight to a page in any PDF reader's sidebar — built at a low level via pdf-lib's context.nextRef/context.assign, since pdf-lib has no built-in outline helper, with the /Outlines dictionary and each entry's Parent/First/Last/Next/Prev links assembled by hand per the PDF spec. Entries are sorted by page number before linking, so the sidebar always reads top-to-bottom regardless of the order you added them in.

      This is the direct fix if you've just come from merging several files and noticed the combined PDF lost its original tables of contents — merging doesn't carry bookmarks over automatically, and this explains why, but adding them back here only takes a minute.