Tags
Tags provide a flexible way to organize and categorize objects across your vault. Extenote supports both simple tags and hierarchical tags with a colon separator.
Tag Format
Tags are defined in the frontmatter tags field:
---
title: My Research Paper
tags:
- research
- ml
- collection:data-leverage
---
Simple Tags
Simple tags are single labels like research, important, or draft.
Hierarchical Tags
Hierarchical tags use a colon separator to create parent-child relationships:
collection:data-leverage- belongs to the “data-leverage” subcollectionstatus:draft- has “draft” statustopic:ml:transformers- deeply nested topic
Hierarchical tags are displayed as a tree structure in the web UI, with the prefix as the parent node.
Web UI Tag Management
The web app provides a full-featured tag management interface at the Tags page.
Features
-
Tag Tree View
- Hierarchical display with expand/collapse
- Object counts for each tag
- Search/filter to find specific tags
-
Tag Operations
- Rename: Change a tag name across all objects
- Merge: Combine one tag into another
- Delete: Remove a tag from all objects
-
Preview Before Apply
- See exactly which files will be modified
- Review current vs new tags for each file
- Cancel if the changes aren’t what you expected
CLI Tag Management
Tag operations are also available via the CLI:
# List all tags with counts
bun run cli -- tags list
# List tags in a specific project
bun run cli -- tags list shared-references
# List as JSON
bun run cli -- tags list --json
# Rename a tag
bun run cli -- tags rename old-tag new-tag
# Preview rename without applying
bun run cli -- tags rename old-tag new-tag --dry-run
# Merge source tag into target
bun run cli -- tags merge source-tag target-tag
# Delete a tag from all objects
bun run cli -- tags delete unwanted-tag
# Delete with confirmation prompt skipped
bun run cli -- tags delete unwanted-tag --yes
Collection Tags
Tags prefixed with collection: define which paper collections an object belongs to:
tags:
- collection:data-leverage
- collection:data-valuation
A paper can belong to multiple collections by having multiple collection:* tags.
Priority in Collections
To manually control the order of papers in collections, add a priority:<number> tag:
tags:
- collection:data-valuation
- priority:1 # Appears first in all collections this paper belongs to
Sort order: Papers with priority:N tags are sorted by N (ascending), then unprioritized papers are sorted by year (most recent first).
Semble Collection Integration
Tags prefixed with collection: have special meaning for Semble sync. When syncing objects to Semble:
- The project name becomes a Semble collection
- Each
collection:*tag creates an additional collection membership
For example, an object with:
tags:
- collection:data-leverage
- collection:papers
In project shared-references will be synced to three Semble collections:
shared-references(project collection)shared-references:data-leverage(tag collection)shared-references:papers(tag collection)
Best Practices
-
Use consistent naming conventions
- Lowercase with hyphens:
machine-learning,data-leverage - Avoid spaces or special characters
- Lowercase with hyphens:
-
Use hierarchical tags for categories
status:draft,status:published,status:archivedtopic:ml,topic:nlp,topic:vision
-
Preview before applying
- Always use
--dry-runin CLI or Preview in web UI - Verify the affected files are what you expect
- Always use
-
Merge rather than delete
- When consolidating tags, merge into the canonical name
- This preserves the tagging rather than losing it
-
Use collection: prefix for Semble
- Objects with
collection:*tags get multi-collection membership - Plan your collection structure before syncing
- Objects with