Skip to content

therootcompany/pathman

Repository files navigation

Manage PATH on Windows 10, Mac, and Linux with various Shells

pathman list
pathman add ~/.local/bin
pathman remove ~/.local/bin
pathman version
pathman help

Where is the PATH managed?

  • Windows 10: stores PATH in the registry.
  • Mac & Linux: stores PATH in ~/.config/envman/PATH.env

Note for Windows 10 users: due to differences in how cmd.exe, PowerShell, and pathman use and interpret strings, spaces, paths, and variables, you'll get more consistent results if you:

  • Use ~ rather than %USERPROFILE% or $Env:USERPROFILE
  • Use / rather than \ for delimiting paths

Install

Mac, Linux:

curl -s https://webinstall.dev/pathman | bash

Windows 10:

This can be run from cmd.exe or PowerShell (curl.exe is a native part of Windows 10).

curl.exe -sA "MS" https://webinstall.dev/pathman | powershell

Manual Install

  1. Download
  2. Add to PATH

Or install via npm:

npm install -g pathman

Windows

mkdir %userprofile%\bin
move pathman.exe %userprofile%\bin\pathman.exe
%userprofile%\bin\pathman.exe add ~/bin

Mac, Linux, etc

mkdir -p ~/.local/bin
mv ./pathman ~/.local/bin
pathman add ~/.local/bin

Downloads

Webi (https://webinstall.dev/pathman) is the preferred install method, but you can also download from Git Releases: https://git.rootprojects.org/root/pathman/releases.

MacOS (including Apple Silicon M1), Linux, Raspberry Pi:

tar xvf pathman-v*.tar.gz
chmod a+x ./pathman
./pathman --help

Windows 10:

tar.exe xvf pathman-v*.zip
.\pathman.exe --help

Supported Platforms

  • MacOS
    • Apple Silicon M1
    • Intel x86_64
  • Windows 10, 8, 7
  • Linux
    • amd64 / x86_64
    • 386
  • Raspberry Pi (Linux ARM)
    • RPi 4 (64-bit armv8)
    • RPi 3 (armv7)
    • ARMv6
    • RPi Zero (armv5)

CLI Help (API)

add

pathman add ~/.local/bin
Saved PATH changes. To set the PATH immediately, update the current session:

	export PATH="/Users/me/.local/bin:$PATH"

remove

pathman remove ~/.local/bin
Saved PATH changes. To set the PATH immediately, update the current session:

	export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

list

pathman list
pathman-managed PATH entries:

	$HOME/.local/bin

other PATH entries:

	/usr/local/bin
	/usr/bin
	/bin
	/usr/sbin
	/sbin

Windows

You can use ~ as a shortcut for %USERPROFILE%.

pathman add ~\.local\bin

The registry will be used, even when your using Node Bash, Git Bash, or MINGW.

build

git clone https://git.rootprojects.org/root/pathman.git
go mod tidy
go mod vendor
go generate -mod=vendor ./...
go build -mod=vendor
./pathman list