# tmuxp.workspace.builder.ClassicWorkspaceBuilder.__init__

- **Module:** tmuxp.workspace.builder
- **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/stable/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.

### Notes

TODO: Initialize :class:`libtmux.Session` from here, in
``self.session``.

## Parameters

- `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
