Signing In with the GitHub CLI

GHManage does not sign in to GitHub itself. Every request it makes goes through the GitHub CLI, gh, using the account gh is signed in to. That is a deliberate choice: GHManage never asks for a password or token and has nothing of yours to store or lose, and whatever gh can see, GHManage can see.

Installing gh

Signing in

In a terminal, run:

gh auth login

and follow its prompts. Choose GitHub.com, and sign in through the browser when it offers to. Run gh auth status at any time to see which account is signed in.

You only do this once. GHManage picks up the sign-in the next time it starts.

More than one account

gh can be signed in to several github.com accounts at once, a personal one and a work one say: run gh auth login again for each. File → Switch GitHub Account… (Ctrl+Shift+K) then lists them, the one in use first, and switching starts GHManage again as that account: its repositories, its counts and its Notifications, which is where you land. Favorites and repositories you opened by address stay, since they belong to this computer rather than to an account.

Switching changes the account gh uses in your terminal too, exactly as gh auth switch does. With only one account signed in, the command says so and how to add another. Only github.com accounts are offered; GHManage does not work with GitHub Enterprise servers.

Permissions gh does not ask for

When you sign in, gh asks GitHub for the permissions most commands need. A few GHManage features need one more, and say so when you use them, with the command that adds it. For example, Watch Settings needs the “notifications” permission:

gh auth refresh -h github.com -s notifications

gh opens your browser to approve it, once.

When GHManage cannot find gh

If gh is missing, the status bar says that the gh CLI was not found, with where to get it. On the Mac, an app started from Finder or the Dock does not see the PATH your terminal uses, so GHManage looks in the usual Homebrew and MacPorts folders itself (/opt/homebrew/bin, /usr/local/bin, /opt/local/bin) as well as ~/.local/bin. If you keep gh somewhere else, set the environment variable GHMANAGE_GH_PATH to its full path.

If gh is installed but signed out, or its sign-in has expired, the error gh gives is shown in the status bar as it is, because that is the message that says what to fix.