Obsidian logo

Obsidian

Community
AtlasOmnia
obsidian

obsidian — Read, search, create, and edit notes in the Obsidian vault.

Overview

PublisherAtlasOmnia
Repositorydonna-starter
Skill nameobsidian
Stars
131
Forks
9
Bundled files
Instructions only
LicenseMIT
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 AtlasOmnia on GitHub. Read the source before you install it.

Installation

Install the Obsidian 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/AtlasOmnia/donna-starter/tree/main/skills/note-taking/obsidian
  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/AtlasOmnia/donna-starter.git /tmp/donna-starter
mkdir -p .claude/skills
cp -r /tmp/donna-starter/skills/note-taking/obsidian .claude/skills/obsidian
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Obsidian 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 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 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 Vault

Use this skill for filesystem-first Obsidian vault work: reading notes, listing notes, searching note files, creating notes, appending content, and adding wikilinks.

Vault path

Use a known or resolved vault path before calling file tools.

The documented vault-path convention is the OBSIDIAN_VAULT_PATH environment variable, for example from ~/.hermes/.env. If it is unset, use ~/Documents/Obsidian Vault.

File tools do not expand shell variables. Do not pass paths containing $OBSIDIAN_VAULT_PATH to read_file, write_file, patch, or search_files; resolve the vault path first and pass a concrete absolute path. Vault paths may contain spaces, which is another reason to prefer file tools over shell commands.

If the vault path is unknown, terminal is acceptable for resolving OBSIDIAN_VAULT_PATH or checking whether the fallback path exists. Once the path is known, switch back to file tools.

Read a note

Use read_file with the resolved absolute path to the note. Prefer this over cat because it provides line numbers and pagination.

List notes

Use search_files with target: "files" and the resolved vault path. Prefer this over find or ls.

  • To list all markdown notes, use pattern: "*.md" under the vault path.
  • To list a subfolder, search under that subfolder's absolute path.

Search

Use search_files for both filename and content searches. Prefer this over grep, find, or ls.

  • For filenames, use search_files with target: "files" and a filename pattern.
  • For note contents, use search_files with target: "content", the content regex as pattern, and file_glob: "*.md" when you want to restrict matches to markdown notes.

Create a note

Use write_file with the resolved absolute path and the full markdown content. Prefer this over shell heredocs or echo because it avoids shell quoting issues and returns structured results.

Append to a note

Prefer a native file-tool workflow when it is not awkward:

  • Read the target note with read_file.
  • Use patch for an anchored append when there is stable context, such as adding a section after an existing heading or appending before a known trailing block.
  • Use write_file when rewriting the whole note is clearer than constructing a fragile patch.

For an anchored append with patch, replace the anchor with the anchor plus the new content.

For a simple append with no stable context, terminal is acceptable if it is the clearest safe option.

Targeted edits

Use patch for focused note changes when the current content gives you stable context. Prefer this over shell text rewriting.

Wikilinks

Obsidian links notes with [[Note Name]] syntax. When creating notes, use these to link related content.

Daily wrap-up workflow

For evening wrap-up work, follow the exact note structure, carry-forward handling, Todoist integration, monthly index update, and verification pattern below.

When you are writing tomorrow's daily note:

  • Treat the requested structure as a contract; preserve heading order exactly.
  • Populate carry-forward items from today's incomplete work and Todoist overdue items.
  • If the note is managed by another process or opens with template scaffolding, verify the on-disk file after writing and again after a brief pause before reporting success.
  • Prefer an atomic temp-file write + rename when a whole-note rewrite is clearer than incremental edits.

When doing the wrap-up itself:

  • Build tomorrow's note without overwriting today's note.

  • Follow the requested section order exactly; daily notes are contracts, not freeform summaries.

  • Pull the carry-forward list from incomplete work and overdue Todoist items, then sort them into the correct task section for tomorrow.

  • On weekends, omit the entire ### [Work] section rather than leaving an empty placeholder.

  • Update the monthly index under the correct ## Weekdays or ## Weekends section for tomorrow's actual day.

  • If the monthly index contains a temporary placeholder or duplicate entry for tomorrow, replace it with the canonical link and remove the placeholder so the index stays clean.

  • If a write tool warns that the file changed externally, re-read the file from disk before treating the edit as finished.

  • If a note-tool snapshot still looks stale after a successful atomic rewrite, confirm with a direct filesystem read (Path.read_text() + stat()) before declaring failure.

  • For exact-structure notes, prefer a whole-file rewrite over incremental patching when practical, then verify the final on-disk text line-by-line. If a rewrite is needed, use a temp file + atomic rename so the note cannot be left in a half-updated state.

  • Verify the written note by reading it back before reporting success, and confirm there are no template leftovers such as placeholder bullets or stray - None (or ...) text.

  • For macOS/BSD date math, use TZ=America/Chicago date -v+1d ... for tomorrow; GNU date -d tomorrow is not portable here.

Session logs and continuity

When a session spans multiple projects, keep a broad Daily Log as the top-level continuity note and place project-specific detail in nested notes.

  • Use the Daily Log for the cross-project summary of what was accomplished, what was learned, and what remains open.
  • Put each project under its own subheading in the broad log, then link to deeper project notes for detail.
  • If a project already has its own journal, keep that as the detail layer and link it back to the Daily Log.

Frequently asked questions

What does the Obsidian AI skill do?

obsidian — Read, search, create, and edit notes in the Obsidian vault.

Why use Obsidian on TypingMind?

Because you install it once and use it with any model. Obsidian 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 in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/AtlasOmnia/donna-starter/tree/main/skills/note-taking/obsidian. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Obsidian?

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?

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

Is the Obsidian AI skill free?

Yes. It is published on GitHub by AtlasOmnia under the MIT license. 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 👇