# Find saved workspaces

Source: https://libtmux.org/en/csharp/latest/workspace/guides/discovery/

> Resolve explicit files, project directories and saved workspace names.

Use an explicit path, such as [`./workspace.yaml`](https://libtmux.org/en/csharp/latest/workspace/guides/installation/#create-the-input), to select one document.
Pass a project directory such as `.` to use its [`.tmuxp.yaml`](https://libtmux.org/en/csharp/latest/workspace/guides/discovery/#list-available-files), [`.tmuxp.yml`](https://libtmux.org/en/csharp/latest/workspace/guides/discovery/#list-available-files) or
[`.tmuxp.json`](https://libtmux.org/en/csharp/latest/workspace/guides/discovery/#list-available-files) configuration. A bare saved name uses the global workspace
directory.

## List available files

```console
$ tmux-workspace ls --json
```

Discovery includes project configurations in the current directory and its
parents, plus saved global workspaces. The first existing global directory
wins, in this order:

1. `TMUXP_CONFIGDIR`.
2. `$XDG_CONFIG_HOME/tmuxp`, with [`~/.config`](https://libtmux.org/en/csharp/latest/workspace/guides/discovery/#list-available-files) as the XDG default.
3. [`~/.tmuxp`](https://libtmux.org/en/csharp/latest/workspace/guides/discovery/#list-available-files).

An existing empty directory remains selected. A missing directory does not
override an existing fallback merely because its environment variable is set.

## Search by content

```console
$ tmux-workspace search --json window:editor
```

Use [search](https://libtmux.org/en/csharp/latest/workspace/cli/search/) for field prefixes and pattern rules. Use
[edit](https://libtmux.org/en/csharp/latest/workspace/cli/edit/) to open a discovered workspace, or
[load](https://libtmux.org/en/csharp/latest/workspace/cli/load/) with an explicit path when a name is ambiguous.

[CLI source](https://github.com/libtmux/libtmux-dotnet/blob/f77fe776ba67a04abb20ddbbc26cf4a000d63b74/src/LibTmux.Workspace.Cli/README.md).
