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.