Skip to content

Configuration Reference

binmate is configured through a JSON file located at ~/.config/.binmate/config.json. This page documents every field. For a guided introduction, see the configuration guide.

JSON schema validation

The JSON schema is available at https://binmate.cturner8.dev/schema.json if using an editor that supports JSON schema based intellisense.

Top-level fields

FieldTypeDescription
$schemastringURL of the JSON schema used for validation.
versionnumberConfiguration schema version (currently 1).
globalobjectOptional global defaults applied to all binaries.
binariesarrayThe list of binaries managed by binmate.

Global configuration

Global settings apply to all binaries unless overridden on an individual binary.

FieldTypeDescription
global.installPathstringDefault installation path for all binaries (e.g. /usr/local/bin).
global.providers.<provider>.authenticatedbooleanDefault authentication setting for a provider.
global.providers.<provider>.askpassModestringWhen to invoke the askpass script in the TUI: "startup" (default) or "always".

TUI configuration

Optional configuration for interactive mode.

FieldTypeDescription
tui.askpassModestringWhen to invoke the askpass script in the TUI: "startup" (default) or "always".
tui.dateFormatstringDisplay format to use for date display. When omitted, uses the system date.

Binary configuration

Each entry in the binaries array describes a single binary.

FieldTypeRequiredDescription
idstringYesUnique identifier for the binary.
namestringYesDisplay name of the binary.
providerstringYesProvider type (currently only github is supported).
pathstringYesRepository path (e.g. owner/repo).
formatstringYesArchive format (.tar.gz, .zip, raw).
installPathstringNoCustom installation path (overrides global.installPath).
assetRegexstringNoRegex to filter release assets.
releaseRegexstringNoRegex to filter releases.
authenticatedbooleanNoUse authentication for API calls (overrides the provider default).

Supported values

  • Providers: github (currently the only supported provider).
  • Formats: .tar.gz, .zip, raw.

TIP

Use format raw when an application distributes raw uncompressed binaries in release assets (e.g. mkcert, kind, minikube)

Example

json
{
  "$schema": "https://binmate.cturner8.dev/schema.json",
  "version": 1,
  "global": {
    "installPath": "/usr/local/bin",
    "providers": {
      "github": {
        "authenticated": true
      }
    }
  },
  "tui": {
    "askpassMode": "always",
    "dateFormat": "02/01/2006 15:04"
  },
  "binaries": [
    {
      "id": "gh",
      "name": "gh",
      "provider": "github",
      "path": "cli/cli",
      "format": ".tar.gz"
    },
    {
      "id": "fzf",
      "name": "fzf",
      "provider": "github",
      "path": "junegunn/fzf",
      "format": ".tar.gz",
      "installPath": "/opt/bin"
    },
    {
      "id": "mkcert", 
      "name": "mkcert", 
      "provider": "github",
      "path": "filosottile/mkcert",
      "format": "raw"
    }
  ]
}

Released under the MIT License.