Shared Sessions for Claude Code
Share a Claude Code session with a link. Teammates join from their own Claude Code and work in it together.
Obsidian right-sidebar PowerShell terminal rooted at the current vault
Translation pending
PluginsTypeScript · CSSGitHub @obst2580Self-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
Loading the full README. The saved excerpt is shown below.
Obst Terminal is an Obsidian Desktop plugin that opens a vault-rooted multi-session AI Agent Console in the right sidebar. This branch currently reports version 0.6.95.
Desktop only. Claude Code, Codex CLI, Antigravity CLI (agy), Node.js, Git, npm, and other external tools are not bundled. Install them on your machine and make sure they work from a normal terminal.
Obst Terminal is not just a single chat console. It is designed as a multi-session AI workspace inside one Obsidian vault, where several Claude Code, Codex, and Antigravity sessions can stay open side by side as plugin tabs.Read the full README ↗Obst Terminal is an Obsidian Desktop plugin that opens a vault-rooted multi-session AI Agent Console in the right sidebar. This branch currently reports version 0.6.95.
Desktop only. Claude Code, Codex CLI, Antigravity CLI (
agy), Node.js, Git, npm, and other external tools are not bundled. Install them on your machine and make sure they work from a normal terminal.
Obst Terminal is not just a single chat console. It is designed as a multi-session AI workspace inside one Obsidian vault, where several Claude Code, Codex, and Antigravity sessions can stay open side by side as plugin tabs.
+ menu or the Open new AI session command..obsidian/plugins/vault-terminal/data.json is reserved for shared plugin settings and does not store Claude/Codex/Antigravity session IDs, thread IDs, input drafts, or transcript HTML.@all, @codex, @claude, @gemini(=@antigravity), or @"session title".this, here, or this part resolve without requiring a special command.path.md:12 reference jumps to that line. Only paths that resolve to an existing vault file are linkified.The first Agent Console tab defaults to Claude Code. After that, choose Claude Code, Codex, or Antigravity from the + menu at the end of the tab row. A tab's provider does not change after creation.
You can split work across multiple AI sessions in the same vault. Open AI workspace reuses the first Obst Terminal view, while Open new AI session or the Agent Console + menu adds a tab for the selected provider inside the plugin instead of opening a new Obsidian workspace tab. Each tab keeps a provider-based label, independent session ID, transcript, and running backend/process state. Switching tabs does not stop the running agent; background sessions keep writing to their own transcripts. This is intended for project-management roles such as PM, Writer, Analyst, and Reviewer working beside the same vault documents. A session can delegate a prompt to other running tabs with @all, @codex, @claude, @gemini(=@antigravity), or @"session title".
Claude Code and Codex tabs include a tab-local Deep Vault toggle. It is off by default. When enabled, the prompt directs the agent to check the vault index, run several focused searches, open the strongest source documents, refine retrieval until no material evidence is added, and cite vault paths. This is a plugin workflow profile, not a native model or reasoning tier, and it can consume substantially more input and output tokens. The same options row shows provider-reported IN and OUT usage for the current turn; values are never estimated.
The Codex Agent Console uses codex app-server by default instead of embedding the fullscreen Codex TUI.
codex app-server over JSON-RPC.codex app-server, including GPT-5.6-Sol (frontier), GPT-5.6-Terra (balanced), and GPT-5.6-Luna (fast) when the account has access. Each model exposes its supported reasoning levels: Sol and Terra include max and ultra, while Luna includes max.IN and OUT meter from thread/tokenUsage/updated; the tooltip includes cached input and reasoning output when Codex reports them.The Claude Code Agent Console separates normal chat turns from login/control prompts.
claude auth status --json.--permission-mode and --output-format stream-json.Fable 5, Opus 4.8, Sonnet 5, Haiku 4.5 — the opus alias still resolves to Opus 4.8), while pinned choices use full model ids such as claude-opus-5 for Opus 5. Custom model ID accepts future or gateway-specific ids without a plugin update. After Claude responds, the options row shows the actual resolved model from the stream and updates the selected alias label when it differs.IN and OUT values. Cache creation and cache-read tokens are included in IN and exposed in the tooltip.session_id after each print turn and keeps the plugin tab bound to the actual Claude Code session.claude process to finish, allowing long-running skills such as audio transcription or large document analysis.생각 중 indicator attached while the print-command process is running.--resume <sessionId> --fork-session so the fallback keeps the previous Claude context instead of starting from an empty UUID.Stop, tab close, and plugin reload clean them up, and startup checks the local agent-processes.json for stale pids left by a previous crash./login, MCP connection prompts, permission prompts, and command-style control input. Typed Claude slash commands are sent to this control host when it is running.The third provider slot uses the official Google Antigravity CLI (agy), the successor to the consumer Gemini CLI that stopped serving individual Google accounts on 2026-06-18.
agy from PATH, %LOCALAPPDATA%\agy\bin\agy.exe, or the optional Antigravity executable setting. A legacy gemini binary is still used when only it is installed (Gemini Code Assist Standard/Enterprise licenses keep Gemini CLI access).agy --print ... --print-timeout 12h through the PTY capture path, because agy blocks on non-TTY pipes.agy models display names (Antigravity default, Gemini 3.5 Flash (Low/Medium/High), Gemini 3.1 Pro (Low/High), Claude Sonnet 4.6 (Thinking), Claude Opus 4.6 (Thinking), GPT-OSS 120B (Medium)); approval yolo maps to --dangerously-skip-permissions.agy models probe; Login opens the Antigravity Google OAuth sign-in flow inside the Agent Console, including the paste-authorization-code prompt.irm https://antigravity.google/cli/install.ps1 | iex (macOS/Linux: curl -fsSL https://antigravity.google/cli/install.sh | bash), then confirm agy --version works from a normal terminal before starting Obsidian.claude, codex, or agy.CLI runtimes bundled inside editor extensions are not enough. Obsidian starts this plugin from the normal desktop environment, so these commands should work from PowerShell, Terminal, zsh, or bash:
node --version
claude --version
codex --version
agy --version
Download the full ZIP for your OS and CPU architecture:
https://github.com/obst2580/obsidian-powershell/releases
| File | Target |
|---|---|
ObstTerminal-<version>-windows-x64.zip | Windows x64 |
ObstTerminal-<version>-macos-x64.zip | macOS Intel |
ObstTerminal-<version>-macos-arm64.zip | macOS Apple Silicon |
Extract it into your vault:
<vault>/.obsidian/plugins/vault-terminal/
The display name is Obst Terminal, but the plugin ID and folder remain vault-terminal for compatibility.
A full ZIP install should contain:
manifest.json
main.js
styles.css
pty-host.js
node_modules/
runtime.json
Restart Obsidian and enable the plugin:
Settings > Community plugins > Obst Terminal > Enable
BRAT and Community Plugin style installs may initially install only the standard plugin files:
manifest.json
main.js
styles.css
Obst Terminal also needs a native node-pty runtime for interactive Claude Code login/control flows. If the runtime is missing or out of date, the plugin reads runtime-manifest.json from the matching GitHub Release, downloads the OS-specific runtime ZIP, verifies size and SHA-256, and extracts it into the plugin folder.
Runtime commands and settings:
Command palette > Update runtime files
Settings > Obst Terminal > Runtime files > Install runtime
Settings > Obst Terminal > Install runtime automatically
Settings > Obst Terminal > Advanced runtime and network settings
For BRAT testing, add this repository:
https://github.com/obst2580/obsidian-powershell
Open AI workspace from the command palette or open the Obst Terminal right-sidebar tab.+ at the end of the tab row and choose Claude Code, Codex, or Antigravity. A fixed-provider tab is created and starts automatically.When Codex, Claude, or Antigravity is answering, the arrow changes to a stop icon. Additional messages are queued until the active turn finishes.
For multiple AI collaborators, run Open new AI session from the command palette or choose a provider from the + menu at the end of the Agent Console tabs. No tab is created until a provider is selected, and the resulting tab stays fixed to Claude Code, Codex, or Antigravity. New and stopped tabs start as soon as they are selected; an already running tab is not restarted.
Delegation commands are typed in the same composer:
@all Review the current project plan and list risks.
@codex Check whether the implementation looks consistent.
@claude Draft the handoff note.
@gemini Compare this with the latest Antigravity-facing assumptions.
@"Reviewer" Summarize open questions from this vault.
/send @"PM" Turn this into a task list.
Delegation sends text and selected attachments to matching tabs that are already running. If a target is stopped, waiting for login, or blocked on an interactive prompt, both the sender and target transcripts record the failed delivery instead of starting or approving anything automatically.
Use the paperclip icon inside the composer to attach files.
On the Codex app-server path, images are sent as localImage inputs and other files as mention inputs. Claude is given explicit Read targets, while Antigravity/Gemini receives @ file references. Files selected outside the vault are copied into the attachment folder first so every provider can access them from the vault workspace.
Pasting an image in Agent Console adds it as an attachment chip.
Default attachment folder:
Obst Terminal Attachments/
Setting:
Settings > Obst Terminal > Attachment folder
The active-note strip above the input updates immediately when the user switches notes. Selected text is shared first; otherwise the active note path and cursor line are shared. The link icon disables or restores this context without changing the open note.
Press the microphone icon beside the paperclip to start recording. The composer shows only the recording timer and Stop control while audio is captured. Stop sends the complete in-memory recording to the configured transcription server once, then inserts the returned text at the cursor.
용어사전.md, 조직구조.md, 조직구조-전직원.md, 제품구조.md, and 과제목록.md.obst-indexer vault. Full employee and reference documents are not uploaded.The default settings screen shows only day-to-day Agent Console options. Runtime, PTY, Node.js, and custom CA controls are kept under Advanced runtime and network settings.
| Setting | Behavior |
|---|---|
Attachment folder | Stores pasted or dropped attachment files before they are sent to Agent Console. |
Voice transcription server | Whisper-compatible /v1/audio/transcriptions service that receives the recording once after Stop. |
Voice transcription language | Uses Korean, English, or auto-detect as the server language hint. |
Persist Agent transcript snapshots | Saves visible transcript HTML only to the current user's local Obst Terminal state, outside the shared vault. |
Advanced settings:
| Setting | Behavior |
|---|---|
Node executable | Point to Node.js when it is not on PATH. |
Runtime files | Install or reinstall the native runtime used for interactive Claude Code and Antigravity CLI login/control flows. |
Windows PTY backend | Choose the interactive agent control PTY backend on Windows. |
Install runtime automatically | Allows automatic native runtime installation. |
Use system certificate store | Injects Node system CA behavior for Node-based CLIs. |
Extra CA certificate | Provides a custom PEM certificate path and exports it through common CA bundle variables for Claude, Codex, Antigravity, Python, curl, git, and gRPC-style tools. |
By default, Obst Terminal does not change TLS behavior. If a corporate proxy or private CA causes certificate errors in Node-based CLIs such as Claude Code, use:
Settings > Obst Terminal > Use system certificate store
Settings > Obst Terminal > Extra CA certificate
When Extra CA certificate is empty, the plugin checks these shared locations:
OBST_TERMINAL_EXTRA_CA_CERT
VAULT_TERMINAL_EXTRA_CA_CERT
C:\certs\extra-ca.pem
C:\ProgramData\Obst Terminal\extra-ca.pem
%USERPROFILE%\.obst-terminal\extra-ca.pem
%USERPROFILE%\.vault-terminal\extra-ca.pem
certs/extra-ca.pem
Windows release packages include helper scripts:
.\configure-corporate-ca.ps1 -VaultPath "C:\path\to\vault" -Thumbprint "<root-ca-thumbprint>"
.\configure-corporate-ca.ps1 -VaultPath "C:\path\to\vault" -PemPath "C:\path\to\custom-ca.pem"
Add -SetUserEnvironment when you also want normal PowerShell sessions outside Obsidian to see the same PEM. Open a new PowerShell after setting user environment variables.
npm install
npm run build
Install into a Windows vault:
.\install.ps1 -VaultPath "C:\path\to\vault"
The installer copies the plugin/runtime files and adds vault-terminal to the vault's .obsidian/community-plugins.json.
Install into a macOS or Linux vault:
npm install
npm run build
./install.sh /path/to/vault
Create a local Windows release package:
pwsh -NoProfile -File .\scripts\package-release.ps1 -Platform windows -Arch x64 -OutputDir dist
Release tags must match manifest.json exactly. Do not prefix tags with v.
git tag 0.6.95
git push origin 0.6.95
The release workflow runs npm ci, npm run build, full ZIP packaging, runtime-only ZIP packaging, runtime-manifest.json generation, and standard plugin file upload.
Obst Terminal no longer starts a raw local shell by default. It may use a separate Node.js PTY host process only for interactive Claude Code or Antigravity CLI login/control flows.
data.json; they are stored only in the current user's local Obst Terminal state.pwsh -NoProfile -File .\scripts\clean-shared-ai-state.ps1 -VaultPath "C:\path\to\vault".Only install release assets from sources you trust.
MIT