> ## Documentation Index
> Fetch the complete documentation index at: https://docs.synheart.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshoot

> Reference for the synheart commands in the Troubleshoot group.

Every command also accepts the [global flags](/cli/reference/index#global-flags).

## `synheart config`

Show how the CLI resolves its settings

The CLI resolves each setting in this order, highest first:

```text theme={null}
1. A command-line flag
2. An environment variable
3. The project config, .synheart/config.yaml in this directory or a parent
4. The user config, ~/.synheart/config.yaml (ui.theme, ui.mode, ui.motion,
   and platform.org/tenant/project as a fallback)
5. The built-in default
```

Use 'config show' to see the values resolved for the current directory and
'config path' to find the project config file in use.

**Usage**

```bash theme={null}
synheart config
```

**Subcommands**

* `synheart config path`: Print the path of the project config file
* `synheart config show`: Show the resolved project configuration

**Examples**

```bash theme={null}
# See the resolved settings
synheart config show
# Find the config file
synheart config path
```

### `synheart config path`

Print the path of the project config file

Prints the absolute path of the .synheart/config.yaml in effect. When none
is found it prints "(none)" and exits 1, so you can use it in a shell
conditional. With --json it prints "loaded" and "config\_path".

**Usage**

```bash theme={null}
synheart config path
```

**Examples**

```bash theme={null}
# Print the path
synheart config path
# Use it in a script
synheart config path --json || echo "no project config"
```

**JSON output:** supported. Add `--json` (or `--format json`) to print a machine-readable body.

### `synheart config show`

Show the resolved project configuration

Prints the config files in effect (the project config found by searching up
from the current directory, and the user config \~/.synheart/config.yaml), the
appearance settings with the layer each came from (flag, env, project, user or
default), and the values the project sets for mock, local, receiver and
scenarios. Needs no login and no network. With --json it prints the same as an
object.

**Usage**

```bash theme={null}
synheart config show
```

**Examples**

```bash theme={null}
# Show the config for this directory
synheart config show
# As JSON
synheart config show --json
```

**JSON output:** supported. Add `--json` (or `--format json`) to print a machine-readable body.

## `synheart doctor`

Check your Synheart setup for problems

Walks through your environment, scenario data, installed runtime, sign-in
and network, and reports each step as ok, warn or error. The runtime check
reads synheart.lock: vendored files must still match it, and native libraries
must export the functions their variant needs. In a Flutter project it also
checks that the runtime satisfies the synheart\_core version your project
resolved.

Doctor exits 1 only when your app cannot work: the runtime is missing or
incompatible, its files are missing or modified, or a library lacks functions
its variant must export. Everything else, such as a port in use, an available
update or being logged out, is reported without changing the exit code.

\--online also asks the registry for a newer runtime and needs you to be logged
in. With --json it prints the report as an object.

**Usage**

```bash theme={null}
synheart doctor [flags]
```

**Flags**

| Flag | Type | Default | Description |
| - | - | - | - |
| `--examples` | `bool` | `false` | Also print WebSocket connection examples (JavaScript, Python, Go) |
| `--host` | `string` | `127.0.0.1` | Host to bind to |
| `--online` | `bool` | `false` | Also check the registry for a newer runtime release (requires login) |
| `--port` | `int` | `8787` | Port to check |
| `--project` | `string` | - | Project directory whose installed runtime to check (default: the project config's directory, else .) |

**Examples**

```bash theme={null}
# Run all checks
synheart doctor
# Inspect another project and also check for a newer runtime
synheart doctor --project ./my-app --online
# Machine-readable report
synheart doctor --json
```

**JSON output:** supported. Add `--json` (or `--format json`) to print a machine-readable body.

## `synheart env`

Show paths, account and project type

Prints what support or an agent needs to know about your setup: Go version,
OS and architecture, cache and config paths, the project's lockfile and vendor
directory, the detected project type (ios, android, flutter, multi or none) and
app IDs, the signed-in account and plan, and the pinned runtime from
synheart.lock. Needs no network; the account section appears only when you are
logged in. With --json it prints the same as an object.

**Usage**

```bash theme={null}
synheart env [flags]
```

**Flags**

| Flag | Type | Default | Description |
| - | - | - | - |
| `--project-dir` | `string` | `.` | Project directory to inspect |

**Examples**

```bash theme={null}
# Show the environment for this directory
synheart env
# Another project, as JSON
synheart env --project-dir ../my-app --json
```

**JSON output:** supported. Add `--json` (or `--format json`) to print a machine-readable body.

## `synheart explain`

Read a plain-language primer on a concept

Prints a short primer on a Synheart concept, such as HSI or HRV, in your
terminal. Run it with no topic to list the available topics. Needs no login and
no network. With --json it prints the topic (title, summary, body, examples) as
an object, or the topic list as an object with "items".

**Usage**

```bash theme={null}
synheart explain [topic]
```

**Examples**

```bash theme={null}
# List the topics
synheart explain
# Read about the Human State Interface
synheart explain hsi
# Read about heart rate variability
synheart explain hrv
```

**JSON output:** supported. Add `--json` (or `--format json`) to print a machine-readable body.

## `synheart update`

Update the CLI to the latest release

Checks the release manifest, and if a newer version exists, asks you to
confirm and then replaces the running binary. Use --check to only report
whether an update exists (exit 0 if you are current, 1 if a newer one is
available), --yes to skip the prompt in scripts, and --rollback to restore the
binary you had before your last update.

Refuses when a package manager (Homebrew, apt, Chocolatey, go install) manages
the binary; use --force to override, or update with the package manager. On
Windows, re-run the installer instead. Needs network access.

After other commands the CLI prints a one-line notice when an update is
available. Silence it with SYNHEART\_NO\_UPDATE\_CHECK=1 or by running in CI. With
\--json it prints the result as an object. 'synheart upgrade' is an alias.

**Usage**

```bash theme={null}
synheart update [flags]
```

**Aliases:** `upgrade`

**Flags**

| Flag | Type | Default | Description |
| - | - | - | - |
| `--apply` | `bool` | `false` | Deprecated: applying is the default now |
| `--check` | `bool` | `false` | Only report whether an update exists; exit 1 if one is available, 0 if not |
| `--force` | `bool` | `false` | Update even when a package manager appears to manage the binary |
| `--rollback` | `bool` | `false` | Restore the previously installed binary |
| `--yes` | `bool` | `false` | Skip the confirmation prompt (required without a terminal) |

**Examples**

```bash theme={null}
# Update, with a confirmation prompt
synheart update
# Update in a script
synheart update --yes
# Only check, for CI
synheart update --check --json
# Go back to the previous version
synheart update --rollback
```

**JSON output:** supported. Add `--json` (or `--format json`) to print a machine-readable body.

## `synheart version`

Show the CLI version

Prints the CLI version. Add --build for the commit, build date, Go version
and OS and architecture; include them when you file a bug. Needs no login and no
network. With --json it always prints every field as an object.

**Usage**

```bash theme={null}
synheart version [flags]
```

**Flags**

| Flag | Type | Default | Description |
| - | - | - | - |
| `--build` | `bool` | `false` | Include build details (commit, build date, Go version, OS and architecture) |

**Examples**

```bash theme={null}
# Print the version
synheart version
# Include build details
synheart version --build
# As JSON
synheart version --json
```

**JSON output:** supported. Add `--json` (or `--format json`) to print a machine-readable body.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.