Linksmith Pro
approvedby Timon Wendland
Suggest links to notes and headings as you type, then find missing links with a review-first batch tool. - This plugin has not been manually reviewed by Obsidian staff.
Linksmith Pro
Suggest links to notes and headings as you type, then find missing links with a review-first batch tool.
Linksmith Pro is a powerful Obsidian plugin that enhances your knowledge management workflow by intelligently suggesting links to notes and headings as you type, and by scanning existing notes to suggest missing connections.
šÆ Features
Live Link Suggestions
- Real-time autocomplete for note titles, aliases, and headings while typing
- Fuzzy matching finds relevant links even with partial matches
- Smart scoring prioritizes frequently linked, recent, and contextually relevant suggestions
- Heading support suggests links to specific sections within notes
- Customizable triggers for
[[syntax or plain text typing
Batch Retro-Linking
- Scan existing notes to find opportunities for new links
- Review interface with confidence scores and context previews
- Selective application - choose which suggestions to apply
- Safe modifications with clear previews before changes
Fine-Grained Control
- Exclusion rules for folders, files, tags, and regex patterns
- Heading depth filters to control which heading levels are indexed
- Confidence thresholds to reduce false positives
- Per-file overrides via frontmatter flags
Smart Scoring
- Multi-signal ranking based on:
- Title/alias/heading match quality
- Backlink frequency (popular notes rank higher)
- Recency (recently modified notes get a boost)
- Heading depth (shallower headings preferred)
- Context awareness
š¦ Installation
From Obsidian Community Plugins
- Open Settings ā Community plugins ā Browse.
- Search for Linksmith Pro.
- Select Install, then Enable.
Manual Installation
- Download the latest release from GitHub
- Extract the files to your vault's
.obsidian/plugins/linksmith-pro/directory - Reload Obsidian
- Enable the plugin in Settings ā Community Plugins
š Quick Start
Live Suggestions
- Start typing in any note
- Type
[[or just start typing a note name - See suggestions appear automatically
- Use arrow keys to navigate, Enter to insert
- Heading suggestions show as "Note āŗ Heading"
Retro-Linking
- Open the note you want to enhance
- Open Command Palette (Ctrl/Cmd + P)
- Run Linksmith Pro: Retro-link current file
- Review suggestions in the modal
- Select links to apply and click "Apply Selected"
āļø Configuration
Settings appear in Obsidian's global settings search on version 1.13.0 and later. The same controls remain available on Obsidian 1.5.0 and later.
Suggest Settings
- Enable suggestions: Toggle live link suggestions
- Enable heading suggestions: Include headings in autocomplete
- Minimum characters to trigger: How many characters before showing suggestions (1-5)
- Maximum suggestions: Limit the number of suggestions shown (5-20)
Heading Options
- Minimum heading depth: Lowest heading level to index (H1-H6)
- Maximum heading depth: Highest heading level to index (H1-H6)
- Prefer headings over notes: Boost heading scores in suggestions
Scoring Weights
Fine-tune the importance of different factors:
- Title weight: How much to value title matches
- Heading weight: How much to value heading matches
- Backlinks weight: Importance of link popularity
- Recency weight: How much to favor recently modified notes
Exclusions
Configure what to ignore:
- Excluded folders: Comma-separated folder paths
- Excluded files: Comma-separated file paths
- Excluded tags: Tags to ignore (include #)
- Excluded title patterns: Regex patterns for note titles
- Excluded heading patterns: Regex patterns for headings
Retro-Link Settings
- Enable retro-linking: Toggle batch link suggestions
- Minimum confidence: Threshold for showing suggestions (0-1)
š® Commands
Access these via Command Palette (Ctrl/Cmd + P):
- Toggle live suggestions: Turn autocomplete on/off
- Toggle heading suggestions: Enable/disable heading links
- Retro-link current file: Scan current note for link opportunities
- Retro-link current folder: Scan all notes in current folder
- Rebuild index: Force rebuild of the search index
š Usage Tips
Frontmatter Overrides
Add these to a note's frontmatter for per-file control:
---
linksmith: ignore # Don't index this file at all
linksmith: ignore-headings # Index file but not headings
linksmith_exclude_terms: # Never link these terms in this file
- 'term1'
- 'term2'
---
Best Practices
- Start with defaults: The plugin works well out of the box
- Adjust weights gradually: Small changes have big impacts
- Use exclusions sparingly: Over-excluding reduces suggestions
- Review retro-links carefully: Not all suggestions may be relevant
- Rebuild index after major changes: Settings ā Rebuild index
Performance Tips
- Exclude template folders and archives to speed up indexing
- Lower maximum suggestions if you find the list overwhelming
- Use higher confidence thresholds for retro-linking in large vaults
šļø Technical Details
Architecture
- Indexer: Builds and maintains search indices for notes and headings
- Scorer: Multi-signal ranking algorithm for suggestions
- SuggestEngine: Powers live editor autocomplete
- RetroEngine: Scans documents for batch link opportunities
- Exclusions: Centralized filtering system
Index Sources
- MetadataCache for titles, aliases, headings, frontmatter
- Real-time updates via vault events
- Efficient in-memory caching
Privacy
Linksmith Pro works entirely inside Obsidian. It makes no network requests, collects no telemetry, requires no account, and does not access files outside your vault.
To suggest links across notes, it enumerates Markdown file paths and indexes their cached titles, aliases, and headings. Exclusion rules filter the notes it indexes. Retro-linking reads the notes you choose to scan and writes changes when you apply reviewed suggestions.
Data Structures
- Inverted indices for fast term lookup
- Separate indices for notes and headings
- Alias mapping for alternate names
- Backlink statistics from Obsidian's graph
š Troubleshooting
Suggestions not appearing
- Check that "Enable suggestions" is on in settings
- Verify you've typed enough characters (check minimum trigger setting)
- Try rebuilding the index: Command Palette ā "Rebuild index"
- Check if the current file/folder is in your exclusion list
Headings not showing
- Enable "Enable heading suggestions" in settings
- Check min/max heading depth settings
- Verify heading patterns aren't too restrictive
- Some headings may be filtered by exclusion rules
Retro-linking not working
- Ensure "Enable retro-linking" is on
- Lower the confidence threshold if no suggestions appear
- Check that target notes aren't excluded
- Code blocks and existing links are intentionally skipped
Performance issues
- Reduce maximum suggestions count
- Exclude large folders (archives, templates)
- Disable heading suggestions temporarily
- Rebuild index if it seems stale
Index seems outdated
- Run "Rebuild index" command
- Check console for indexing errors (Ctrl/Cmd + Shift + I)
- Ensure files aren't being excluded unexpectedly
š£ļø Roadmap
v1.0 (Current)
- ā Live note and heading suggestions
- ā Batch retro-linking with review UI
- ā Comprehensive exclusion system
- ā Multi-signal scoring
- ā Real-time index updates
v1.1 (Planned)
- š Anchor resolver for heading renames
- š Disambiguation cards for ambiguous terms
- š Link density guard
- š Glossary mode for definition files
v1.2 (Future)
- š Embedding-based semantic search (optional)
- š Language packs for non-English vaults
- š Plugin API hooks
- š Confidence heatmap visualization
š¤ Contributing
Contributions are welcome! Please feel free to submit issues, feature requests, or pull requests.
Development Setup
# Clone the repository
git clone https://github.com/Timandilu/obsidian-linksmith-pro.git
cd obsidian-linksmith-pro
# Install dependencies
npm install
# Build for development (watch mode)
npm run dev
# Check formatting, Obsidian lint rules, tests, and the production build
npm run check
Releases
Keep package.json, manifest.json, and versions.json in sync, then push a plain version tag such as 1.0.1. GitHub Actions checks the source, builds the plugin, and creates the release with attestations for main.js, manifest.json, and styles.css.
After downloading an asset, verify its build provenance with:
gh attestation verify main.js --repo Timandilu/obsidian-linksmith-pro
Project Structure
linksmith-pro/
āāā main.ts # Plugin lifecycle and link engines
āāā src/ # Trigger helpers, settings validation, and settings tab
āāā tests/ # Regression tests
āāā manifest.json # Plugin metadata
āāā styles.css # UI styling
āāā package.json # Dependencies
āāā tsconfig.json # TypeScript config
āāā esbuild.config.mjs # Build configuration
āāā README.md # Documentation
š License
MIT License - feel free to use, modify, and distribute.
š Acknowledgments
Inspired by:
- Various Complements - for autocomplete patterns
- Note Link System - for retro-linking concepts
- Obsidian community - for feedback and ideas
š Support
- Issues: GitHub Issues
š Links
Made with ā¤ļø for the Obsidian community
Enhance your second brain with intelligent linking
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.