Obsidian Organizer logo

Obsidian Organizer

Community
Agents365-ai
obsidian-organizer

File notes into the right folder in the user's Obsidian vault and audit/reorganize its structure, via the `obsidian` CLI and the `00_Index/Folder_Map.md` map note. Use when a note needs filing, when the user asks where a note belongs, or wants to tidy, deduplicate, audit, or restructure folders. Requires the Obsidian app to be running.

Overview

PublisherAgents365-ai
Repository365-skills
Skill nameobsidian-organizer
Stars
99
Forks
16
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by Agents365-ai on GitHub. Read the source before you install it.

Installation

Install the Obsidian Organizer AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Agents365-ai/365-skills/tree/main/plugins/obsidian-organizer/skills/obsidian-organizer
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Agents365-ai/365-skills.git /tmp/365-skills
mkdir -p .claude/skills
cp -r /tmp/365-skills/plugins/obsidian-organizer/skills/obsidian-organizer .claude/skills/obsidian-organizer
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Obsidian Organizer in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Obsidian Organizer on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Obsidian Organizer is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Obsidian Organizer

Keep a large Obsidian vault tidy over time by (1) filing new notes into the best-fit folder and (2) auditing/reorganizing existing structure. Both modes lean on one shared idea: a plain-markdown map of "what goes where" that lives inside the vault so it never drifts out of sync with reality.

This skill drives the obsidian CLI (from the separate obsidian-cli skill), which talks to the live, running Obsidian desktop app. The app must be open. If a command fails with a connection/vault error, tell the user to open Obsidian rather than guessing.

Why the map lives in the vault (read this first)

Deciding a folder for every new note by re-listing ~650 folders is expensive and guesses drift. Copying the folder taxonomy into Claude's private memory creates a worse problem: a stale copy that silently disagrees with the real vault.

The fix is one file, 00_Index/Folder_Map.md, checked into the vault itself. It is the single source of truth for filing decisions. Read it with one cheap call before you file or reorganize — do not re-run a full obsidian folders traversal unless the map is missing or the user asks you to rebuild it.

bash
obsidian read path="00_Index/Folder_Map.md"

It is deliberately plain markdown (headers + bullets, no required frontmatter) so both you and the human can append to it by hand as new categories emerge. When you create a new folder/category, add a line to this file so the next filing decision remembers it.

If the map does not exist (deleted, or a fresh vault), rebuild it from the live vault, not from a copy stashed in this skill — a bundled copy would drift from reality, which is the whole failure this file exists to prevent. List the real structure with obsidian vault="MyVault" folders (and folders folder=... for depth), draft a plain-markdown map grouped by top-level PARA folder with a short "what goes here" note per folder plus a filing rule-of-thumb, confirm the groupings with the user, then create it: obsidian vault="MyVault" create path="00_Index/Folder_Map.md" content="...".

Vault targeting

MyVault above is a placeholder — substitute the user's actual vault name everywhere. If the user has more than one vault, target the intended one explicitly on every command so a stray "most recently focused vault" default cannot misfile a note:

bash
obsidian vault="MyVault" read path="00_Index/Folder_Map.md"

vault= must be the first parameter. This is the only vault-specific value in the skill — everything else comes from the vault's own Folder_Map.md.

The one hard safety rule: never touch vault files with raw shell

When you relocate or rename a file, always use the CLI's own move / rename commands. These go through Obsidian's API, so Obsidian's built-in "automatically update internal links" behavior rewrites every wikilink and backlink across the vault to follow the moved file. A raw mv, rm, rmdir, or find -delete on a path inside the vault skips that repair and silently leaves broken links pointing at the old location.

So, for anything under the vault directory:

  • Move/rename → obsidian move ... or obsidian rename ...
  • Delete → obsidian delete ... (sends to trash unless permanent)
  • Never use Bash mv / rm / rmdir / find -delete on vault-internal paths.

Reading a file's bytes with a non-mutating tool is fine; mutating vault files is CLI-only.


Mode 1 — File a note

