A comprehensive memo management system for VS Code that transforms how you create, link, and explore your notes. VsMemo combines template-based creation, intelligent cross-linking, backlink analysis, and interactive graph visualization to create a powerful knowledge management experience.
- Create memos using configurable types and templates
- Variable substitution with system variables (
{YEAR},{MONTH},{DAY},{DATE},{TITLE}) and custom user-defined variables - Organized memo types with dedicated directories
- Automatic file naming and directory creation
- Custom URI Scheme: Use
vsmemo://path/to/memo.mdsyntax for cross-references - Go-to-Definition: Navigate to linked memos using VS Code's standard F12 functionality
- Hover Information: Preview memo content by hovering over links
- IntelliSense Completion: Auto-complete memo paths while typing
- Markdown Preview Support: Clickable links in preview mode
- Link Insertion: Interactive command to insert links with file selection
- Automatic Indexing: Real-time tracking of all memo cross-references
- Backlink View: Tree view showing which files reference the current memo
- Orphaned File Detection: Find memos with no incoming links
- Link Statistics: Analytics on memo connectivity and relationships
- Dynamic Updates: Automatic refresh on file save and edit
- Relationship Graph: Cytoscape.js-powered visualization of memo connections
- Multiple Display Modes:
- Focus Mode: Active file + directly connected memos
- Context Mode: Active file + 2 degrees of separation
- Full Mode: Complete memo network
- Active File Tracking: Graph automatically updates when switching files
- Visual Highlighting: Active file emphasized with distinctive styling
- Toolbar Controls: Easy switching between display modes
- Explorer Views: Two custom tree views (VsMemo Explorer, Backlinks)
- 13 Commands: Comprehensive set of memo operations accessible via Command Palette
- Context Menus: Right-click operations for rename/delete in Explorer
- Language Providers: Enhanced Markdown editing with definition, hover, and completion
- Event-Driven Updates: Responsive UI that reacts to file changes
- Install the extension from the VS Code Marketplace
- Open a workspace folder
- Create a
.vsmemodirectory in your workspace root - Create a
config.jsonconfiguration file (see Configuration section)
Create a .vsmemo/config.json file in your workspace root. You can use the provided sample configuration in the examples/ directory as a starting point:
{
"baseDir": "memos",
"fileExtensions": [".md", ".markdown"],
"memoTypes": [
{
"id": "daily",
"name": "Daily Note",
"templatePath": "templates/daily.md",
"baseDir": "daily-notes"
},
{
"id": "project",
"name": "Project Note",
"templatePath": "templates/project.md",
"baseDir": "projects"
},
{
"id": "meeting",
"name": "Meeting Note",
"templatePath": "templates/meeting.md",
"baseDir": "meetings"
}
],
"variables": {
"AUTHOR": "Your Name",
"COMPANY": "Your Company"
}
}VsMemo uses a three-tier directory structure for flexible memo organization:
- Config baseDir: Global base directory (e.g.,
"memos") - MemoType baseDir: Per-memo-type subdirectory (e.g.,
"daily-notes","projects") - Template baseDir: Per-template subdirectory (e.g.,
"archives","active")
Final path: workspace/config.baseDir/memoType.baseDir/template.baseDir/file.md
For example, with the configuration above:
- Daily notes go to:
memos/daily-notes/archives/2025/01/15.md - Project notes go to:
memos/projects/active/project-name.md
Create template files in your .vsmemo/templates/ directory. For example:
.vsmemo/templates/daily.md:
---
title: {TITLE}
date: {DATE}
path: {YEAR}/{MONTH}/{DAY}.md
baseDir: archives
tags: [daily]
---
# {TITLE}
## Tasks
- [ ]
## Notes
## Reflections
.vsmemo/templates/project.md:
---
title: {TITLE}
type: project
created: {DATE}
path: {TITLE}.md
baseDir: active
---
# {TITLE}
## Overview
## Goals
## Resources
## Progress
- Use Command Palette β
VsMemo: Create New Memo - Select a memo type from the dropdown
- Enter a title when prompted
- The memo will be created with the template and opened
- Insert Link: Use
VsMemo: Insert Memo Linkcommand to browse and select files - Manual Linking: Type
[Link Text](vsmemo://path/to/memo.md) - Navigation: Use F12 (Go to Definition) on any vsmemo:// link
- Preview: Hover over links to see content preview
- Backlink View: Open the Backlinks panel in Explorer to see incoming references
- Graph View: Use
VsMemo: Show Memo Graphcommand for visual exploration - Orphaned Files: Use
VsMemo: Show Orphaned Memosto find isolated notes - Statistics: Use
VsMemo: Show Link Statisticsfor connectivity analytics
- Rename: Right-click memo files in Explorer β Rename Memo
- Delete: Right-click memo files in Explorer β Delete Memo
- Refresh: Use refresh buttons in tree views to update indexes
| Command | Description |
|---|---|
VsMemo: Create New Memo |
Create a new memo using templates |
VsMemo: Insert Memo Link |
Insert a link to another memo |
VsMemo: Show Backlinks |
Display backlinks for current file |
VsMemo: Show Memo Graph |
Open interactive graph visualization |
VsMemo: Show Orphaned Memos |
Find memos with no incoming links |
VsMemo: Show Link Statistics |
Display connectivity analytics |
VsMemo: Refresh Backlink Index |
Rebuild backlink database |
VsMemo: Rename Memo |
Rename memo file |
VsMemo: Delete Memo |
Delete memo file |
VsMemo: List Memos |
Browse all memos |
VsMemo: Commit Memo Changes |
Commit changes via Git |
- VS Code 1.101.0 or higher
- Git (for commit functionality)
- Workspace folder (memos are workspace-specific)
VsMemo organizes your memos in a structured way:
your-workspace/
βββ .vsmemo/
β βββ config.json # Configuration file
β βββ templates/ # Template files
β βββ daily.md
β βββ project.md
β βββ meeting.md
βββ memos/ # Base directory (configurable)
βββ daily-notes/ # MemoType baseDir
β βββ archives/ # Template baseDir
β βββ 2025/01/15.md
β βββ 2025/01/16.md
βββ projects/ # MemoType baseDir
β βββ active/ # Template baseDir
β βββ project-alpha.md
β βββ project-beta.md
βββ meetings/ # MemoType baseDir
βββ team-standup-jan.md
βββ client-review.md
VsMemo currently uses file-based configuration (.vsmemo/config.json). No VS Code settings are required.
- Graph visualization requires modern browsers (uses Cytoscape.js)
- Large memo collections (1000+ files) may experience slower indexing
- Git functionality requires a Git repository in the workspace
This extension is open source. Feel free to contribute improvements, report issues, or suggest features on GitHub.
- Clone the repository
- Run
npm installto install dependencies - Use
F5in VS Code to launch Extension Development Host - Make changes and test functionality
- Run
npm testto ensure tests pass
See CONTRIBUTING.md for detailed development guidelines.
MIT License - see LICENSE file for details.
Enjoy building your knowledge base with VsMemo! π