Allow using a custom tag prefix (instead of just #tag)

Obsidian uses #tag for tags, and while # is the most common character for tags (everyone’s heard of hashtags), it’s not universal and doesn’t fit all workflows.

One of Obsidian’s core tenets is that your data is yours, and it’s just plain-text, but these small things act as a form of data lock-in.

I’m moving my existing “second brain” into Obsidian, but my existing workflow uses # for (physical) locations. For example, my “errands” list might have “#pharmacy: buy xyz”. I don’t want that to be recognized as a tag. I could switch to another character, but I’m already using @ and + as a prefix for other uses, and years of muscle memory is surprisingly hard to get rid of.

I also make notes about music theory, where # is used for “sharp” (a half-tone up from a note). So, writing a scale formula for the Lydian scale would be “1 2 3 #4 5 6 7”. Obsidian doesn’t currently recognize #4 as a tag, but I’m a bit worried the parsing for this will change in the future. You might also write about a #9b11 chord (sharp 9 flat 11), which is recognized as a tag.

Hex colors like #ffffff are also recognized as tags. Same for other hex values (which you might use in notes, in case you’re a programmer).

Maybe you’re a brand manager, and want to write down tweet ideas, but don’t want the hashtags to be tags for the note. Likewise, # is used for channels in IRC, Discord, Slack and other chat programs, maybe you’re writing employee orientation or community guideline documents.

I know I could escape the # character with \#, but I would very much prefer to just use something like tag: as an “explicit” tag prefix, and have # just be a regular character.


I see your point but (without working or having anything to do with the development of Obsidian), I think would just have to live with it.

I have used running numbers for my projects for years. “#020 New release” etc. When Obsidian came out, I just had to bite the apple and change this. Took me some hours, but now all folders, tasks etc. use a character I found (from math) that almost looks like a hashtag sign: ⨳

“⨳020 New release”

You could also use the sharp character (♯), which is almost identical to the hash character (#).

I would prefer not to use “special” characters for anything, because I also take a lot of (short) notes on my phone (currently with Syncthing+Markor, since Obsidian doesn’t have a mobile client). And having to copy-paste characters around would be way too slow (on my computer, I could use a keybinding to insert the character).

And I think tools should bend to workflow, instead of the other way around. But as a software developer, I’m used to customizing and automating just about everything in my workflow (i.e. spending 4 hours to automate a 5 second task :stuck_out_tongue:).

You can easily set up shortcuts on your phone for this. I use the “three letters” method. I often have to type longer names of companies when working with social media, so I’ve set up iOS and MacOS to replace several three letter strings with sentences or longer words.

Example: If you want ⨳, set up so that when you press “hhh” (for hashtag), it replaces hhh with ⨳.

I agree that software should adopt to users. But what you are suggesting would break a basic component of markdown. So I wouldn’t expect any software company to support an alternative to “#”.

My 50 cents.

What do you mean? Markdown doesn’t have the concept of “tags”, as far as I know. # is only used for headings in Markdown, but requires a space after the # in order for it to be recognized as a heading.

Well, Markdown does have the concept of “tags”, but only HTML tags (e.g. <div>), not in the sense of tags in this topic. It could be argued that Obsidian is kind of playing with fire by using # for tags, when it’s also used for headings in Markdown (but Obsidian isn’t actually breaking anything, since Markdown requires a space after the #).

I second the idea of a configurable tag character.

I see two use cases for me:
Right now I use imdone along with Obsidian and other tools to manage projects. imdone is a very useful Markdown-based task manager. However, it uses “+” signs to represent tags. So I have to mentally switch back and forth as TODOs are located in my markdown and code files. My favorite thing would be to be able to use cross-tool tags. The idea of a configurable tag character would allow for just that.

We all use Obsidian for different purposes and everyone uses different tools with different requirements. It may be that the “#” characters are just right for others, but the next person can’t handle “+” either. So configurable characters would be a great thing.

Also, I would like to see tags registered in file names as well. I have thousands of PDFs that are in Obsidian. These don’t need any metadata other than a few cross-folder tags, such as which person they belong to. To accomplish this, each PDF in my system requires a markdown sidecar that points to the PDF. This markdown sidecar then contains the metadata. This doubles my file count. If the tags were registered in the file name, I could save myself many thousands of files.

Again, the configurable tag character would help, since filenames are sensitive to special characters on different systems…

Related feature requests:


For some situations, it might just be sufficient to “escape” the # character by just prepending a backslash: \#example seems to be proper Markdown (the backslash isn’t rendered) and Obsidian doesn’t consider that a tag.

I would be happy with such a feature, since I’m using @tag instead of #tag. The above comment about # having a meaning in Markdown is valid, but I went for @ because # also has a meaning in plain text/code (comment).

1 Like