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

# basset config

> Every setting the CLI reads, and where each one comes from

Settings live in plain text files. The same files decide how `basset` behaves in your terminal and how a `basset mcp` server answers an agent, so a change reaches both.

```bash theme={"dark"}
basset config
```

Prints every setting, its value, and the file it came from. A setting nothing has named reads as `unset`.

| Flag | Meaning |
| - | - |
| `--json` | Print JSON even when the output is a terminal. |

## Settings

| Setting | Meaning |
| - | - |
| `org` | The organization commands act in. |
| `app` | The app request commands target. |
| `endpoint` | `host:port` of the rpc service. |
| `plaintext` | Dial without TLS, for an rpc running locally. |
| `dsym-path` | Colon-separated roots to search for a matching dSYM. |
| `symbolicate` | Resolve captured frame addresses against a local dSYM. Defaults to on. |

## Where settings come from

Each setting is read from the first place that names it:

1. A flag on the command, such as `--org`.
2. The matching environment variable — `BASSET_ORG`, `BASSET_APP`, `BASSET_ENDPOINT`, `BASSET_PLAINTEXT`, `BASSET_DSYM_PATH`, `BASSET_SYMBOLICATE`.
3. The nearest `.bassetrc`, searching up from the current directory.
4. `~/.config/basset/config`.
5. For `org` only, the organization stored when you signed in.

`basset config` names the file every value came from, so a setting is never applied from somewhere you cannot see.

Both files are read fresh each time a setting is used. Editing one reaches a running `basset mcp` server on its next call — you do not need to restart it.

## Your settings

```
~/.config/basset/config
```

Written by `basset org select` and `basset app select`, and safe to edit by hand. It does not exist until one of those runs or you create it.

```
org = acme
endpoint = rpc.basset.dev:30949
```

One setting a line, `key = value`, and `#` starts a comment. If `XDG_CONFIG_HOME` is set, the file lives under that instead.

This is also where `basset auth login` writes the credential, in `credentials.json` beside it. Keep that file out of version control — it carries the token that signs your requests.

## A repository's settings

```
.bassetrc
```

Put this at the root of a repository for the settings that belong to the code rather than to you. `basset` searches upward from wherever it runs, so it applies in every directory beneath.

```
# The app this repository ships, and where its debug symbols land.
app = Checkout
dsym-path = build/Debug-iphoneos
```

`org` and `endpoint` describe your account and your machine, so they belong in your own file. `app` and `dsym-path` describe the repository, so they belong here, and a `.bassetrc` is worth committing.

A relative `dsym-path` resolves against the file that names it, which is what keeps a committed one correct on a teammate's machine. An absolute path is left alone.

## Resolving captured addresses

Some instruments report where in your own code something happened, as addresses rather than names. Resolving them needs the dSYM for the exact build that ran, matched by its build UUID.

`basset` looks for one in `dsym-path`, then in a Bazel output tree if it finds one above the working directory, then in Spotlight's index, then in Xcode's archives and derived data. Nothing is uploaded and no address leaves your machine.

When no matching dSYM is found, the readings still arrive with their addresses intact and say which build they needed. Set `dsym-path` to point at wherever your build writes them:

```
dsym-path = build/Debug-iphoneos:~/Library/Developer/Xcode/Archives
```

Set `symbolicate = false` to turn resolution off entirely.


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