README file from
GithubClaude Code Skills for Obsidian
An Obsidian plugin that connects your notes to the Claude Code CLI. Highlight any text in a note, right-click to select a skill, and get a streaming AI response in a persistent side panel — without leaving Obsidian.
Features
- Right-click selected text → pick a Claude Code skill → response streams into the sidebar
- Persistent side panel — stays open while you read and edit your notes
- Multi-turn conversation — follow-up questions in the same session (full context preserved via
--resume) - Freeform chat — open the panel without selecting text via the ribbon icon or command palette
- Loading animation — three-dot bounce while Claude is connecting and thinking
- Full conversation export — save the entire transcript (user messages + all responses) as a vault note
- Linux process isolation — subprocess wrapped in
systemd-run --scopewithIPAddressDeny=anywhere available
Requirements
- Claude Code CLI installed and authenticated (
claudebinary on your PATH) - Obsidian desktop app (plugin is desktop-only — uses Node.js
child_process)
Network usage: This plugin spawns the
claudeCLI as a subprocess. The CLI communicates with the Anthropic API over the internet. No data is sent by this plugin directly — all network activity goes through the Claude Code CLI.
Installation
From Community Plugins (once approved)
- Settings → Community plugins → Browse
- Search for Claude Code Skills
- Install and enable
Manual installation
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Copy them to
<your-vault>/.obsidian/plugins/claude-code-skills/ - Settings → Community plugins → enable Claude Code Skills
Configuration
Settings → Claude Code Skills:
| Setting | Description | Default |
|---|---|---|
| Claude binary path | Full path to the claude executable |
Auto-detected on first load |
| Working directory | Directory claude runs from. Put your CLAUDE.md here for project context. |
Home directory |
| Timeout (ms) | Max time to wait before killing the subprocess | 120000 (2 min) |
| Max budget per query (USD) | Hard API spend cap per invocation. Set to 0 to disable | 0.25 |
| Output folder | Vault folder where "Create Note" saves transcripts. Leave empty for vault root | (vault root) |
The claude binary is auto-detected from common install locations on first load. Run which claude in a terminal if auto-detection fails.
Usage
Skill dispatch (primary workflow)
- Highlight any text in a note (e.g., a YARA rule, a log snippet, a code block)
- Right-click → select Claude: [skill name] from the context menu
- The side panel opens — your selected text appears as a user bubble and Claude's response streams in
- Type follow-up questions in the input box at the bottom (Enter to send, Shift+Enter for newline)
- Optionally: Create Note to save the full conversation transcript, or Copy last for just the last response
- Close Session when done — kills the subprocess and closes the panel
Freeform chat (no selection required)
- Click the bot icon in the left ribbon, or
Ctrl+P→ Open Claude Code Skills panel
The panel opens empty and you can type anything. Claude runs with the context of your configured working directory.
Skills
This plugin reads skills from ~/.claude/skills/. Each skill is a directory with a SKILL.md file containing YAML frontmatter:
~/.claude/skills/
my-skill/
SKILL.md ← frontmatter: name, description
SKILL.md frontmatter example:
---
name: My Skill
description: What this skill does
---
If no skills are found, the right-click menu will be empty but the freeform panel still works.
How it works
The plugin spawns claude --print --output-format stream-json --include-partial-messages as a subprocess:
- Initial skill invocation sends
/{skillId}\n\n{selected text}on stdin - Follow-up messages use
--resume <sessionId>for multi-turn continuation - Streamed JSON events are parsed as they arrive — text appears chunk by chunk
- On Linux, the subprocess is wrapped in
systemd-run --scope --user -p IPAddressDeny=anyfor process isolation - The subprocess is killed if the panel is closed or Close Session is clicked
Building from source
git clone https://github.com/p3nguln5/obsidian-claude-code-skills.git
cd obsidian-claude-code-skills
npm install # one-time: installs build tools
npm run build # compiles src/*.ts → main.js
Then copy main.js, manifest.json, and styles.css to your vault's .obsidian/plugins/claude-code-skills/ directory.
For development with auto-rebuild on save: npm run dev
License
MIT — see LICENSE