Skip to the content.

Home · Modules · Installation · Contributing · GitHub

Modules

Each module is self-contained and independently versioned.

Import startup cost

The modules use a root-level script loader so newly added command and helper .ps1 files are dot-sourced automatically. On a Windows PowerShell 7.4+ host, measured from built artifacts with a fresh pwsh -NoProfile process per module and a stopwatch around Import-Module, the expected cold import medians are:

Module Median import time
Shmuelie.Utilities 488.7 ms
Shmuelie.Git 612.0 ms
Shmuelie.Copilot 536.0 ms
Shmuelie.Node 344.3 ms
Shmuelie.DotNet Not yet measured
Shmuelie.VisualStudio Not yet measured
Combined 1981.0 ms

Shmuelie.Git still performs predictor registration during import when the bundled WorktreePredictor.dll is present in the built module artifact, but it no longer eagerly imports PSReadLine before registering the predictor.

Shmuelie.Git

Git repository, worktree, status, completion, and PSReadLine prediction helpers. Version 0.10.2. README

Highlights:

Worktree navigation change: New-Worktree and Add-Worktree now enter the created worktree by default, like New-Repository, even with an explicit -Path. Add -NoSetLocation to scripts that must stay in the caller’s directory. The temporary compatibility switch -SetLocation still works; explicit -SetLocation:$false still stays put and can be replaced with -NoSetLocation. Do not combine the two switches, even when false. Failed creation and -WhatIf never change location.

Add-Worktree branch completion uses the source -Path (or its repository aliases), not an unrelated caller repository. The -Path parameter on Set-Worktree, Move-Worktree and Remove-Worktree instead selects an exact registered worktree root: existing targets resolve in their own repository. Branch-name selection stays caller-scoped and cannot be combined with target -Path; deleted/prunable targets still require caller repository context. Completion does not execute path expressions, fetch remotes or change location.

Removing worktrees: migration

Remove-Worktree now removes the backing local branch after successful worktree removal by default. This retains its previous git branch -D cleanup semantics, including deletion of unmerged branches. Add -KeepBranch to scripts that previously omitted -RemoveBranch in order to preserve unfinished work. Existing -RemoveBranch calls still work, and -RemoveBranch:$false still keeps the branch. Enabling both -KeepBranch and -RemoveBranch is rejected.

Worktree removal and branch deletion have separate high-impact confirmations; -Confirm:$false is the explicit unattended opt-in. -WhatIf previews the planned operations and changes neither resource. Detached worktrees never delete branches, failed or declined worktree removal preserves the branch, and no remote branch is deleted. -Force keeps its existing single---force worktree behavior without bypassing confirmation or escalating after a failure.

Shmuelie.Copilot

GitHub Copilot CLI sessions, plugins, marketplaces, MCP servers, and the Start-Copilot launcher. Version 0.5.0. README

Highlights:

Shmuelie.Node

Node.js, nvm-windows, npm package, and Azure DevOps npm credential helpers. Version 0.1.5. README

Highlights:

Shmuelie.DotNet

User-local .NET SDK installation and canonical tool management for Windows, Linux, and macOS. Version 0.2.1. README

Highlights:

The four Utilities entry points forward lazily to DotNet and remain available until Utilities 1.0. Install the dependency explicitly with Install-PSResource Shmuelie.DotNet; importing Utilities does not load DotNet. Wrappers use the sibling DotNet manifest in a source checkout, or a loaded module or installation on $env:PSModulePath otherwise, without changing caller command precedence. Missing dependencies report installation guidance. Use module-qualified Shmuelie.DotNet commands in new scripts. See the module README for preserved scope behavior.

Shmuelie.Utilities

General developer utilities for PowerShell, .NET tools, Python packages, VS Code, terminal recovery, and general developer workflows. Version 0.6.1. README

Highlights:

Shmuelie.Windows

Windows-only developer utilities for installed applications, Windows Terminal, Windows Performance Recorder, and service host processes. Version 0.2.1. README

Highlights:

AppInstallManager is separate from these AppInstaller commands. Its five unpublished commands live in the repository-local Shmuelie.AppInstall.Experimental module, outside the supported module catalog. Windows neither loads nor packages that implementation. See the experimental contract for the unchanged private-capability restriction and #233 release hold.

Shmuelie.Dsc

Class-based DSC v3 resources for developer machine setup. Version 0.1.1. README

Highlights:

Shmuelie.VisualStudio

Visual Studio discovery, MSBuild resolution, and developer shell helpers for PowerShell. Version 0.2.0. README

Highlights:

Shmuelie.PackageManagement

Provider-neutral package update orchestration. Version 0.3.0. README

Update-AllPackages provides provider selection/exclusion, provider-specific option tables, lazy dependency discovery, per-target ShouldProcess, typed results, and optional fail-fast behavior.

See the module README for provider availability and supported options. The Windows-only WinGet provider uses optional Microsoft.WinGet.Client and winget.exe 1.8.1911+ dependencies. It accepts source agreements by default, including preview discovery; package agreements require explicit Boolean opt-in. All eight providers are implemented; unavailable integrations report Skipped with a reason. Importing the core is portable and does not import optional provider modules. The Windows-only AppInstaller adapter lazily uses compiled Shmuelie.Windows commands with opt-in request results. Its operation-scoped outcomes report completed update-check requests, never inferred application version changes.