star.config.toml
Your configured repositories and their pins live in one small TOML file.
[repositories."jingus/starters"]
remote = "https://git.jingus.dev/jingus/starters"
commit = "ae3b1350575f2c9c7bf72e6d8f9e0a1b2c3d4e5f"
[repositories."star/starters"]
remote = "https://git.jingus.dev/star/starters"
commit = "7f2c9ab104de91cc3e5578aabbccddeeff001122"
Shape
- Keys are namespaces — the repository’s identity (
owner/name, or your--nameoverride). commitstores the full 40-character object id. Short hashes are for display; full ids makegit fetch <sha>+rev-parse --verifyreliable.- The file is serialized through a sorted map, so entries stay sorted and diffs stay stable no matter which command wrote them.
Location
star resolves the config path in this order:
$STAR_CONFIG— tests, CI, power users- the platform config dir, via the
directoriescrate (~/.config/star/star.config.tomlon Linux,~/Library/Application Support/star/…on macOS) $HOME/.config/star/star.config.toml, if no platform dir could be resolved./star.config.tomlas a last resort
Generated configs? Use -f
star repo update accepts -f/--file to retarget that command to any file:
star repo update -f ./star.config.toml
First run
When no config exists at the resolved location, the command that needed it creates one — there is
no separate star init:
- interactive: prompt once — Include the default repository
star/starters? (default yes), then write the config with it pinned. - non-interactive: include the default repository, print a note, never block a script.
The default repository (star/starters) is a pair of constants in star’s source and can be
removed like any other repository.