Embed a full interactive terminal inside Obsidian. Run shell commands, REPLs (Node, Python), and CLI tools without leaving your vault.
Desktop-only. Uses node-pty + xterm.js.
- Full PTY terminal (not just piped output) — interactive programs work
- Opens at the bottom of the editor, like VS Code
- Toggle with a customizable hotkey or the ribbon icon
- Follows your Obsidian theme automatically (light/dark)
- Configurable shell path, working directory, and font size
- Open Settings > Community plugins
- Search for Obsidian CLI
- Install and enable
- Download
main.js,manifest.json,styles.css,pty-host.jsfrom the latest release - Create folder:
<vault>/.obsidian/plugins/obsidian-cli/ - Copy the downloaded files into that folder
- Also copy the
node_modules/node-pty/directory from the release - Reload Obsidian and enable the plugin
- Click the terminal icon in the left ribbon, or
- Open command palette and run Toggle terminal
- Assign a hotkey in Settings > Hotkeys (search "Toggle terminal")
| Setting | Description | Default |
|---|---|---|
| Shell path | Shell executable to use | cmd.exe (Win) / /bin/bash (Mac/Linux) |
| Working directory | Starting directory | Vault root |
| Font size | Terminal font size in px | 14 |
The plugin runs node-pty in a separate Node.js process (pty-host.js) because Obsidian's Electron renderer doesn't support Worker threads. Communication happens via JSON over stdin/stdout.
npm install
npm run dev # watch mode
npm run build # production build
npm run lint # eslint0-BSD