DotForge
0.5.0-preview
Framework for registering and configuring CLI tools in a PowerShell profile — XDG paths, PATH management, fzf pickers, and aliases.
Minimum PowerShell version
7.2
See the version list below for details.
Installation Options
Owners
Copyright
(c) Randy W. Sims. All rights reserved.
Package Details
Author(s)
- Randy W. Sims
Tags
CLI Tools Profile XDG fzf Configuration Windows Shim PSReadLine
Functions
Add-DFToPath New-DFDirectory Invoke-DFPicker Invoke-DFWithPager Get-DFTool Find-DFTool Register-DFTool Initialize-DFEnvironment Install-DFTool New-DFShim Invoke-DFHelp Show-DFCliHelp Show-DFCliHelpPaged Select-DFCommand Select-DFVerb Select-DFModule Select-DFHelpTopic Set-DFLocationUp New-DFDirectoryAndSet Select-DFLocation New-DFFile Get-DFWhich Open-DFItem Select-DFProcess Get-DFTopProcess Get-DFEnv Get-DFPath Select-DFEnvVar Edit-DFProfile Invoke-DFProfileReload Copy-DFToClipboard Get-DFFromClipboard New-DFUuid Find-DFPackage Update-DFPackageCache Select-DFPackage Get-DFCategoryList Update-DFCategoryDb Update-DFToolIdentityGuide Get-DFCommandConflict
PSEditions
Dependencies
This module has no dependencies.
Release Notes
Preview release. New in 0.5.0: fuzzy fzf package-manager pickers for winget (wins/wrm/wup), scoop (sins/srm/sup), and choco (cins/crm/cup) — search->install, uninstall, and multi-select update, each with a live preview pane (debounced so fast scrolling does not spawn a preview per skipped item) and multi-key/act-in-place fzf bindings; Ctrl+G W/S/C PSReadLine chords read the current line as a query and drop the resulting install command onto the command line for editing. Package data uses object output (Microsoft.WinGet.Client, the Scoop module) and choco -r machine-readable output instead of table scraping; scoop search uses the fast scoop-search hook. Invoke-DFPicker gains -Expect/-Bind/-FzfArgs; wrm -Source filters installed packages by source. Carries forward: the completion stack (PSReadLine + Carapace + PSFzf + inshellisense), trifle/ftrifle multi-catalog package discovery, fnm per-directory Node switching, clh/clhp colorized CLI help, the PSReadLine color theme system, .cmd shim generation, and dependency-ordered registration via dependsOn.
FileList
- DotForge.nuspec
- AGENTS.md
- CHANGELOG.md
- CLAUDE.md
- DotForge.psd1
- DotForge.psm1
- LICENSE
- Publish-DotForge.ps1
- README.md
- TODO.md
- assets\dotforge.png
- assets\dotforge1.png
- assets\dotforge2.png
- assets\dotforge3.png
- build\Build-DFCategoryDb.ps1
- build\Build-DFPackageUniverseLinks.ps1
- build\Build-DFPackageUniverseRaw.ps1
- build\Build-DFPackageUniverseTools.ps1
- build\Build-DFToolIdentities.ps1
- data\package-universe-categories.jsonc
- data\package-universe-curation.jsonc
- data\tool-categories.json
- data\tool-identities.json
- docs\external-dependencies.md
- examples\01-minimal.ps1
- examples\02-standard.ps1
- examples\03-selective.ps1
- examples\04-vscode-fastpath.ps1
- examples\05-trifle-catalog.ps1
- examples\06-winget-pickers.ps1
- examples\07-scoop-choco-pickers.ps1
- examples\README.md
- Private\DFCatalog.Choco.ps1
- Private\DFCatalog.Crates.ps1
- Private\DFCatalog.Npm.ps1
- Private\DFCatalog.ps1
- Private\DFCatalog.PSGallery.ps1
- Private\DFCatalog.Pypi.ps1
- Private\DFCatalog.Scoop.ps1
- Private\DFCatalog.Winget.ps1
- Private\Expand-DFXdgPath.ps1
- Private\Format-DFCategoryList.ps1
- Private\Format-DFCliHelpText.ps1
- Private\Format-DFToolInfo.ps1
- Private\Get-DFCatalogInstalled.ps1
- Private\Get-DFCatalogLocalPackages.ps1
- Private\Get-DFCategoryDb.ps1
- Private\Get-DFCoreutilsShadowSet.ps1
- Private\Get-DFGitHubRepoInfo.ps1
- Private\Get-DFHelpTopicList.ps1
- Private\Get-DFPackageReadme.ps1
- Private\Get-DFToolIdentityGuide.ps1
- Private\Import-DFToolDb.ps1
- Private\Initialize-DFCompletionStack.ps1
- Private\Invoke-DFCategoryDbDownload.ps1
- Private\Invoke-DFCommandCapture.ps1
- Private\Invoke-DFFzf.ps1
- Private\Invoke-DFPagerExe.ps1
- Private\Invoke-DFSqliteQuery.ps1
- Private\Invoke-DFToolIdentityGuideDownload.ps1
- Private\Invoke-DFTopoSort.ps1
- Private\Resolve-DFCatalogQueryMerge.ps1
- Private\Resolve-DFCliHelpFlag.ps1
- Private\Resolve-DFPackageManager.ps1
- Private\Resolve-DFToolIdentityCandidateRepo.ps1
- Private\Resolve-DFToolIdentityLinkage.ps1
- Private\Start-DFCatalogRefreshJob.ps1
- Private\Test-DFCategoryDbSchema.ps1
- Private\Test-DFOutputPiped.ps1
- Private\Test-DFToolIdentityGuideSchema.ps1
- Private\Test-DFToolSchema.ps1
- Public\Add-DFToPath.ps1
- Public\DFHelpers.Clipboard.ps1
- Public\DFHelpers.Environment.ps1
- Public\DFHelpers.FileSystem.ps1
- Public\DFHelpers.Help.ps1
- Public\DFHelpers.Navigation.ps1
- Public\DFHelpers.Pager.ps1
- Public\DFHelpers.Process.ps1
- Public\DFHelpers.Utility.ps1
- Public\Find-DFPackage.ps1
- Public\Find-DFTool.ps1
- Public\Get-DFCategoryList.ps1
- Public\Get-DFCommandConflict.ps1
- Public\Get-DFTool.ps1
- Public\Initialize-DFEnvironment.ps1
- Public\Install-DFTool.ps1
- Public\Invoke-DFPicker.ps1
- Public\New-DFDirectory.ps1
- Public\New-DFShim.ps1
- Public\Register-DFTool.ps1
- Public\Select-DFPackage.ps1
- Public\Update-DFCategoryDb.ps1
- Public\Update-DFPackageCache.ps1
- Public\Update-DFToolIdentityGuide.ps1
- tests\Add-DFToPath.Tests.ps1
- tests\Build-DFCategoryDb.Tests.ps1
- tests\Build-DFPackageUniverseRaw.Tests.ps1
- tests\Build-DFToolIdentities.Tests.ps1
- tests\choco.Tests.ps1
- tests\Coreutils.Conflicts.Tests.ps1
- tests\DFCatalog.Core.Tests.ps1
- tests\DFCatalog.Scoop.Tests.ps1
- tests\DFCatalog.WebProviders.Tests.ps1
- tests\DFCatalog.Winget.Tests.ps1
- tests\DFCatalogDetail.Tests.ps1
- tests\DFCatalogDetailProviders.OData.Tests.ps1
- tests\DFCatalogDetailProviders.Scoop.Winget.Tests.ps1
- tests\DFCatalogDetailProviders.Web.Tests.ps1
- tests\DFHelpers.Clipboard.Tests.ps1
- tests\DFHelpers.Environment.Tests.ps1
- tests\DFHelpers.FileSystem.Tests.ps1
- tests\DFHelpers.Help.Tests.ps1
- tests\DFHelpers.Navigation.Tests.ps1
- tests\DFHelpers.Pager.Tests.ps1
- tests\DFHelpers.Process.Tests.ps1
- tests\DFHelpers.Utility.Tests.ps1
- tests\DFPackageUniverse.Choco.Tests.ps1
- tests\DFPackageUniverse.Links.Tests.ps1
- tests\DFPackageUniverse.Merge.Tests.ps1
- tests\DFPackageUniverse.Scoop.Tests.ps1
- tests\DFPackageUniverse.Winget.Tests.ps1
- tests\Expand-DFXdgPath.Tests.ps1
- tests\eza.Tests.ps1
- tests\Find-DFPackage.Tests.ps1
- tests\Format-DFCategoryList.Tests.ps1
- tests\Format-DFCliHelpText.Tests.ps1
- tests\Format-DFToolDetailCard.Tests.ps1
- tests\Format-DFToolInfo.Tests.ps1
- tests\Get-DFCatalogInstalled.Tests.ps1
- tests\Get-DFCategoryDb.Tests.ps1
- tests\Get-DFCategoryList.Tests.ps1
- tests\Get-DFCommandConflict.Tests.ps1
- tests\Get-DFGitHubRepoInfo.Tests.ps1
- tests\Get-DFHelpTopicList.Tests.ps1
- tests\Get-DFPackageReadme.Tests.ps1
- tests\Get-DFTool.Tests.ps1
- tests\Get-DFToolIdentityGuide.Tests.ps1
- tests\Import-DFToolDb.Tests.ps1
- tests\Initialize-DFCompletionStack.Tests.ps1
- tests\Initialize-DFEnvironment.Tests.ps1
- tests\Install-DFTool.Tests.ps1
- tests\Invoke-DFCommandCapture.Tests.ps1
- tests\Invoke-DFFzf.Tests.ps1
- tests\Invoke-DFPicker.Tests.ps1
- tests\Invoke-DFSqliteQuery.Tests.ps1
- tests\New-DFDirectory.Tests.ps1
- tests\New-DFShim.Tests.ps1
- tests\PSReadLine.Completion.Tests.ps1
- tests\psreadline.Tests.ps1
- tests\Register-DFTool.Tests.ps1
- tests\Resolve-DFCatalogQueryMerge.Tests.ps1
- tests\Resolve-DFCliHelpFlag.Tests.ps1
- tests\Resolve-DFPackageManager.Tests.ps1
- tests\Resolve-DFToolIdentityCandidateRepo.Tests.ps1
- tests\Resolve-DFToolIdentityLinkage.Tests.ps1
- tests\scoop.Tests.ps1
- tests\Select-DFPackage.Tests.ps1
- tests\Show-DFCliHelp.Tests.ps1
- tests\Test-DFCategoryDbSchema.Tests.ps1
- tests\Test-DFToolIdentityGuideSchema.Tests.ps1
- tests\Test-DFToolSchema.Tests.ps1
- tests\Tools.PickerDeclaration.Tests.ps1
- tests\Update-DFCategoryDb.Tests.ps1
- tests\Update-DFPackageCache.Tests.ps1
- tests\Update-DFToolIdentityGuide.Tests.ps1
- tests\winget.Tests.ps1
- Tools\bat.json
- Tools\bitwarden.json
- Tools\broot.json
- Tools\carapace.json
- Tools\carapace.ps1
- Tools\chezmoi.json
- Tools\choco.json
- Tools\choco.ps1
- Tools\curl.json
- Tools\delta.json
- Tools\docker.json
- Tools\eza.json
- Tools\fd.json
- Tools\fnm.json
- Tools\fnm.ps1
- Tools\fzf.json
- Tools\gh.json
- Tools\glow.json
- Tools\gsudo.json
- Tools\gsudo.ps1
- Tools\inshellisense.json
- Tools\inshellisense.ps1
- Tools\jq.json
- Tools\lazygit.json
- Tools\less.json
- Tools\micro.json
- Tools\npm.json
- Tools\oh-my-posh.json
- Tools\oh-my-posh.ps1
- Tools\posh-git.json
- Tools\posh-git.ps1
- Tools\procs.json
- Tools\procs.ps1
- Tools\PSFzf.json
- Tools\PSFzf.ps1
- Tools\psreadline.json
- Tools\psreadline.ps1
- Tools\ripgrep.json
- Tools\ripgrep.ps1
- Tools\rustup.json
- Tools\scoop.json
- Tools\scoop.ps1
- Tools\Terminal-Icons.json
- Tools\Terminal-Icons.ps1
- Tools\uv.json
- Tools\wget.json
- Tools\winfetch.json
- Tools\winget.json
- Tools\winget.ps1
- Tools\zoxide.json
- Tools\zoxide.ps1
- build\categories\dotforge-curated.jsonc
- build\categories\extras.jsonc
- build\categories\taxonomy.jsonc
- build\Private\DFPackageUniverse.Choco.ps1
- build\Private\DFPackageUniverse.Db.ps1
- build\Private\DFPackageUniverse.Links.ps1
- build\Private\DFPackageUniverse.Merge.ps1
- build\Private\DFPackageUniverse.Scoop.ps1
- build\Private\DFPackageUniverse.Winget.ps1
- tests\data\coreutils-commands.json
- tests\fixtures\winget-index-v2.db
- Tools\psreadline\catppuccin-mocha.json
- Tools\psreadline\dark.json
- Tools\psreadline\light.json
- docs\superpowers\plans\2026-05-07-dotforge-phase1.md
- docs\superpowers\plans\2026-05-07-dotforge-phase2.md
- docs\superpowers\plans\2026-05-07-dotforge-phase3.md
- docs\superpowers\plans\2026-05-07-dotforge-phase4.md
- docs\superpowers\plans\2026-05-08-pwsh-general-helpers.md
- docs\superpowers\plans\2026-05-08-select-dfhelptopic.md
- docs\superpowers\plans\2026-05-20-new-dfshim.md
- docs\superpowers\plans\2026-05-20-psreadline-integration.md
- docs\superpowers\plans\2026-06-12-cli-help-colorizer.md
- docs\superpowers\plans\2026-07-04-trifle-detail-view.md
- docs\superpowers\plans\2026-07-05-trifle-discovery-v1.md
- docs\superpowers\plans\2026-07-06-trifle-tool-identity-guide.md
- docs\superpowers\plans\2026-07-07-trifle-live-install-status.md
- docs\superpowers\plans\2026-07-16-package-universe-tool-merge.md
- docs\superpowers\plans\2026-07-19-completion-stack-integration.md
- docs\superpowers\plans\2026-07-20-profile-dotforge-fold-in.md
- docs\superpowers\specs\2026-05-07-dotforge-design.md
- docs\superpowers\specs\2026-05-08-pwsh-general-helpers-design.md
- docs\superpowers\specs\2026-05-08-select-dfhelptopic-design.md
- docs\superpowers\specs\2026-05-20-new-dfshim-design.md
- docs\superpowers\specs\2026-05-20-psreadline-integration-design.md
- docs\superpowers\specs\2026-06-12-cli-help-colorizer-design.md
- docs\superpowers\specs\2026-07-04-trifle-detail-view-design.md
- docs\superpowers\specs\2026-07-05-trifle-discovery-v1-design.md
- docs\superpowers\specs\2026-07-06-trifle-tool-identity-guide-design.md
- docs\superpowers\specs\2026-07-07-trifle-live-install-status-design.md
- docs\superpowers\specs\2026-07-13-package-universe-acquisition-design.md
- docs\superpowers\specs\2026-07-15-legacy-profile-fold-in-design.md
- docs\superpowers\specs\2026-07-16-package-universe-identity-clustering-design.md
- docs\superpowers\specs\2026-07-16-package-universe-tool-merge-design.md
- docs\superpowers\specs\2026-07-19-completion-stack-design.md
- docs\superpowers\specs\2026-07-20-profile-dotforge-fold-in-design.md
- Tools\carapace\specs\scoop.yaml
Version History
| Version | Downloads | Last updated |
|---|---|---|
| 0.6.0-preview | 6 | 9/6/2026 |
| 0.5.0-preview (current version) | 5 | 7/24/2026 |
| 0.4.0-preview | 5 | 7/20/2026 |
| 0.3.0-preview | 16 | 6/20/2026 |
| 0.2.0-preview | 18 | 6/12/2026 |
| 0.1.1-preview | 6 | 5/22/2026 |
| 0.1.0-preview | 3 | 5/21/2026 |