siulved543 downloadsNotion-style AI writing, chat and vault tools powered by your local Claude Code CLI.
Notion-style AI inside Obsidian, powered by your local Claude Code CLI. It uses the CLI's logged-in session (your Claude plan), so there is no API key to configure. The vault's CLAUDE.md shapes every answer, because the CLI runs with the vault as its working directory.
Desktop only. It needs the Claude Code CLI installed and logged in.
Interface languages: English, 简体中文, 日本語, 한국어, Español, Deutsch, Français, Português (Brasil), Русский and Italiano, following Obsidian's language setting. A translation that reads wrong? Open an issue with the text and what it should say.
| AI palette | Type a prompt or pick an action. The context Claude will see shows up as chips (selection, around cursor, note, project hub, linked notes, snap range, profile), and you can switch each one off. Tab sends the question to the vault chat instead. |
| Inline card | Answers stream into a card under your text. Enter replaces (or inserts), Shift+Enter does the other, typing in the box refines the answer, Alt+R retries and Esc discards. Accepted edits are normal editor changes, so Ctrl+Z undoes them. |
| Link checker | Any [[link]] in an answer that points to a note that doesn't exist is flagged before you accept, with a one-click Unlink them. |
| Selection toolbar | Appears when you select text. It shows Ask Claude plus every action with bubble: true. |
| Ghost text | Continue writing streams a suggestion in grey at the cursor. Tab accepts it; typing or Esc dismisses it. |
| Chat panel | Asks questions about the vault. Claude can Read/Grep/Glob your notes but never edit them, and it cites notes as [[links]] you can click. Conversations resume through --resume and are kept per chat. Sibling vaults (Settings) can be searched read-only and are cited with obsidian:// links. |
| Whole-note actions | Rewrites always go through a diff view first and are applied as a minimal edit, so undo, folds and scroll position survive. |
| History | Logs every run with model, time and cost. Applied changes keep before/after snapshots, so you can revert them from the panel. |
| Usage limits | Your current 5-hour session and weekly usage as two bars, with when each one resets. The status bar shows the session percentage; click it for the full view. It updates after every run at no extra cost, and Check now sends one tiny request. |
| Vault tools | Suggest tags/categories (from your existing vocabulary only) · Extract selection to a new note · Recap today / last 7 days · Carry open tasks into today's daily note · Create a Base from a description · Send tasks to the project hub · Project status from the hub and related notes. |
| Clippings (opt-in) | New notes in Clippings/ get a summary property. |
On first run the plugin creates Templates/AI/ (configurable):
Actions/*.md: one action per note. The frontmatter sets scope, output, model, tools, icon, group, bubble and index, and the body is the prompt. Available variables are {{selection}}, {{cursor}}, {{note}}, {{title}}, {{path}}, {{tags}}, {{hub}}, {{snap}}, {{today}} and {{input}}. Any context the prompt doesn't use is attached at the end.Profiles/*.md: extra instructions picked by the active note's match_tags, match_folders and match_categories. A profile with no rules is the fallback.Cómo funciona.md: the full reference.Edits reload instantly, and every action also becomes a command you can bind to a hotkey.
Never send these notes (paths, names, folders) and never send notes with these tags are enforced twice:
--settings deny rules for Read/Edit.The second layer matters for sibling vaults: a vault's own .claude/settings.json only applies when the CLI runs inside that vault. This was tested: without the plugin's rules, a cross-vault search returns a note the deny list names; with them, it doesn't.
const cs = app.plugins.plugins["claude-studio"].api;
await cs.run("Three title ideas for: " + tp.file.title); // Templater
await cs.runAction("resumir-nota");
cs.ask("¿Qué tengo pendiente?");
URIs:
obsidian://claude-studio?do=chat&prompt=…obsidian://claude-studio?do=paletteobsidian://claude-studio?do=usageobsidian://claude-studio?do=recap&days=7obsidian://claude-studio?do=run&action=Resumir%20nota&file=Notes/X.mdclaude command-line program on your computer, which Obsidian on mobile cannot do.claude once in a terminal. The plugin looks for it in the usual install locations, or you can set the path in its settings.claude program, so it needs things Obsidian's API doesn't offer. Each use is listed here:child_process (shell execution): starts the claude command-line program for each run (spawn, no shell except for the Windows claude.cmd shim), asks it for --version when you press Test, looks for it with where claude (Windows) or sh -lc "command -v claude" (macOS/Linux) when you press Detect, and runs taskkill on Windows to stop a run you cancel.fs (direct filesystem access), only for these reads, none of them in your vault: checking that the claude program exists at its usual install paths and, for the Windows .cmd shim, reading that one small file to find the real .exe; and reading Obsidian's own obsidian.json to list your other vaults for the Sibling vaults setting. The plugin never writes outside your vault through fs; vault notes are always read and written through Obsidian's API.os.homedir(), process.platform and the HOME and APPDATA variables): only to build those install and obsidian.json paths per operating system. Nothing is sent anywhere or used to identify you. The CLI process also receives a copy of your environment (so it finds its own login and PATH), minus ANTHROPIC_API_KEY and ANTHROPIC_AUTH_TOKEN when Use my subscription is on.In Obsidian, open Settings → Community plugins → Browse and search for "Claude Studio".
npm ci
npm run lint
npm test # unit tests for the pure helpers (Node ≥ 22.18)
npm run build # tsc + esbuild → main.js
Code map:
src/runner.ts: spawns the CLI (stream-json, partial messages, stdin prompt) and resolves the npm .cmd shim to the native exesrc/core.ts: exclusions and deny rules, model aliases, statussrc/context.ts: chips and prompt assemblysrc/library.ts: actions and profilessrc/actions.ts: output routingsrc/editor/*: CodeMirror card, ghost text and bubblesrc/ui/*: palette, chat, history, usage limits, diff and result modalsrc/usage.ts: last usage-limit snapshot from the CLI (rate_limit_event), saved to usage.jsonsrc/icon.ts: the plugin's own burst iconsrc/features.ts: vault toolssrc/integrations.ts: clippings, API and URI| Plugin | What it does | Source |
|---|---|---|
| Shared Blocks | Write a block of text once and reuse it in any note. Edit the source and every reference re-renders live. | shared-blocks |
| Text Case and Cleanup | Change case, make camelCase or slugs, sort lines and remove duplicates, and repair text pasted out of a PDF, without touching code or URLs. | text-format |
| Typography as You Type | Curly quotes, dashes and ellipses as you type, kept out of code and maths, with Backspace to take one back. | smart-typography-plugin |
| Section Numbering | Number headings as an outline (1, 1.1, 1.2) and keep every link to them working when they renumber. | section-numbering |
| Spreadsheet to Table | Paste cells from Excel or Google Sheets as a Markdown table with a real header, insert CSV files, and copy tables back out. | spreadsheet-to-table |
| Hybrid Line Numbers | Relative and hybrid line numbers for Vim-style jumps, where a folded section counts as one line. | hybrid-line-numbers |
| List Item Callouts | Colour a single list item as a callout by starting it with a character such as &, ! or ?. |
list-item-callouts |
| Folder Counts | See how many notes or files each folder holds, right in the file explorer, with a vault total and folder exclusions. | folder-counts |
| Note Reading Time | Reading time of the current note or your selection in the status bar, optionally saved to a property. | note-reading-time |
| Task Rollover | Roll unfinished tasks from your last daily note into today's when it is created, with a real undo. | task-rollover |
| Zoom Into Section | Zoom into a heading or list item to see only it and its contents, with a breadcrumb bar to climb back out. | zoom-into-section |
| Link Title on Paste | Paste a web address and get a Markdown link with the page's title, fetched in the background and undone in one step. | link-title-on-paste |
| Update Radar | Checks your installed community plugins for updates in the background, shows what changed, and flags the ones that look abandoned. | community-update-checker |
| Dataview to Bases | Convert Dataview queries into Bases blocks, and see which queries in your vault can be converted. | dataview-to-bases |
| Line Editing Commands | Duplicate, join, sort and reverse lines, insert blank lines and jump to a line number, with multi-cursor support. | line-editing-commands |
| Note Mover Rules | Move notes into folders by ordered rules on tags, properties, titles and paths, with a preview before any bulk move. | note-mover-rules |
| Tab History | Keeps each tab's back and forward history across restarts, and adds commands to move, maximize and close tabs. | tab-history |
| URL Cards | Shows web addresses as cards with title, description and image, and reads existing cardlink blocks. | url-cards |
| Vim Config | Loads a vimrc-style file from your vault so your key mappings and editor commands are ready when vim mode starts. | vim-config |
| Task Archive | Moves completed tasks, with their sub-items, into an archive section or note. | task-archive |
| Revisit Later | Link the current note into a future daily note, with a date typed in plain English, so it comes back when you want to review it. | revisit-later |
| Explorer Colors Plus | Color files and folders in the file explorer, with a palette, cascading to children, and import from File Color. | explorer-colors-plus |
| Book Lookup | Create book notes from Open Library or Google Books, with cover images, ISBN search and Book Search compatible templates. | book-lookup |
| Web Search Menu | Search the web for selected text or the note title from the right-click menu, with engines you define. | web-search-menu |
| Word Lookup | Look up any word in a sidebar dictionary with definitions, phonetics, synonyms and antonyms, or create a note for it. | word-lookup |
| Quick Translate | Translate the selection or a whole note into another language with no account, keeping links, code and front matter untouched. | quick-translate |
| Dice Rolls | Inline dice rolls you click to reroll, in Live Preview and Reading view, with full dice notation, a roll dialog and a roll history. Reads Dice Roller notes. | dice-rolls |
All of them are in the community directory: Settings -> Community plugins -> Browse, then search for the name.