# libtmux.workspace.cli:main

**Workspace Manager concept example** A working example of the core library. It can change without notice.

- **Package:** libtmux/workspace/cli
- **Language:** Common Lisp
- **Kind:** function
- **Source:** https://github.com/libtmux/libtmux-lisp/blob/c2e5fc4ed3befda21f45dfa5d5868c38fd138311/src/workspace-cli.lisp#L237
- **Public owner:** libtmux.workspace.cli
- **Page:** https://libtmux.org/en/lisp/latest/workspace/reference/libtmux-workspace-cli-main/

```
(main &key (arguments (command-line-arguments)) (stdout *standard-output*) (stderr *error-output*))
```

Run the workspace CLI for ARGUMENTS and return process status 0, 1, or 2.
VALIDATE and PLAN parse one bounded file without tmux I/O. APPLY requires
--socket-path and optionally accepts --program; it scopes and closes its own
client without terminating the server. STDOUT receives one JSON result or help.
STDERR receives usage text or one JSON error retaining condition causes, failed
step data, and command outcomes, including byte arrays and unknown dispatch
status. An unavailable exit code or failed step is omitted. MAIN does not call
UIOP:QUIT, close caller streams, or enter the debugger.
Nested diagnostic details stop after eight levels and mark detailsTruncated.

See also: `libtmux.workspace:apply-workspace`, `libtmux:outcome-phase`, `libtmux:outcome-status`.

## Parameters

- `arguments?`
- `stdout?`
- `stderr?`

## Guides

Pages that discuss `main`.

- [Workspace guide](/en/lisp/latest/workspace/source-guide/)
