Cleaner file names

Despite Logseq is advertised as local-first, pages’ file names present several issues (non-standard alphanumeric characters, capitalisation…) that makes it really difficult to work with them outside logseq. The image below summarises most of the issues I have encountered so far:

  1. Using non alphanumeric characters: there’s plenty of literature on why this should be avoided (see references below, but in short: potential problem with certain OSes, file systems and syncronisation services)
    1. Using @ when inserting Zotero references
    2. Using %2Fwhen creating hierarchies
  2. Using whitespaces → difficult to work with command line
  3. Same capitalisation as page → lack of consistency, potential duplicates (only differing in capitalisation), file names may change easily, extra checks

Two possible workarounds could be:

  1. (Dendron inspired) Change default behaviour about automated filename creation so files follow the following criteria:
  • use - (or _ if - is used for hierarchies) instead of blank spaces
  1. Add the hability to customise the resulting filename at a note level, by creating a property (i.e. filename:: . If there’s such a property, filename should be created based on its content. If not, use the default behaviour.


Possibly related feature requuests:

+1 to this.

Having more easily readable and manageable files would make Logseq more coherent with the “local-first” approach. And it seems like it wouldn’t be hard to fix.


This PR, I believe addresses a lot of what’s mentioned in this.


I’ve seen the PR has been merged, but I believe current release 0.8.8 does not implement it yet. Looking forward for the next one.


Does someone know when this PR will be implemented?

1 Like

The PR that addresses most, if not all, of the concerns is available with the 0.8.9 release. See for more info


I am using version 0.9.19 AppImage on debian 12 system. And I am still seeing my new page files contain whitespaces in their filenames if their header inside logseq is set with a whitespace.

Example: Ctrl + k to create a new page. Name it “A new page again”. And you will have the markdown file created with whitespaces in its filename:

├── pages
│   ├── A new page
│   └──

Is there a solution to this? I would like to have my filenames named with underscores instead of whitespaces in between the words, like this: