# libtmux.workspace:plan-workspace

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

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

```
(plan-workspace workspace &optional snapshot)
```

Return a finite local WORKSPACE-PLAN, optionally against captured SNAPSHOT.
Without SNAPSHOT, return the deterministic creation plan. With SNAPSHOT, return
that plan when the named session is absent, an empty proven no-op when topology
matches, or signal WORKSPACE-CONFLICT before dispatch. Planning compares window
names, declared indexes, and pane counts; creation-only cwd, argv, and layout
are not inferred from mutable live state. Explicit indexes are reserved before
automatic windows. Pane creation and final order follow the declaration. No
tmux I/O occurs.

See also: `libtmux.workspace:apply-workspace`, `libtmux.workspace:plan-steps`, `libtmux.workspace:workspace-data`.

## Parameters

- `workspace`
- `snapshot?`

## Guides

Pages that discuss `plan-workspace`.

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