# Linter for org-roam (and python's orgparse is fast)

**URL:** <https://org-roam.discourse.group/t/linter-for-org-roam-and-pythons-orgparse-is-fast/3884>\
**Category:** Development\
**Created:** [November 29, 2025, 5:34pm UTC](https://org-roam.discourse.group/t/linter-for-org-roam-and-pythons-orgparse-is-fast/3884 "2025-11-29T17:34:16Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![dmg](https://avatars.discourse-cdn.com/v4/letter/d/5e9695/32.png) [@dmg](https://org-roam.discourse.group/u/dmg)\
**Post date:** [November 29, 2025, 5:34pm UTC](https://org-roam.discourse.group/t/linter-for-org-roam-and-pythons-orgparse-is-fast/3884/1 "2025-11-29T17:34:16Z")

</div>

ids in the DB are supposed to be unique, but org-roam does not report an error when that is not the case. I knew I had a bunch of them so, and decided to simply write a python tool to scan the files.

> **[GitHub - dmgerman/org-roam-linter: A linter for org-roam files](https://github.com/dmgerman/org-roam-linter)**
>
> A linter for org-roam files

THis is also a proof-of-concept for seeing how effective orgparse’s library is. It is fast.

What you can do at this point:

- check for duplicated ids
- list all tags used and their frequency
