# session.Session.plan

- **Module:** session.Session
- **Package:** @libtmux/libtmux
- **Language:** TypeScript
- **Kind:** method
- **Source:** https://github.com/libtmux/libtmux-ts/blob/2cb93308200da38a26b59876618116850f110607/packages/libtmux/src/session.ts#L297
- **Page:** https://libtmux.org/reference/ts/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" }),
]);
```
