# tmuxp.workspace.builder.ClassicWorkspaceBuilder.__init__

- **Module:** tmuxp.workspace.builder.ClassicWorkspaceBuilder
- **Package:** tmuxp
- **Language:** Python
- **Kind:** method
- **Source:** https://github.com/tmux-python/tmuxp/blob/153acdf6ff1268b14d3d03ed488f545a7123c8f1/src/tmuxp/workspace/builder/classic.py#L329
- **Page:** https://libtmux.org/en/py/latest/workspace/reference/tmuxp-workspace-builder-classicworkspacebuilder-__init__/

```
tmuxp.workspace.builder.ClassicWorkspaceBuilder.__init__(self, session_config: dict[str, t.Any], server: Server, plugins: list[t.Any] | None = None, on_progress: t.Callable[[str], None] | None = None, on_before_script: t.Callable[[], None] | None = None, on_script_output: t.Callable[[str], None] | None = None, on_build_event: t.Callable[[dict[str, t.Any]], None] | None = None) -> None
```

Initialize workspace loading.

## Parameters

- `self`
- `session_config` (dict[str, t.Any]): session config, includes a :class:`list` of ``windows``.
- `server` (Server): tmux server to build session in
- `plugins` (list[t.Any] | None): plugins to be used for this session
- `on_progress` (t.Callable[[str], None] | None): callback for progress updates during building
- `on_before_script` (t.Callable[[], None] | None): called just before ``before_script`` runs; use to clear the terminal
(e.g. stop a spinner) so script output is not interleaved
- `on_script_output` (t.Callable[[str], None] | None): called with each output line from ``before_script`` subprocess; when
set, raw TTY tee is suppressed so the caller can route lines to a
live panel instead
- `on_build_event` (t.Callable[[dict[str, t.Any]], None] | None): called with a dict event at each structural build milestone (session
created, window started/done, pane creating, workspace built); used
by the CLI to render a live session tree
