# Configuration

> How to configure your environment to work with Johnny.Decimal tools.

The standard config for Johnny.Decimal tools is `~/.jd/config.json`. Use it and your tools will work with mine.

If you build Johnny.Decimal utilities, I recommend you use this file. Its configuration will be version controlled.

## Example

```json
{
  "version": 1,
  "systems": [
    {
      "sys": "D25",
      "title": "My business system",
      "root": "/Users/you/Documents/D25 My business system",
      "jdex": "/Users/you/Documents/D25 JDex",
      "default": true
    },
    {
      "sys": "P76",
      "title": "My personal system",
      "root": "/Users/you/Documents/P76 My personal system"
    }
  ]
}
```

## The fields

- `version`: the config format version. Currently `1`.
- `systems`: one entry per system. See [multiple systems](/documentation/multiple-systems-overview).

For each system:

- `sys`: the [system identifier](/documentation/acid-notation#sysacid).
- `title`: a name for the system.
- `root`: the filesystem root – the folder that holds your areas.
- `jdex`: the root of your JDex, if it is on your filesystem (e.g. an Obsidian vault). Optional.[^obsidian]
- `default: true`: the system a tool acts on when you do not name one. Optional. Without it, the first system is the default.

[^obsidian]: Noting that your Obsidian vault should live at `00.00` in your Johnny.Decimal system. That makes the path long so I simplified the example code. See [blog/0182](/blog/0182-jdex-data-and-storage) for a deep-dive. If your JDex isn't filesystem-accessible, e.g. Apple Notes or Bear, omit this value.

## Another location

To keep the file somewhere else, set `JD_CONFIG` to its path. Tools should read `JD_CONFIG` first, then fall back to `~/.jd/config.json`.

## Environment variables

An earlier version of this page defined `JD_*` environment variables: `JD_PATH`, `JD_D25_PATH`, `JD_JDEX`. The config file replaces them. If you define your own Johnny.Decimal variables, keep the `JD_` prefix.