cross-linker

cross-linker is a skill for Claude Code from Ar9av/obsidian-wiki. It costs 42 tokens per session (3,749 once invoked), scanned A, original, MIT.

A tool that scans an Obsidian wiki for pages that should link to one another and adds missing cross-references. Obsidian is a note-taking app built around linked pages.

In plain words
What is it for?
Use it after importing many notes or whenever you want to find missing links and connect related pages in the wiki.
Why use it?
Related notes may remain isolated even when they discuss the same topic. Finding those missing links makes the wiki easier to browse and connect.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the obsidian-wiki plugin — 40 skills, 2 hooks shipped together

Good fit Use it after importing many notes or whenever you want to find missing links and connect related pages in the wiki.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/ar9av/obsidian-wiki/cross-linker
About the project

obsidian-wiki is a framework that helps AI agents build and maintain an interconnected knowledge base from text-based material in an Obsidian vault. It is for people who want their agents to remember discoveries, connect related information, and answer questions with wiki-link citations. Catalogue add-ons provide the agent skills, instructions, agents, and configuration used to create and maintain these wikis.

Ar9av/obsidian-wiki · 3,619 stars · on GitHub

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add Ar9av/obsidian-wiki --skill cross-linker
Clone the repo
git clone --depth 1 https://github.com/Ar9av/obsidian-wiki

Made for: Claude Code.

Or install obsidian-wiki, the plugin that ships this one along with the rest of its 40 skills, 2 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for cross-linker

README.md
[![agentmods](https://agentmods.dev/badge/skills/ar9av/obsidian-wiki/cross-linker/github.svg)](https://agentmods.dev/skills/ar9av/obsidian-wiki/cross-linker)
Your own site
<a href="https://agentmods.dev/skills/ar9av/obsidian-wiki/cross-linker"><img src="https://agentmods.dev/badge/skills/ar9av/obsidian-wiki/cross-linker/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for cross-linker

Your own site · 80×15
<a href="https://agentmods.dev/skills/ar9av/obsidian-wiki/cross-linker"><img src="https://agentmods.dev/badge/skills/ar9av/obsidian-wiki/cross-linker.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 42 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,749 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • Socket pass 6 Oct 2026
  • Snyk pass 7 Oct 2026
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00042 $0.03749
Opus 5.5 $0.00017 $0.01500
Sonnet 5.5 $0.00008 $0.00750
Haiku 4.5 $0.00004 $0.00375

Measured 19d ago against content hash 13fcd5237620, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

cross-linker scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 19d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.skills/cross-linker/SKILL.md · 311 lines

How it starts

The opening of the file, as written. The whole thing — 311 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Cross-Linker — Automated Wiki Cross-Referencing

You are weaving the wiki's knowledge graph tighter by finding and inserting missing [[wikilinks]] between pages that should reference each other but currently don't.

Follow the Retrieval Primitives table in llm-wiki/SKILL.md. Build the registry in Step 1 by grepping frontmatter only (not full pages). Reserve full Read for the unlinked-mention detection pass, and even there, only read pages whose summaries/titles make them plausible link targets. Blind full-vault reads are what this framework exists to avoid.

Before You Start

Writing profile: Before drafting or rewriting natural-language Markdown, read and apply the Writing Profile Resolution section in llm-wiki/SKILL.md. Framework schema, provenance, safety, and operation-specific requirements take precedence. WRITING.md preferences apply only to newly drafted or rewritten natural-language Markdown; preserve source content and structured records.

  1. Resolve config — follow the Config Resolution Protocol in llm-wiki/SKILL.md (inline @name override → walk up CWD for .env → global config → prompt setup). This gives OBSIDIAN_VAULT_PATH and OBSIDIAN_LINK_FORMAT (default: wikilink).
  2. Read index.md to get the full inventory of pages and their one-line descriptions
  3. Skim log.md to see what was recently ingested (focus linking effort on new pages)

When inserting links in Step 4, apply the link format from llm-wiki/SKILL.md (Link Format section) using the OBSIDIAN_LINK_FORMAT value. When OBSIDIAN_LINK_FORMAT=markdown, compute the relative .md path from the file being edited to the target page.

Step 1: Build the Page Registry

Glob all .md files in the vault (excluding _archives/, _readouts/, .obsidian/). For each page, extract:

  • Filename (without .md) — this is the wikilink target
  • Title from frontmatter
  • Aliases from frontmatter (if any)
  • Tags from frontmatter
  • Category from frontmatter or directory inference
  • One-line summary — first sentence or title field

Read the full file on GitHub · 311 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 19d ago Changed · -6 lines · -95 tokens per session 13fcd5237620
  2. 1mo ago Changed · +7 lines 14ff7c3377c4
  3. 1mo ago First seen · 310 lines · 137 tokens per session scan A c7d0872eeb38

Subscribe to this mod's changes

cross-linker is a skill published in the GitHub repository Ar9av/obsidian-wiki (3,619 stars, last pushed 5d ago), licensed MIT. It adds 42 tokens to every session and 3,749 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

llm-wiki

Maintain a personal team knowledge base using the LLM Wiki pattern — incremental ingest, query, and lint operations on a layered wiki architecture.

TheSmuks/ai-project-template · 31 tokens

llmwiki

Build and use a persistent, citation-traceable knowledge wiki from documents, research papers, notes, or project documentation. Use for llmwiki projects, retrieving reusable evidence for an agent task, or compiling a corpus for repeated questions. A one-off file read or live web search does not need a wiki.

atomicstrata/llm-wiki-compiler · 66 tokens

llm-wiki

Build and maintain a persistent, interlinked Obsidian-compatible markdown wiki using Karpathy's LLM Wiki pattern. Extension-backed with auto-generated metadata, guardrails, and 14 custom tools (+3 opt-in agent-trajectory tools).

zosmaai/pi-llm-wiki · 52 tokens

link-memory

Use after important user-approved decisions, when durable context should be proposed or reviewed, and for explicit Link memory lifecycle work: remember, recall, review, update, archive, restore, forget, or explain local memories through the CLI without requiring MCP.

gowtham0992/link · 0 tokens

link-retrieve

Use before answering work that may depend on user memory, project history, source-backed notes, or prior decisions; retrieve compact Link context through the CLI without loading the whole wiki or requiring MCP.

gowtham0992/link · 42 tokens

link-ingest

Use when raw files are present, source pages look stale, or a user asks to ingest notes into Link; refresh source-backed wiki pages, propose memories, and validate updates through the CLI without MCP.

gowtham0992/link · 44 tokens