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
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.5.0-preview (current version) | 3 | 7/24/2026 |
| 0.4.0-preview | 4 | 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 |