# session.Session.plan

- **Module:** session.Session
- **Package:** libtmux
- **Language:** TypeScript
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-ts/blob/3fe1ca654b81b8cbf4a13b777a001a3298c87a6f/packages/libtmux/src/session.ts#L304
- **Page:** https://libtmux.org/en/ts/latest/reference/session-session-plan/

```
session.Session.plan() -> SessionPlans
```

The same mutations, described instead of run.

`session.plan.newWindow(…)` takes what `session.newWindow(…)` takes and
resolves to what it resolves to; it hands the work to {@link Server.batch}
so the planned mutations share one final snapshot.

## Example

```ts
const [editor, logs] = await server.batch([
  session.plan.newWindow({ name: "editor" }),
  session.plan.newWindow({ name: "logs" }),
]);
```
