hirose30428 downloadsRun multiple agent CLI sessions (Claude Code, Codex, Gemini, etc.) as editor tabs.
An Obsidian plugin that lets you run multiple agent CLI sessions (Claude Code, Codex, Gemini CLI, etc.) as tabs within Obsidian.
Platform support: only macOS is actively tested and supported. The plugin relies on a POSIX PTY (
os.openpty/fcntl) provided by the bundledpty-helper.py, so Windows is not supported and will not work. Linux may work in principle since the PTY APIs exist, but it has not been verified — use at your own risk and please report results.
claude)The Python helper scripts that drive the PTY are bundled inside main.js and extracted automatically to <plugin>/resources/ on first load — no manual setup is required.
Note on 1.0.0 and 1.0.1: those releases shipped
pty-helper.pyandhook-relay.pyas separate files in the GitHub release. Because the Obsidian community installer only shipsmain.js/manifest.json/styles.css, users installing through the directory ended up without these helpers and sessions never started. 1.0.2 fixes this by embedding the helpers inmain.jsand writing them to disk at startup. If you were affected, just update to 1.0.2 — the missing files are restored automatically.
main.js, manifest.json, styles.css<vault>/.obsidian/plugins/terminal-agent-tabs/npm install && npm run buildmain.js, manifest.json, styles.css to <vault>/.obsidian/plugins/terminal-agent-tabs/| Command | Description |
|---|---|
| New session tab | Open a new session with the default CLI |
| New session tab (choose target) | Open a new session after selecting a CLI profile |
| Send selection to current session | Send selected text to the active session |
| Toggle session sidebar | Show/hide the session sidebar |
| Focus active session | Jump to the last active session tab |
| Focus next / previous session | Cycle through session tabs |
| Split session (horizontal / vertical) | Split the current session view |
| Increase / decrease / reset font size | Adjust font size in the current tab |
Configure one or more CLI profiles with custom executable paths, default arguments, and resume support.
Relative executable names (e.g. claude) are resolved through your login shell ($SHELL -l -i), so binaries installed via Homebrew, nvm, asdf, mise, npm-global, etc. are reachable even when Obsidian is launched from the macOS dock. If you prefer to skip shell resolution, enter an absolute path instead.
Monitor a JSONL file for agent hook events and display notifications.
{"event":"stop","source":"claude","message":"Task finished"}
npm install
npm run dev # Watch mode
npm run build # Production build
MIT