Claude Code Terminal
pendingby Daniel Ternyak
Embedded terminal with Claude Code AI integration.
Claude Code Terminal
An embedded terminal plugin for Obsidian that integrates with Claude Code, Anthropic's AI coding assistant.
Features
- Floating Terminal: Quick-access popup window
- Sidebar Integration: Dock to Obsidian's native right sidebar
- Auto-launch Claude: Optionally start Claude Code automatically when terminal opens
- Theme Matching: Terminal colors adapt to your Obsidian theme
- Resizable & Draggable: Floating window can be positioned and resized
- Full PTY Support: Real terminal emulation via node-pty
Requirements
- Obsidian 1.5.0 or later (desktop only)
- Claude Code CLI installed and configured (installation guide)
- Node.js 18+ (for building from source)
- Build tools for compiling native modules (Xcode Command Line Tools on macOS, build-essential on Linux, Visual Studio Build Tools on Windows)
Installation
From Community Plugins
- Open Obsidian Settings > Community plugins
- Search for "Claude Code Terminal"
- Install and enable
From Source
This plugin uses native modules that need to be compiled for your system.
cd /path/to/your/vault/.obsidian/plugins
git clone https://github.com/dternyak/claude-code-terminal.git
cd claude-code-terminal
npm install
npm run rebuild:electron
npm run build
Restart Obsidian and enable in Settings > Community plugins.
Electron Version Note
The rebuild:electron script is configured for Electron 37.3.1 (Obsidian 1.9.x). If you're using a different Obsidian version, you may need to adjust the Electron version in package.json:
# Check Obsidian's Electron version
# In Obsidian: Open Developer Tools (Cmd+Option+I) > Console > process.versions.electron
# Update rebuild command if needed
npm run rebuild:electron -- -v YOUR_ELECTRON_VERSION
Usage
Toggle Terminal
Easiest: Cmd+P (Mac) or Ctrl+P (Windows/Linux) → type "Claude" → select command
Or use:
- Hotkey: Cmd+Shift+
</kbd> (Mac) / <kbd>Ctrl+Shift+(Windows/Linux) - Ribbon: Terminal icon in left sidebar
Floating Window Controls
| Button | Action |
|---|---|
| + | Clear terminal |
| Panel icon | Dock to right sidebar |
| - | Hide (terminal keeps running) |
| x | Close and terminate session |
Sidebar Mode
When docked in the right sidebar, use the "..." menu for:
- Undock to floating window - Return to floating mode
- Clear terminal - Clear the screen
Configuration
Open Settings > Claude Terminal:
| Setting | Description | Default |
|---|---|---|
| Shell path | Path to shell executable | /bin/zsh (macOS/Linux) or powershell.exe (Windows) |
| Auto-launch Claude | Run claude command on terminal open | Enabled |
| Font size | Terminal font size | 13px |
Claude Code Setup
For the best experience with Claude Code in your vault, copy the example files from the examples/ folder:
1. Create a CLAUDE.md file (recommended)
Copy examples/CLAUDE.md to your vault root. This gives Claude Code instructions for:
- Thorough file searching (handles emoji prefixes, special characters)
- Preserving heading structure when editing
- Archiving instead of deleting files
- Understanding your vault conventions
cp examples/CLAUDE.md /path/to/your/vault/CLAUDE.md
2. Configure default permissions (recommended)
Copy examples/settings.local.json to .claude/ in your vault root:
mkdir -p /path/to/your/vault/.claude
cp examples/settings.local.json /path/to/your/vault/.claude/settings.local.json
This grants Claude Code full access to your vault without permission prompts.
Development
# Watch mode (auto-rebuild on changes)
npm run dev
# Production build
npm run build
# Rebuild native modules
npm run rebuild:electron
Project Structure
claude-terminal/
├── src/
│ └── main.ts # Plugin source code
├── manifest.json # Obsidian plugin manifest
├── package.json # Dependencies & scripts
├── esbuild.config.mjs # Build configuration
├── tsconfig.json # TypeScript config
├── styles.css # Plugin styles
└── main.js # Built output (generated)
Troubleshooting
"Error: Failed to start terminal"
The node-pty native module may not be compiled for your Electron version:
npm run rebuild:electron
Terminal shows garbled characters
Ensure styles.css is loaded. The plugin includes required xterm.js styles.
Claude command not found
Make sure Claude Code is installed and in your PATH:
# Check if claude is available
which claude
# If not, install it
npm install -g @anthropic-ai/claude-code
Permission prompts keep appearing
Add the specific commands to your .claude/settings.local.json permissions array, or select "Yes, and always allow" when prompted.
Credits
- xterm.js - Terminal emulator
- node-pty - PTY bindings
- Inspired by obsidian-terminal-sidebar
License
MIT License - see LICENSE for details.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.