Skip to content

Configuration

Global gtl settings are stored in $XDG_CONFIG_HOME/gtl/config.json when XDG_CONFIG_HOME is set. Otherwise, they are stored in ~/.config/gtl/config.json.

Use gtl config list to print the full global config file.

bash
gtl config list
gtl config get default-clone-path
gtl config set default-clone-path /Users/name/projects
gtl config get repo-search-paths
gtl config set repo-search-paths '/Users/name/work:/Users/name/personal'

Stored Values

config.json stores durable settings such as:

  • clone_destination, set with gtl config set default-clone-path <path>
  • repo_search_paths, set with gtl config set repo-search-paths <path-list>
  • repo_paths, saved by gtl find <repo> --set-path
  • repo_index, refreshed by gtl clone, saved repo paths, plain-name gtl find <search> searches, and repository scans; checked before walking the filesystem
  • identity_profiles, used by gtl identity

repo_search_paths is an optional OS path-list used when gtl find, gtl path, gtl repos, or URL-only gtl link need to discover local clones by remote. When it is unset, gtl checks conventional folders such as ~/Documents/GitHub, ~/LOCAL/Github, ~/repos, ~/Projects, and ~/code.

The older clone-destination key is still accepted as an alias for default-clone-path; repo-search-path is accepted as an alias for repo-search-paths. Older identity.json files are read as a migration fallback when config.json does not contain identity profiles; new identity saves write to config.json.

Repository-Local Files

Repository-local generated files are stored under .gtl/ inside the current repository. Examples include:

  • .gtl/repo-list.json
  • .gtl/pull-requests/
  • .gtl/issues/
  • .gtl/env/AGENT_PRECHECK.md

Commands that write local runtime files add .gtl/ and identity files such as .envrc to .git/info/exclude, keeping them out of commits while allowing local tooling to read them.

Linked Repositories

Repository links are stored in the current folder's gittle.toml using repository URLs as keys:

toml
[link]
"https://github.com/owner/repository" = ""
"https://gitlab.com/group/repository" = ""

Running gtl link <repository-url> resolves or clones the repository, creates .gtl/<repository>, and adds the empty-value entry when it is missing. Running gtl link without an argument reloads the configured links. An explicit path value binds a repository URL to a specific local folder:

toml
[link]
"https://github.com/owner/repository" = "../repository"

Running gtl link <local-folder> creates only the local .gtl mirror and never adds an entry to gittle.toml.

Released under the MIT License.