Partner
unlistedby Paulo Bernardy
Run a terminal in a sidebar, powered by xterm.js and connected to an external PTY relay, for using Claude Code inside Obsidian.
Partner
Run a terminal in a sidebar inside Obsidian — multiple independent tabs, each its own PowerShell 7 session — so you can use Claude Code (or any CLI) without leaving your vault.
Desktop only (Windows / macOS). Partner spawns an external Node process and a shell, so it cannot run on Obsidian mobile.
Features
- Terminal sidebar powered by xterm.js.
- Multiple independent terminal tabs, each with its own session and PTY.
- Theme-aware — colors follow your active Obsidian theme.
- Clickable links: URLs open in your browser; vault paths and wikilinks open inside Obsidian.
- Configurable starting directory, font size/family, and copy-on-select.
- Explicit
node/npm/pwshpaths in settings for when they are not on your PATH.
Requirements
- Obsidian 1.4.11+ on desktop (Windows or macOS).
- Node.js on your PATH (or set its path in the plugin settings).
- PowerShell 7 (
pwsh) on your PATH (or set its path in the plugin settings). - Internet access on first launch — see "How it works" below.
How it works
Partner runs a small Node "relay" process, separate from Obsidian. The relay
opens a local WebSocket server on 127.0.0.1:48771 and, for each terminal tab,
spawns a PowerShell 7 PTY via node-pty.
The plugin (running inside Obsidian) is the WebSocket client.
On first launch the plugin writes the relay files into its own folder and runs
npm install --production there to fetch the relay's dependencies (node-pty,
ws). After that, no network access is needed.
Disclosures
In line with the Obsidian developer policies, Partner discloses the following:
- External process and shell access. Partner spawns a Node process and PowerShell 7 sessions. A terminal has the same access as your normal shell — it can read and modify files anywhere on your system, not only inside the vault. Treat it with the same caution as a system terminal.
- Local network use. The relay listens on the loopback address
127.0.0.1:48771. The plugin itself sends no data to any remote server; the connection is local-only. - First-run dependency install. On first launch the plugin runs
npm install --productionin itsrelay/folder to fetchnode-ptyandwsfrom the npm registry. This needs Node, npm, and internet access once. - Third-party tools you run. Anything you run in the terminal (for example Claude Code) is third-party software with its own behavior, network use, and policies. Partner neither controls nor endorses it.
- No telemetry. Partner collects no analytics and sends no telemetry.
Installation
Manual
- Download
main.js,manifest.json, andstyles.cssfrom the latest release. - Create the folder
<vault>/.obsidian/plugins/partner/and place the three files inside it. - Reload Obsidian and enable Partner under Settings → Community plugins.
From source
npm install
npm run build
Then copy main.js, manifest.json, and styles.css into
<vault>/.obsidian/plugins/partner/.
Settings
- Starting directory — home, vault root, or a custom path.
- Copy on select — copy the terminal selection to the clipboard automatically.
- Font size / family — terminal typography.
- Executable paths — explicit
node/npm/pwshpaths, used when PATH detection fails (a common cause of a "not found" error on a fresh machine).
Development
npm run dev— watch build.npm test— Vitest: pure-logic unit tests plus a real relay integration test (requirespwsh).npm run typecheck— TypeScript type checking.
License
MIT.
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.