Git-Tool uses a yaml configuration file while allows you to configure everything from where your repositories and scratchpads are stored, to which applications you use to open them and which Git hosting services you use to store them.

By default, Git-Tool will attempt to load your configuration from the path provided in your GITTOOL_CONFIG environment variable, however you can override this by passing the --config flag to any Git-Tool command if you wish.

Many config related changes can be conducted using Git-Tool's gt config command, including adding new services and apps, configuring your feature flags and aliasing your commonly used repos.


The first thing to set up in your config.yml file is your development directory path. This is the directory into which Git-Tool will place your repositories whenever you clone or create them.


You can change your development directory at any time using the gt config path command.

directory: "C:\\Users\\bpannell\\dev"
directory: "/home/bpannell/dev"
directory: "/Users/bpannell/dev"


If you plan on using Git-Tool's scratchpads feature, you might decide that you want to place your scratchpads in a different directory to your repositories. Maybe you'd like them to be replicated using your cloud storage service, or maybe you like to live dangerously and want them on a /tmp RAMDisk.


You can change your scratchpad directory at any time using the gt config path --scratch command.

If you don't specify a scratchpads directory, Git-Tool will use a scratch folder within your development directory to hold your scratchpads.

scratchpads: "C:\\Users\\bpannell\\scratch"
scratchpads: "/home/bpannell/scratch"
scratchpads: "/Users/bpannell/scratch"

Example Configuration

Here is a short example configuration file which you can use as the basis for your own. You might find the config commands useful to make changes to it.


To view your current configuration, run gt config.

# yaml-language-server: $schema=
directory: /home/bpannell/dev
  - name: gh
    website: "{{ .Repo.FullName }}"
    gitUrl: "{{ .Repo.FullName }}.git"
    pattern: "*/*"
      kind: GitHub/v3
  - domain: ado
    website: "{{ .Repo.Namespace }}/_git/{{ .Repo.Name }}"
    gitUrl: "{{ .Repo.FullName }}.git"
    pattern: "*/*/*"
  - name: shell
    command: pwsh
  - name: code
    command: code
      - .
  gt: gh:SierraSoftworks/git-tool

  open_new_repo_in_default_app: true

  # Disable this if you don't want to report crashes to us
  telemetry: true