p3nguln549 downloadsStream Claude Code skill responses into a persistent side panel from any note.
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.
--resume)systemd-run --scope with IPAddressDeny=any where availableclaude binary on your PATH)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.
main.js, manifest.json, and styles.css from the latest release<your-vault>/.obsidian/plugins/claude-code-skills/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.
Ctrl+P → Open Claude Code Skills panelThe panel opens empty and you can type anything. Claude runs with the context of your configured working directory.
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.
The plugin spawns claude --print --output-format stream-json --include-partial-messages as a subprocess:
/{skillId}\n\n{selected text} on stdin--resume <sessionId> for multi-turn continuationsystemd-run --scope --user -p IPAddressDeny=any for process isolationgit 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
MIT — see LICENSE