Accounts and remotes
Katari works with GitHub, GitLab, Bitbucket, Azure DevOps and Gitea, including self-hosted installations. It recognises which one a remote belongs to from its URL.
It uses the credentials git already has
There is nothing to paste before Katari is useful. It asks git for your
credentials exactly the way the command line does, so if git push works in
a terminal it works here.
When you do add one — Settings → Accounts → Add an account — Katari
stores it through git credential approve, which is the same store git
itself reads. Not a config file of its own, and not a second place to keep
your tokens in step.
Where the host has an API Katari can reach, the token is checked before it is stored, so a typo is caught where you typed it rather than at the next push. GitHub, GitLab and Gitea can be checked this way. Azure DevOps and Bitbucket cannot from a host name alone, and Katari says so rather than pretending.
No token is ever displayed. The list shows a host, a username, and whether something is stored. There is no "reveal", because a client that can show you a token is a client that is keeping one.
Cloning without going to a browser
For a connected GitHub, GitLab or Gitea account, Settings → Accounts → Repositories lists what that account can see. Search by part of a name, pick one, choose where to put it, and Katari clones and opens it.
Private repositories are labelled as such, in words rather than only by colour.
Azure DevOps and Bitbucket have no account-level listing Katari can reach from a host name, so the button is not offered for them — clone those by URL.
Several remotes
A repository with more than one remote shows each by name, and every push names the remote it is going to. There is no "origin, or whichever sorts first" fallback.
If you work in forks, this is the difference between pushing to your fork and pushing to upstream without noticing.
Pull and merge requests
Open requests are listed from the host's own API, so what you see is what the host has. Opening one takes you to it in your browser — Katari does not try to reproduce a review interface.
Force-push, safely
Force-push uses a lease: the push is refused if the remote has moved since
you last fetched. It is the safety --force-with-lease gives you on the
command line, and it is the default here rather than something to remember.
A plain force that overwrites regardless is available, and is a separate choice.