Goal: given a note (an existing path, or a title + content you're about to write), put it in the single best-fit folder.

  1. Read the map once: obsidian vault="MyVault" read path="00_Index/Folder_Map.md".
  2. Match the note's topic to a destination using the map's filing rules. Favor an existing specific subfolder over a general one (e.g. a Seurat how-to goes to 03_Research_Knowledge/Bioinformatics/seurat/, not a generic bucket).
  3. Act on the best fit:
    • A clearly matching folder exists → file it there.
      • New note: obsidian vault="MyVault" create path="03_Research_Knowledge/Bioinformatics/seurat/My Note.md" content="..." silent
      • Existing note to relocate: obsidian vault="MyVault" move path="00_Inbox/My Note.md" to="03_Research_Knowledge/Bioinformatics/seurat" (to may be a folder or a full path).
    • A rough-but-imperfect fit exists (e.g. a tool with no dedicated subfolder) → use the map's catch-all convention (e.g. Bioinformatics/misc/) and tell the user where it went.
    • No category fits well → stop and ask the user before inventing a folder. Propose a name and location; don't silently create new taxonomy.
  4. Remember new categories. When the user approves a new folder, append a line describing it under the right section of 00_Index/Folder_Map.md (obsidian append path="00_Index/Folder_Map.md" content="...") so future filing decisions know about it.
  5. Briefly report the final path.

Notes on the CLI: create makes intermediate folders as needed; add silent so it doesn't steal focus by opening the note. move's to accepts a destination folder or a full path; use rename name="New Title" to change a title in place.


Mode 2 — Audit / reorganize

Goal: given a scope (a folder path, "recent inbox notes", or an explicit request like "clean up the cellchat notes"), find problems, propose a plan, get explicit confirmation, then execute. Never move, merge, or delete in bulk silently.

Step 1 — Gather signals for the scope

Read the map first for context, then use the structural commands. Scope every list to the folder in question where the command supports it.

  • obsidian vault="MyVault" files folder="<scope>" — inventory + spot near-duplicate titles (e.g. "CellChat analysis" vs "CellChat Analysis v2").
  • obsidian vault="MyVault" orphans — notes with no incoming links (nothing links to them; candidates for filing/merging/archiving).
  • obsidian vault="MyVault" deadends — notes with no outgoing links (often stubs or captures that were never developed).
  • obsidian vault="MyVault" search:context query="<topic>" path="<scope>" — compare content of suspected near-duplicates before proposing a merge.
  • obsidian vault="MyVault" backlinks path="<file>" — before merging or deleting a note, see what links to it so you don't strand references.

There is no dedicated "duplicates" command; detect duplicates by comparing the titles from files and confirming with search:context / read.

Step 2 — Propose a plan (and wait)

Present a concrete, itemized plan and stop for confirmation. Group by action:

Proposed reorganization for Bioinformatics/cellchat/ (7 notes):

MERGE
- "CellChat analysis.md" + "CellChat analysis (1).md" → keep "CellChat analysis.md",
  fold unique content from the duplicate in, then delete the duplicate.

MOVE
- "Spatial CellChat.md" → Single_Cell/Spatial_Omics/ (topic is spatial, not the tool)

RENAME
- "untitled cellchat.md" → "CellChat LR database notes.md"

No change: 3 notes look fine.

Proceed? I won't move/merge/delete anything until you confirm.

Keep the plan honest about uncertainty — flag guesses so the user can veto them.

Step 3 — Execute only after "yes"

On confirmation, run the moves/renames/deletes through the CLI in the order that keeps links intact (usually: merge content first, then delete the emptied duplicate; move before rename if both apply). Use move, rename, delete, append/read for merges — never raw shell. Report what changed, and append any new folders/categories you created to 00_Index/Folder_Map.md.

Known standing reorg candidates

If the vault's Folder_Map.md calls out known problem areas (legacy folders that overlap a newer one, a subfolder with accumulated near-duplicate titles, etc.), surface them when they're in scope — but still propose-and-confirm before touching anything.


Command quick reference

NeedCommand
Read the mapobsidian vault="MyVault" read path="00_Index/Folder_Map.md"
Create/file a new noteobsidian vault="MyVault" create path="Folder/Note.md" content="..." silent
Move/relocate a noteobsidian vault="MyVault" move path="Old/Note.md" to="New/Folder"
Rename in placeobsidian vault="MyVault" rename path="Folder/Note.md" name="New Title"
Delete (to trash)obsidian vault="MyVault" delete path="Folder/Note.md"
List files in a folderobsidian vault="MyVault" files folder="<scope>"
Orphans / dead-endsobsidian vault="MyVault" orphans · ... deadends
Search with contextobsidian vault="MyVault" search:context query="..." path="<scope>"
Backlinks to a noteobsidian vault="MyVault" backlinks path="Folder/Note.md"
Append to the mapobsidian vault="MyVault" append path="00_Index/Folder_Map.md" content="- ..."

Run obsidian help <command> to confirm exact params — the CLI is the ground truth.

Frequently asked questions

What does the Obsidian Organizer AI skill do?

File notes into the right folder in the user's Obsidian vault and audit/reorganize its structure, via the `obsidian` CLI and the `00_Index/Folder_Map.md` map note. Use when a note needs filing, when the user asks where a note belongs, or wants to tidy, deduplicate, audit, or restructure folders. Requires the Obsidian app to be running.

Why use Obsidian Organizer on TypingMind?

Because you install it once and use it with any model. Obsidian Organizer is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Obsidian Organizer in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Agents365-ai/365-skills/tree/main/plugins/obsidian-organizer/skills/obsidian-organizer. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Obsidian Organizer?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Obsidian Organizer?

As many as you like. As long as a model supports skills, you can use Obsidian Organizer with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Obsidian Organizer AI skill free?

It is published on GitHub by Agents365-ai. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