Linksmith Pro

approved

by 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.

↓ 32 downloadsUpdated 8d agoMIT

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

  1. Open Settings → Community plugins → Browse.
  2. Search for Linksmith Pro.
  3. Select Install, then Enable.

Manual Installation

  1. Download the latest release from GitHub
  2. Extract the files to your vault's .obsidian/plugins/linksmith-pro/ directory
  3. Reload Obsidian
  4. Enable the plugin in Settings → Community Plugins

šŸš€ Quick Start

Live Suggestions

  1. Start typing in any note
  2. Type [[ or just start typing a note name
  3. See suggestions appear automatically
  4. Use arrow keys to navigate, Enter to insert
  5. Heading suggestions show as "Note › Heading"

Retro-Linking

  1. Open the note you want to enhance
  2. Open Command Palette (Ctrl/Cmd + P)
  3. Run Linksmith Pro: Retro-link current file
  4. Review suggestions in the modal
  5. 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

  1. Start with defaults: The plugin works well out of the box
  2. Adjust weights gradually: Small changes have big impacts
  3. Use exclusions sparingly: Over-excluding reduces suggestions
  4. Review retro-links carefully: Not all suggestions may be relevant
  5. 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

šŸ”— 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.