Open-source compliance tools for EHS professionals. Local-first, single-binary Go applications that work standalone or as an integrated ecosystem.
Notes are markdown files stored in your vault’s notes/ directory. They live on
disk as plain files — edit them in any editor, version them with git, and link
them together with [[wikilinks]].
Notes support YAML frontmatter between --- fences at the top of the file.
These fields can be used as filters in note list and note search.
| Field | Values | Description |
|---|---|---|
type |
design-doc, til, reference, decision, troubleshooting, journal |
What kind of note this is |
status |
draft, active, complete, archived |
Lifecycle stage |
area |
personal, work, journal |
Knowledge area |
project |
any string | Associated project name |
language |
any string | Primary programming language |
tags |
list of strings | Categorization tags |
Example:
---
title: Btrfs Subvolume Gotchas
type: til
status: active
area: personal
tags:
- btrfs
- linux
---
All fields are optional. Notes without frontmatter are still searchable by their content.
Create a new note with optional frontmatter fields pre-filled.
muninn note new <title> [flags]
| Flag | Type | Default | Description |
|---|---|---|---|
--type |
string | Note type (see frontmatter table above) | |
--status |
string | Lifecycle status | |
--area |
string | Knowledge area | |
--project |
string | Associated project | |
--lang |
string | Primary programming language | |
--tags |
string | Comma-separated tags |
The title can be multiple words — no quoting required.
Simple note:
muninn note new Btrfs Subvolume Gotchas
Note with metadata:
muninn note new Go Context Patterns --type reference --area work --lang go --tags "concurrency,context"
Created btrfs-subvolume-gotchas.md
The filename is derived from the title: lowercased, spaces replaced with hyphens, special characters stripped.
List notes in the vault with optional frontmatter filters.
muninn note list [flags]
| Flag | Type | Default | Description |
|---|---|---|---|
--type |
string | Filter by note type | |
--status |
string | Filter by status | |
--area |
string | Filter by area | |
--project |
string | Filter by project | |
--lang |
string | Filter by language |
List all notes:
muninn note list
Filter by type and area:
muninn note list --type til --area work
btrfs-subvolume-gotchas.md Btrfs Subvolume Gotchas
go-context-patterns.md Go Context Patterns
Search notes by text with optional frontmatter filters. This is equivalent to
muninn search but scoped to the note subcommand.
muninn note search <query> [flags]
| Flag | Type | Default | Description |
|---|---|---|---|
--limit |
int | 10 | Maximum results |
--type |
string | Filter by note type | |
--status |
string | Filter by status | |
--area |
string | Filter by area | |
--project |
string | Filter by project | |
--lang |
string | Filter by language |
muninn note search "btrfs subvolume permissions"
muninn note search "error handling" --type reference --lang go
[btrfs-subvolume-gotchas.md] Btrfs Subvolume Gotchas (score: 7)
set-default requires the subvol ID, not the path.
Results are ranked by relevance: title matches score highest, then tags, then body content.
Show every note that contains a [[wikilink]] pointing to the given note.
muninn note backlinks <rel-path>
No flags. The relative path is required.
muninn note backlinks btrfs-subvolume-gotchas.md
Notes linking to "btrfs-subvolume-gotchas":
linux-filesystem-notes.md
journal/2026-04-W1-05.md
Notes support [[wikilinks]] for connecting your knowledge graph.
| Syntax | Meaning |
|---|---|
[[target]] |
Link to target.md |
[[target\|display text]] |
Link to target.md, show “display text” |
[[target#heading]] |
Link to a specific heading in target.md |
[[target#heading\|display text]] |
Link to heading, show “display text” |
Links are case-insensitive and match against filenames (without the .md
extension). Heading fragments are also case-insensitive and match against ATX
headings (# Heading, ## Section, etc.) in the target note.
The LSP server provides:
[[, headings after [[note#, tags
after #Notes support Obsidian-compatible callout/admonition syntax:
> [!warning] Be careful
> This is a warning callout with a title.
> [!tip]
> A tip callout without a custom title.
Supported types: note, warning, tip, info, danger, success,
example, quote, bug, abstract.
The VS Code extension highlights callout syntax in the editor.
The VS Code extension includes a daily note command for journaling:
Ctrl+Alt+D / Cmd+Alt+D)journal/YYYY-MM-W#-DD.md (week-of-month numbering)type: journal, area: journalCustom dates accept YYYY-MM-DD, +N (days ahead), or -N (days back).