Releases: ethanffu/open-powershell-here
Release list
0.4.1
0.4.1 — address marketplace review warnings
Fixes the two warnings from the Obsidian marketplace review (no behavior changes):
- Source code: the Promise rejection reason in
version-probe.tsis now always anErrorinstance (review lintno-promise-reject-errors). - CSS: dropped
!importantfrom the "Hide the ribbon button" rule (review CSS lint) and raised selector specificity via.workspace-ribboninstead. Hiding is still enforced by both the CSS rule and the JS inline-style layer inmain.ts.
The Style Settings "Hide the ribbon button" toggle, the ribbon entry, and the single-folder context menu are unchanged and verified in real Obsidian (1.13.6).
Assets: main.js, manifest.json, styles.css, versions.json, plus the open-powershell-here-0.4.1.zip install bundle.
0.4.0
v0.4.0 — first release under the new identity
Rebranded. This is the first release under the new plugin identity:
- Display name: Open PowerShell Here (was "Vault PowerShell")
- Plugin id:
open-powershell-here(wasvault-powershell) — the install folder, enabled-plugins entry, and Style Settings storage key all use the new id - Author: ethanffu (was the former username ethanfu0124-bit)
- Repository: renamed to
ethanffu/open-powershell-here(old URLs redirect)
Upgrade note (one-time): if you installed any earlier version, remove the old
.obsidian/plugins/vault-powershell/folder after installing this one, then restart Obsidian. The plugin keeps no settings, so nothing is lost; only the Style Settings "Hide the ribbon button" toggle resets to its default.
Included features (verified in real Obsidian 1.13.6):
- Ribbon button → opens PowerShell 7+ at the vault root (hideable via Style Settings → Open PowerShell Here → Hide the ribbon button; hiding is enforced by CSS and JS, so it works regardless of theme/DOM changes)
- Single-folder context menu → Open PowerShell here opens pwsh in the right-clicked folder's real absolute path (vault root folder works too; no item for files or multi-selection)
- Windows Terminal hosting with
pwsh.exefallback; semicolon paths show a clear notice and start no process
Repo / docs housekeeping:
- Repository is public; README (English default + 简体中文), "Who is this for?" section, contributing docs, issue/PR templates, CODE_OF_CONDUCT, badges, BRAT beta-install note
- CI: lint + typecheck + 87 tests + build +
main.jssync check
Scope & constraints (unchanged):
- Windows + PowerShell 7+ only (5.1 not supported); local file system vaults only
- No commands, hotkeys, settings page, batch/file context menus, or embedded terminal
- No telemetry, no network, no vault modification; never invokes cmd.exe / powershell.exe / conhost.exe / shell:true; real sessions never use -NoProfile / -NonInteractive / -Command
Assets: main.js, manifest.json, styles.css, versions.json, plus the open-powershell-here-0.4.0.zip install bundle.
v0.3.0
⚠️ Legacy release (renamed plugin). This release predates the 2026-08-10 rename: it installs as plugin idvault-powershellwith the old display name "Vault PowerShell". Newer releases use idopen-powershell-here/ name Open PowerShell Here — after upgrading, remove the old.obsidian/plugins/vault-powershell/folder (the plugin keeps no settings, so nothing is lost).
v0.3.0 — Style Settings: hide the ribbon button
New: with the Style Settings plugin installed, Settings → Style Settings → Vault PowerShell → Hide the ribbon button now hides the left ribbon button. Toggleable, verified working in real Obsidian (1.13.6). The single-folder context-menu entry is unaffected.
- The Style Settings block contains a single flat toggle (no extra group headings).
- How it works (and what was fixed): for
class-togglesettings, Style Settings applies the setting id as the class on<body>(addClassis ignored — this mismatch was why the toggle appeared to do nothing in the earlier revoked attempts). The setting id is now the body class, the CSS uses two selectors (the plugin's stablevault-powershell-ribbonclass plus a tooltiparia-labelfallback) withdisplay: none !important, and the plugin additionally enforces the hide via inline style through aMutationObserveron the body class — so hiding works regardless of theme CSS or ribbon DOM changes. - The ribbon element carries an icon-independent
vault-powershell-ribbonclass.
Also in this release:
- 87 automated tests (up from 84), including DOM-enforcement tests for the hide toggle.
- Docs updated: README (zh/en), MANUAL_TESTS.md (item #34), AGENTS.md.
- Install docs corrected: Option B (build from source) must copy
styles.csstogether withmain.js/manifest.json.
Scope & constraints (unchanged):
- Windows + PowerShell 7+ only (5.1 not supported); local file system vaults only
- Entry points: ribbon (hideable via Style Settings) + single-folder context menu; no commands, hotkeys, batch/file context menus, or embedded terminal
- No telemetry, no network, no vault modification; never invokes cmd.exe / powershell.exe / conhost.exe / shell:true; real sessions never use -NoProfile / -NonInteractive / -Command
Assets: main.js, manifest.json, styles.css, versions.json, plus the vault-powershell-0.3.0.zip install bundle.
v0.2.0
v0.2.0 — Open PowerShell from the folder context menu
New: right-click a single folder in the Obsidian file explorer → Open PowerShell here (terminal icon) → opens PowerShell 7+ in that folder's real Windows absolute path. The vault root folder is supported too.
- The ribbon still opens the vault root; both entries share one launch pipeline, one
pwshverification cache and one single-flight lock. - The menu item never appears for plain files, multi-selection, non-Windows platforms, or non-local (remote) vaults. No
files-menubatch entry, no commands, no hotkeys, no settings page. - Behavior change (semicolon paths): paths containing
;are no longer launched at all — Windows Terminal splits on;(verified). The plugin now showsPowerShell cannot be opened for paths containing a semicolon (;).and creates no process (not even the version probe). Thewt.exe-missing fallback to a directpwsh.exespawn is unchanged.
Also in this release:
- 84 automated tests (up from 63) covering the context menu, the shared cache/single-flight, reload without duplicate handlers, and the zero-process semicolon guard.
- Docs updated: README (zh/en), MANUAL_TESTS.md, AGENTS.md.
Manually verified in real Obsidian:
- Ribbon → vault root (2026-08-08)
- Folder context menu → right-clicked folder's absolute path (2026-08-09, core flow)
- Pending manual acceptance: semicolon-folder notice, root-folder right-click, file right-click, reload dedup (see MANUAL_TESTS.md #28–#33).
Scope & constraints (unchanged):
- Windows + PowerShell 7+ only (5.1 not supported); local file system vaults only
- No commands, settings, keybindings, batch/file context menus, or embedded terminal
- No telemetry, no network, no vault modification; never invokes cmd.exe / powershell.exe / conhost.exe / shell:true; real sessions never use -NoProfile / -NonInteractive / -Command
Assets: main.js, manifest.json, versions.json (no styles.css — the plugin ships no CSS), plus the vault-powershell-0.2.0.zip install bundle.
v0.1.1
v0.1.1 — Windows Terminal-hosted interactive PowerShell
Fix (important): the PowerShell window flash-closed when Obsidian was launched from Explorer (GUI process without a console). The formal session is now hosted in Windows Terminal (wt.exe) purely as the console window host, so pwsh receives real console handles. Falls back to a direct pwsh.exe spawn when wt.exe is missing or the vault path contains ; (wt splits on semicolons).
Also in this release:
npm run install:testnow registers the plugin in the test vault's enabled-plugins list (community-plugins.json) — no manual enable needed.- Full CI (
npm run verify) on Windows: lint, typecheck, 63 automated tests, build,main.jssync check.
Manually verified in real Obsidian (2026-08-08):
- Interactive PowerShell window opens from the ribbon; input/output work
Get-Locationequals the vault root;$PSVersionTable.PSVersion.Major>= 7- Session survives closing Obsidian; plugin auto-loads on vault open
Scope & constraints:
- Windows + PowerShell 7+ only (Windows PowerShell 5.1 is not supported)
- Ribbon button is the only entry point (no commands, settings, or embedded terminal)
- No telemetry, no network access, no vault modification; the plugin never invokes cmd.exe / powershell.exe / conhost.exe / shell:true
Assets: main.js, manifest.json, versions.json (no styles.css — the plugin ships no CSS).