# emacs-denote-menu

> alternative interface to dired for viewing and filtering Emacs Denote files

**Wikidata**: [Q117151276](https://www.wikidata.org/wiki/Q117151276)  
**Source**: https://4ort.xyz/entity/emacs-denote-menu

## Summary
emacs-denote-menu is a free, GNU ELPA-distributed Emacs Lisp package that provides an alternative interface to dired for viewing and filtering Emacs Denote files. Created by computer scientist Mohamed Suliman, it has been maintained since 2023 and reached stable version 1.4.0 in March 2025.

## Key Facts
- Initial release: 9 March 2023 (version 1.0.0) by Mohamed Suliman (ORCID 0000-0001-8097-6297)
- Current stable version: 1.4.0 released 17 March 2025
- License: GNU General Public License (Q27016754)
- Distributed through GNU ELPA since March 2023
- Written in Emacs Lisp (language dating from 1985)
- Cross-platform package that runs inside GNU Emacs
- Part of the GNU Project ecosystem
- Source code hosted at https://github.com/namilus/denote-menu
- Available in Nixpkgs as "denote-menu" and Guix as "emacs-denote-menu"

## FAQs
### Q: What does emacs-denote-menu do?
A: It presents your Denote notes in a menu-style buffer that lets you filter and search them without leaving Emacs. You can quickly narrow the list by keywords, dates, or title fragments instead of browsing raw directories.

### Q: How is it different from dired?
A: While dired shows every file in a directory, denote-menu only lists Denote notes and adds Denote-aware filters and actions. The interface is optimized for note discovery rather than general file management.

### Q: Where can I install it from?
A: The package is on GNU ELPA, so `M-x package-install RET denote-menu RET` inside Emacs is enough. It is also packaged in Nixpkgs and Guix under the names "denote-menu" and "emacs-denote-menu".

## Why It Matters
For Emacs users who rely on Denote to manage large personal knowledge bases, navigating hundreds or thousands of plain-text notes can become unwieldy. Traditional file managers and even Emacs' own dired show every file, forcing users to remember exact filenames or rely on external search tools. emacs-denote-menu closes this gap by embedding a purpose-built browser inside Emacs. Because it understands Denote's filename conventions, it can surface metadata—keywords, dates, titles—directly in the interface and let users filter interactively. The result is a friction-free way to rediscover past notes, encouraging reuse and connection rather than duplication. As a GNU package, it also guarantees long-term availability and license freedom, aligning with the values of researchers, writers, and developers who already trust Emacs for lifelong knowledge work.

## Notable For
- First alternative browser specifically for Denote notes, appearing only months after Denote itself
- Maintained by the same author since inception, ensuring continuity
- Distributed through GNU ELPA, giving it the same update channel as core Emacs packages
- Cross-platform support inherited from GNU Emacs, running wherever Emacs runs
- Free software under GPL v3+, guaranteeing user freedom to study and modify

## Body
### Inception and Development
Mohamed Suliman announced emacs-denote-menu on 9 January 2023 via a personal blog post, publishing the first commit the same day. The code entered GNU ELPA on 9 March 2023 with version 1.0.0, announced on the gnu-emacs-sources mailing list. Development has followed a steady cadence: 1.1.1 (30 Mar 2023), 1.2.0 (27 Sep 2023), 1.3.0 (14 Aug 2024), and the current 1.4.0 (17 Mar 2025). Each release is tagged on GitHub and mirrored to the GNU Savannah ELPA repository.

### Technical Details
The package is a single Emacs Lisp library that creates a read-only buffer listing Denote files. It leverages Denote's public API to parse filenames and display titles, keywords, and dates in a columnar format. Users can call `denote-menu` to open the buffer, then use built-in Emacs motion and incremental search to narrow entries. Because it re-uses standard Emacs facilities, it integrates with existing workflows: `RET` opens a note in the current window, `o` in another window, and `d` deletes the file after confirmation. The buffer is refreshed automatically when the underlying directory changes.

### Distribution and Packaging
GNU ELPA serves the canonical release tarballs, signed with the maintainer's GPG key. Binary distributions pick it up quickly: Nixpkgs exposes `denote-menu` under both `emacsPackages` trees, while Guix spells it `emacs-denote-menu`. The package has no external dependencies beyond Denote itself and Emacs 27.1 or later, keeping installation lightweight.

## Schema Markup
```json
{
  "@context": "https://schema.org",
  "@type": "Thing",
  "name": "emacs-denote-menu",
  "description": "Alternative interface to dired for viewing and filtering Emacs Denote files",
  "url": "https://elpa.gnu.org/packages/denote-menu.html",
  "sameAs": ["https://github.com/namilus/denote-menu"],
  "additionalType": "GNU ELPA package"
}

## References

1. [Source](https://elpa.gnu.org/packages/denote-menu.html)
2. [initial commit. 2023](https://github.com/namilus/denote-menu/commit/3bd7cf7d126d4493df17715aec3e7a9046efdc8c)
3. [Denote-Menu version 1.0.0. 2023](https://lists.gnu.org/archive/html/gnu-emacs-sources/2023-03/msg00015.html)
4. [Release 1.1.1. 2023](https://github.com/namilus/denote-menu/releases/tag/v1.1.1)
5. [Denote-Menu version 1.1.1. 2023](https://lists.gnu.org/archive/html/gnu-emacs-sources/2023-03/msg00074.html)
6. [Denote-Menu version 1.2.0. 2023](https://lists.gnu.org/archive/html/gnu-emacs-sources/2023-09/msg00068.html)
7. [[GNU ELPA] Denote-Menu version 1.3.0. 2024](https://lists.gnu.org/archive/html/gnu-emacs-sources/2024-08/msg00038.html)
8. [Release 1.4.0. 2025](https://github.com/namilus/denote-menu/releases/tag/v1.4.0)
9. [[GNU ELPA] Denote-Menu version 1.4.0. 2025](https://lists.gnu.org/archive/html/gnu-emacs-sources/2025-03/msg00071.html)
10. [Emacs package: denote-menu. 2023](https://www.scss.tcd.ie/~sulimanm/posts/denote-menu.html)