Documentation · this section

Documentation — 05

Append saves to your graph.

Last updated · 2026-05-12

Logseq, like Obsidian, is local. The bridge is the logseq:// URL scheme. Shelf builds a payload, hands the URL to Chrome, Chrome hands it to Logseq, Logseq appends the block to your graph. No plugin required; no API token to paste.

Turn it on

Open Shelf’s Options page → Destinations and tick Logseq. There is no extra configuration. Shelf uses Logseq’s quickCapture URL handler, which appends the block to whatever page Logseq’s quick-capture is configured to use (usually today’s journal). To change that target page, change it inside Logseq’s own settings — Shelf has no opinion.

The currently-open Logseq graph receives the block. To switch graphs, switch them in Logseq itself.

What gets written

A Logseq block — not a file — appended via quick-capture. The block looks like this:

- # On Marginalia
  source:: theatlantic.com
  url:: https://www.theatlantic.com/.../on-marginalia/
  saved:: 2026-05-11
  kind:: article
  reading-time:: 11 min
  tags:: #pkm #essay #long-form
  - **Excerpt**
    > A short defence of pencil-marks in books…
  - **AI summary**
    - Annotation is a form of intimacy with a text, not its violation.
    - Margins record the reader's response in the moment of reading.
    - The history of marginalia is the history of how books were actually used.
  - **Highlight**
    > A book half-read is twice owned.
  - [Open original →](https://www.theatlantic.com/.../on-marginalia/)

The title is a heading inside the block (# Title), not a [[wikilink]] — so the block stands on its own without polluting your graph with one new page per save. The properties (source::, url::, saved::, kind::, reading-time::, tags::, plus ai-backend::, transcript-language::, transcript-auto:: when applicable) are queryable from Logseq’s query blocks. Tag values use Logseq’s inline #tag syntax with spaces replaced by hyphens.

The first time

The first time you trigger a Logseq export, Chrome prompts whether to open Logseq. Tick Always allow and confirm. After this, exports are silent.

If Logseq is closed, it launches and opens to whichever graph was last active. The block is appended via quick-capture; the editor jumps there.

YouTube transcripts

When the saved item is a YouTube video and you’ve fetched the transcript (see the getting-started guide), Shelf attaches the transcript as a nested block tree under the main block — one bullet per ~30-second chunk, with the timestamp linking back to the video at the right offset:

- # How to Read a Book
  kind:: video
  transcript-language:: en
  - **Transcript**
    - **[0:00](https://youtube.com/watch?v=...&t=0s)** The first thing to know about reading…
    - **[2:14](https://youtube.com/watch?v=...&t=134s)** The second thing is harder to admit…

Transcripts are included whenever they have been fetched — there is no toggle to omit them on a per-save basis.

Troubleshooting

Nothing happens. Try saving any page. If nothing opens, Logseq isn’t installed on this device or the logseq:// URL handler isn’t registered — reinstall Logseq to re-register it.

Block lands on the wrong page. Quick-capture’s target page is set inside Logseq, not Shelf. Open Logseq settings and adjust it there.

Cross-device. Logseq’s built-in sync, iCloud, or Git can carry the graph between machines. Configure that in Logseq itself; Shelf writes to the local copy.