Configuration
ghqc uses a separate configuration directory to hold shared review setup for a project or team.
That directory is where ghqc looks for checklist files, optional UI naming overrides, a logo, and a custom record template.
If you want the walkthrough of the web UI tab specifically, see Configuration feature.
1. What Configuration Is
Section titled “1. What Configuration Is”At runtime, configuration is just a local directory that ghqc knows how to read.
That directory may also be a Git repository, which is the recommended setup because it makes checklist and option changes versioned, reviewable, and shareable.
In practice, most teams use a small dedicated config repo and point ghqc at the local clone of that repo.
2. Directory Contents
Section titled “2. Directory Contents”The expected layout is:
Directory<config-dir>/
Directorychecklists/
- checklist1.txt
- checklist2.yaml
- logo.png
- options.yaml
- record.typ
These files are not all equally required. Some are optional, some have built-in fallbacks, and some only matter when you override their default path.
2.1. Options
Section titled “2.1. Options”options.yaml lets you override the small set of repository options that ghqc reads from configuration.
| Option | Purpose |
|---|---|
prepended_checklist_note | Prepends a note to loaded checklist content |
checklist_display_name | Changes how checklist-like content is named in the UI |
include_collaborators | Enables or disables collaborator detection in create flows |
logo_path | Changes the relative path to the logo file |
checklist_directory | Changes the relative path where checklists are loaded from |
record_path | Changes the relative path to a custom Typst record template |
ui_repo_refresh_rate_seconds | Sets the repository refresh interval used by the web UI |
All paths are relative to the resolved configuration directory.
If options.yaml exists but cannot be parsed, ghqc does not abort configuration loading.
Instead, it falls back to built-in defaults.
Built-In Defaults
Section titled “Built-In Defaults”| Setting | Default |
|---|---|
prepended_checklist_note | none |
checklist_display_name | checklists |
include_collaborators | true |
logo_path | logo.png |
checklist_directory | checklists |
record_path | record.typ |
ui_repo_refresh_rate_seconds | 15 |
ui_repo_refresh_rate_seconds resolves in this order:
options.yamlui_repo_refresh_rate_secondsGHQC_UI_REFRESH_RATE- built-in default
15
Missing, invalid, zero, and negative values fall back to the next source.
2.2. Checklists
Section titled “2.2. Checklists”By default, ghqc loads checklist files from checklists/.
Supported formats are:
.txt.yaml.yml
Other file types in that directory are ignored.
For .txt files, the checklist name comes from the filename.
For .yaml and .yml files, the checklist name comes from the top-level YAML key.
The built-in Custom checklist is always present, even if the checklist directory is missing or all repository-backed checklist files fail to load.
2.3. Logo And Record Template
Section titled “2.3. Logo And Record Template”logo.pngis optional visual branding for generated records. If absent, record generation still works without an embedded logo.record.typis the Typst template that controls how records are rendered. If absent,ghqcfalls back to its built-in record template.
3. Directory Resolution
Section titled “3. Directory Resolution”The configuration directory is resolved in a fixed order:
--config-dirGHQC_CONFIG_REPOGHQC_CONFIG_DIR- default XDG data path
3.1. --config-dir
Section titled “3.1. --config-dir”When you pass --config-dir, ghqc uses that exact directory directly.
This is the most explicit option and the best choice for one-off runs, testing, or scripting.
3.2. GHQC_CONFIG_REPO
Section titled “3.2. GHQC_CONFIG_REPO”When GHQC_CONFIG_REPO is set, ghqc derives a local directory from the repository URL.
It resolves to:
$XDG_DATA_HOME/ghqc/<repo-name>For example:
export GHQC_CONFIG_REPO=https://github.com/a2-ai/ghqc.example_config_repotypically resolves to:
~/.local/share/ghqc/ghqc.example_config_repoThis is useful because the config location is stable across machines, the repo name keeps multiple config repos distinct, and the UI can pre-fill the setup form from the environment variable.
3.3. GHQC_CONFIG_DIR
Section titled “3.3. GHQC_CONFIG_DIR”When GHQC_CONFIG_DIR is set, ghqc uses that directory path directly.
This is useful when:
- using an HPC where all users in a group can read the same directory
- the configuration already exists locally outside the XDG data directory
- you do not want
ghqcto infer a path from a Git URL
GHQC_CONFIG_DIR has lower precedence than GHQC_CONFIG_REPO. If both are set, GHQC_CONFIG_REPO wins.
3.4. Default Location
Section titled “3.4. Default Location”If no override is provided, ghqc falls back to:
$XDG_DATA_HOME/ghqc/configOn a typical Linux or macOS setup using XDG defaults, that is often:
~/.local/share/ghqc/config4. Git And Non-Git Directories
Section titled “4. Git And Non-Git Directories”ghqc can read configuration from either a Git-backed directory or a plain local directory.
If the directory is a Git repo, ghqc can show repo details and sync status in the UI and CLI.
If it is just a local folder, configuration still loads, but setup and status information are more limited.
If setup targets an existing directory that is not already a Git repository, ghqc treats that as a conflict instead of silently overwriting it.
5. Recommended Setup
Section titled “5. Recommended Setup”For most teams:
- Create a dedicated Git repo for configuration.
- Set
GHQC_CONFIG_REPOto that repo URL. - Run configuration setup once so the repo is cloned locally.
- Keep checklists and options version-controlled there.
Use GHQC_CONFIG_DIR mainly for local development, experimentation, or situations where configuration is intentionally not backed by a Git remote.