# session.Session.plan

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

```
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 [`Server.batch`](/en/ts/latest/reference/server-server-batch/)
so the planned mutations share one final snapshot.

## Examples

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