---
summary: "CLI reference for `hanzo-bot config` (get/set/unset/file/validate)"
read_when:
  - You want to read or edit config non-interactively
title: "config"
---

# `hanzo-bot config`

Config helpers: get/set/unset/validate values by path and print the active
config file. Run without a subcommand to open
the configure wizard (same as `hanzo-bot configure`).

## Examples

```bash
hanzo-bot config file
hanzo-bot config get browser.executablePath
hanzo-bot config set browser.executablePath "/usr/bin/google-chrome"
hanzo-bot config set agents.defaults.heartbeat.every "2h"
hanzo-bot config set agents.list[0].tools.exec.node "node-id-or-name"
hanzo-bot config unset tools.web.search.apiKey
hanzo-bot config validate
hanzo-bot config validate --json
```

## Paths

Paths use dot or bracket notation:

```bash
hanzo-bot config get agents.defaults.workspace
hanzo-bot config get agents.list[0].id
```

Use the agent list index to target a specific agent:

```bash
hanzo-bot config get agents.list
hanzo-bot config set agents.list[1].tools.exec.node "node-id-or-name"
```

## Values

Values are parsed as JSON5 when possible; otherwise they are treated as strings.
Use `--strict-json` to require JSON5 parsing. `--json` remains supported as a legacy alias.

```bash
hanzo-bot config set agents.defaults.heartbeat.every "0m"
hanzo-bot config set gateway.port 19001 --strict-json
hanzo-bot config set channels.whatsapp.groups '["*"]' --strict-json
```

## Subcommands

- `config file`: Print the active config file path (resolved from `BOT_CONFIG_PATH` or default location).

Restart the gateway after edits.

## Validate

Validate the current config against the active schema without starting the
gateway.

```bash
hanzo-bot config validate
hanzo-bot config validate --json
```
