# tmux.Session

- **Module:** tmux
- **Package:** github.com/libtmux/libtmux-go/tmux
- **Language:** Go
- **Kind:** struct
- **Source:** https://github.com/libtmux/libtmux-go/blob/5f808882015a975a65acc7f9da5b3ff0d5cbdc91/tmux/model.go#L34
- **Page:** https://libtmux.org/reference/go/tmux-session/

Session is one materialized tmux session record. It is normally returned by [Server.Snapshot], [Server.Session], or [Session.Refresh]. A zero Session is not a usable tmux target.

## Members

- `OpenControl` (method) — OpenControl opens terminal control-mode transport to the receiver's daemon. The returned connection owns its lanes and must be closed. A receiver already bound to a connection cannot be rebound. Before tmux 3.6, destroying the attached session follows that session's detach-on-destroy policy and may end the connection.
- `SetEnvironment` (method) — SetEnvironment stores a value in this session's tmux environment, targeted by its stable SessionID.
- `UnsetEnvironment` (method) — UnsetEnvironment deletes a value from this session's tmux environment, targeted by its stable SessionID.
- `RemoveEnvironment` (method) — RemoveEnvironment marks a variable for removal from new process environments for this stable session target.
- `ShowEnvironment` (method) — ShowEnvironment returns an owned session-scoped non-hidden tmux environment. Completed command failures return an empty map unless strict errors are enabled. Externally injected multiline entries return ErrMalformedEnvironment because tmux's multi-entry output does not frame continuation lines. Decode errors are compatible with [ErrMalformedEnvironment] and return no partial map.
- `GetEnvironment` (method) — GetEnvironment returns one non-hidden session environment entry for this stable session target. A missing or hidden variable reports ok false.
- `Formats` (method) — Formats returns this Session's read-only materialized tmux format values. It does not query tmux; use [Server.Snapshot] to obtain a fresh record.
- `ActiveWindowIndex` (method) — ActiveWindowIndex returns tmux #{active_window_index} as int from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `LastWindowIndex` (method) — LastWindowIndex returns tmux #{last_window_index} as int from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `Active` (method) — Active returns tmux #{session_active} as bool from this Session's materialized session-scoped fields (tmux 3.6 or later).
- `Activity` (method) — Activity returns tmux #{session_activity} as time.Time from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `ActivityFlag` (method) — ActivityFlag returns tmux #{session_activity_flag} as bool from this Session's materialized session-scoped fields (tmux 3.6 or later).
- `Alert` (method) — Alert returns tmux #{session_alert} as string from this Session's materialized session-scoped fields (tmux 3.6 or later).
- `Alerts` (method) — Alerts returns tmux #{session_alerts} as string from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `Attached` (method) — Attached returns tmux #{session_attached} as int from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `AttachedList` (method) — AttachedList returns tmux #{session_attached_list} as string from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `BellFlag` (method) — BellFlag returns tmux #{session_bell_flag} as bool from this Session's materialized session-scoped fields (tmux 3.6 or later).
- `Created` (method) — Created returns tmux #{session_created} as time.Time from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `Format` (method) — Format returns tmux #{session_format} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `Group` (method) — Group returns tmux #{session_group} as string from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `GroupAttached` (method) — GroupAttached returns tmux #{session_group_attached} as int from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `GroupAttachedList` (method) — GroupAttachedList returns tmux #{session_group_attached_list} as string from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `GroupList` (method) — GroupList returns tmux #{session_group_list} as string from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `GroupManyAttached` (method) — GroupManyAttached returns tmux #{session_group_many_attached} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `GroupSize` (method) — GroupSize returns tmux #{session_group_size} as int from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `Grouped` (method) — Grouped returns tmux #{session_grouped} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `LastAttached` (method) — LastAttached returns tmux #{session_last_attached} as time.Time from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `ManyAttached` (method) — ManyAttached returns tmux #{session_many_attached} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `Marked` (method) — Marked returns tmux #{session_marked} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `Name` (method) — Name returns tmux #{session_name} as string from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `Path` (method) — Path returns tmux #{session_path} as string from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `SilenceFlag` (method) — SilenceFlag returns tmux #{session_silence_flag} as bool from this Session's materialized session-scoped fields (tmux 3.6 or later).
- `Stack` (method) — Stack returns tmux #{session_stack} as string from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `WindowCount` (method) — WindowCount returns tmux #{session_windows} as int from this Session's materialized session-scoped fields (tmux 3.2a or later).
- `Hooks` (method) — Hooks returns a freshly decoded, caller-owned view of known hooks at this stable session target, including inherited values. A read failure is returned rather than answered with zero values.
- `RawHook` (method) — RawHook returns one exact session hook value at this stable session target. A successful string is caller-owned; ok reports presence and completed failures are returned. An unindexed empty hook array is ambiguous; use Hooks for typed presence.
- `SetHook` (method) — SetHook stores a session hook at this stable session target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation.
- `AppendHook` (method) — AppendHook appends a session hook at this stable session target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the append.
- `UnsetHook` (method) — UnsetHook removes every matching session hook index at this stable session target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the unset was accepted.
- `RunHook` (method) — RunHook asks tmux to run one session hook directly at this stable target. It intentionally performs no racy liveness preflight after validation. Completed failures are secret-safe option errors; cancellation does not prove execution did not occur.
- `SetHooks` (method) — SetHooks applies indexed session hook commands in ascending order at this handle's stable session target. With ClearExisting it confirms clearing first, stops at the first failure without rollback, and reports confirmed partial progress. Cancellation may follow accepted commands and cannot disprove their delivery.
- `Equal` (method) — Equal reports whether two session records carry the same stable ID and tmux server provenance.
- `String` (method) — String returns the session's stable ID and queried name.
- `Kill` (method) — Kill destroys the receiver session and removes its winlinks. Ordinary attached clients detach; on tmux 3.6 or later, clients carrying no-detach-on-destroy move to another session when one exists. A window with no remaining links and all of that window's panes are also destroyed. The materialized receiver is not refreshed. Only stderr makes a completed command a [CommandError]; nonzero exits without stderr are ignored. Transport errors are delivery-ambiguous. Kill is equivalent to [Session.KillWith] with a zero [SessionKillRequest].
- `KillWith` (method) — KillWith applies one kill-session mode without refreshing the materialized receiver. The zero request destroys the receiver; AllExcept destroys every other session while preserving the receiver and its current window; ClearAlerts only clears alerts in windows linked to the receiver and leaves sessions, winlinks, panes, client attachments, and current-window selections unchanged. Destroying a session handles clients as [Session.Kill] describes and removes its winlinks; windows left without links and their panes are also destroyed. Group destroys the receiver's group and requires tmux 3.7; on older versions it follows [UnsupportedPolicy].
- `KillWindow` (method) — KillWindow destroys one stable window. When Target and Index are nil it selects the receiver session's current window, and Index selects a winlink in that session. A nonnil Target is forwarded as unrestricted tmux target syntax and may select a window in another session. The selected stable window is removed from every session and its panes are destroyed. Affected sessions preserve their current selection unless this window was current, in which case they select another. A session left without windows is destroyed; [Session.Kill] describes how tmux handles its clients.
- `Refresh` (method) — Refresh performs a canonical live lookup without mutating the receiver.
- `ID` (method) — ID returns the stable tmux identity of this session.
- `Server` (method) — Server returns the immutable configured handle that produced the session.
- `Windows` (method) — Windows returns newly allocated shallow copies of this snapshot record's winlink views, and reports whether the receiver carries relations at all.
- `Panes` (method) — Panes returns newly allocated shallow copies of this snapshot record's pane views, and reports whether the receiver carries relations at all.
- `OpenNotifications` (method) — OpenNotifications starts an owned notification stream attached to the receiver. It does not change the receiver's transport or expose control commands. A connection-bound receiver returns [ErrConnectionRequiresProcess].
- `SetActivityAction` (method) — SetActivityAction stores the "activity-action" session option as ActivityAction (tmux 3.2a or later). Read it with [SessionOptionValues.ActivityAction] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetAssumePasteTime` (method) — SetAssumePasteTime stores the "assume-paste-time" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.AssumePasteTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetBaseIndex` (method) — SetBaseIndex stores the "base-index" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.BaseIndex] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetBellAction` (method) — SetBellAction stores the "bell-action" session option as BellAction (tmux 3.2a or later). Read it with [SessionOptionValues.BellAction] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetDefaultCommand` (method) — SetDefaultCommand stores the "default-command" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultCommand] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetDefaultShell` (method) — SetDefaultShell stores the "default-shell" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultShell] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetDefaultSize` (method) — SetDefaultSize stores the "default-size" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultSize] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetDestroyUnattached` (method) — SetDestroyUnattached stores the "destroy-unattached" session option as DestroyUnattached (tmux 3.2a or later). Read it with [SessionOptionValues.DestroyUnattached] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetDetachOnDestroy` (method) — SetDetachOnDestroy stores the "detach-on-destroy" session option as DetachOnDestroy (tmux 3.2a or later). Read it with [SessionOptionValues.DetachOnDestroy] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetDisplayPanesActiveColour` (method) — SetDisplayPanesActiveColour stores the "display-panes-active-colour" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesActiveColour] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetDisplayPanesColour` (method) — SetDisplayPanesColour stores the "display-panes-colour" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesColour] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetDisplayPanesTime` (method) — SetDisplayPanesTime stores the "display-panes-time" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetDisplayTime` (method) — SetDisplayTime stores the "display-time" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetFocusFollowsMouse` (method) — SetFocusFollowsMouse stores the "focus-follows-mouse" session option as bool (tmux 3.7 or later). Read it with [SessionOptionValues.FocusFollowsMouse] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetHistoryLimit` (method) — SetHistoryLimit stores the "history-limit" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.HistoryLimit] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetInitialRepeatTime` (method) — SetInitialRepeatTime stores the "initial-repeat-time" session option as int64 (tmux 3.6 or later). Read it with [SessionOptionValues.InitialRepeatTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetKeyTable` (method) — SetKeyTable stores the "key-table" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.KeyTable] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetLockAfterTime` (method) — SetLockAfterTime stores the "lock-after-time" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.LockAfterTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetLockCommand` (method) — SetLockCommand stores the "lock-command" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.LockCommand] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetMessageCommandStyle` (method) — SetMessageCommandStyle stores the "message-command-style" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.MessageCommandStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetMessageFormat` (method) — SetMessageFormat stores the "message-format" session option as string (tmux 3.7 or later). Read it with [SessionOptionValues.MessageFormat] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetMessageLine` (method) — SetMessageLine stores the "message-line" session option as MessageLine (tmux 3.4 or later). Read it with [SessionOptionValues.MessageLine] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetMessageStyle` (method) — SetMessageStyle stores the "message-style" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.MessageStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetMouse` (method) — SetMouse stores the "mouse" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.Mouse] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetPrefix` (method) — SetPrefix stores the "prefix" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.Prefix] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetPrefix2` (method) — SetPrefix2 stores the "prefix2" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.Prefix2] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetPromptCommandCursorStyle` (method) — SetPromptCommandCursorStyle stores the "prompt-command-cursor-style" session option as PromptCommandCursorStyle (tmux 3.7 or later). Read it with [SessionOptionValues.PromptCommandCursorStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetPromptCursorColour` (method) — SetPromptCursorColour stores the "prompt-cursor-colour" session option as string (tmux 3.6 or later). Read it with [SessionOptionValues.PromptCursorColour] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetPromptCursorStyle` (method) — SetPromptCursorStyle stores the "prompt-cursor-style" session option as PromptCursorStyle (tmux 3.6 or later). Read it with [SessionOptionValues.PromptCursorStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetRenumberWindows` (method) — SetRenumberWindows stores the "renumber-windows" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.RenumberWindows] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetRepeatTime` (method) — SetRepeatTime stores the "repeat-time" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.RepeatTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetTitles` (method) — SetTitles stores the "set-titles" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.SetTitles] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetTitlesString` (method) — SetTitlesString stores the "set-titles-string" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.SetTitlesString] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetSilenceAction` (method) — SetSilenceAction stores the "silence-action" session option as SilenceAction (tmux 3.2a or later). Read it with [SessionOptionValues.SilenceAction] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatus` (method) — SetStatus stores the "status" session option as Status (tmux 3.2a or later). Read it with [SessionOptionValues.Status] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusBG` (method) — SetStatusBG stores the "status-bg" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusBG] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusFG` (method) — SetStatusFG stores the "status-fg" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusFG] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusInterval` (method) — SetStatusInterval stores the "status-interval" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.StatusInterval] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusJustify` (method) — SetStatusJustify stores the "status-justify" session option as StatusJustify (tmux 3.2a or later). Read it with [SessionOptionValues.StatusJustify] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusKeys` (method) — SetStatusKeys stores the "status-keys" session option as StatusKeys (tmux 3.2a or later). Read it with [SessionOptionValues.StatusKeys] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusLeft` (method) — SetStatusLeft stores the "status-left" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeft] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusLeftLength` (method) — SetStatusLeftLength stores the "status-left-length" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeftLength] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusLeftStyle` (method) — SetStatusLeftStyle stores the "status-left-style" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeftStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusPosition` (method) — SetStatusPosition stores the "status-position" session option as StatusPosition (tmux 3.2a or later). Read it with [SessionOptionValues.StatusPosition] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusRight` (method) — SetStatusRight stores the "status-right" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRight] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusRightLength` (method) — SetStatusRightLength stores the "status-right-length" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRightLength] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusRightStyle` (method) — SetStatusRightStyle stores the "status-right-style" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRightStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusStyle` (method) — SetStatusStyle stores the "status-style" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetVisualActivity` (method) — SetVisualActivity stores the "visual-activity" session option as VisualActivity (tmux 3.2a or later). Read it with [SessionOptionValues.VisualActivity] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetVisualBell` (method) — SetVisualBell stores the "visual-bell" session option as VisualBell (tmux 3.2a or later). Read it with [SessionOptionValues.VisualBell] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetVisualSilence` (method) — SetVisualSilence stores the "visual-silence" session option as VisualSilence (tmux 3.2a or later). Read it with [SessionOptionValues.VisualSilence] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetWordSeparators` (method) — SetWordSeparators stores the "word-separators" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.WordSeparators] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default.
- `SetStatusFormat` (method) — SetStatusFormat replaces the complete "status-format" session option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [SessionOptionValues.StatusFormat] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option.
- `SetUpdateEnvironment` (method) — SetUpdateEnvironment replaces the complete "update-environment" session option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [SessionOptionValues.UpdateEnvironment] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option.
- `SetOption` (method) — SetOption stores a session option at this stable session target without refreshing existing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation.
- `AppendOption` (method) — AppendOption appends to a session option at this stable session target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the append was not accepted.
- `UnsetOption` (method) — UnsetOption unsets a session option at this stable session target without refreshing models. UnsetPanes is invalid at this scope; cancellation does not prove the unset was not accepted.
- `Options` (method) — Options returns a freshly decoded, caller-owned view of known options at this stable session target, including inherited values. A read failure is returned rather than answered with zero values; context errors propagate. Each returned accessor names the setter that writes it, so [SessionOptionValues.Mouse] pairs with [Session.SetMouse].
- `RawOption` (method) — RawOption returns one exact session option value at this stable session target. A successful string is caller-owned; ok reports presence, and a completed failure is returned rather than normalized. An unindexed empty array is indistinguishable from an empty scalar; use Options for typed array presence.
- `Ref` (method) — Ref returns a [Ref] addressing the receiver.
- `ActiveWindow` (method) — ActiveWindow returns this session's sole active winlink from the materialized snapshot. It never queries tmux; use [Session.ResolveActiveWindow] for live state.
- `ActivePane` (method) — ActivePane returns the active pane in this session's materialized active window. It never queries tmux; use [Session.ResolveActivePane] for live state.
- `ResolveActiveWindow` (method) — ResolveActiveWindow snapshots live tmux state and returns this session's sole exact active winlink. It returns [SnapshotLookupError] cardinality errors.
- `ResolveActivePane` (method) — ResolveActivePane snapshots live tmux state and returns the active pane in this session's exact active window. A missing active pane returns ok false.
- `Cmd` (method) — Cmd executes a tmux subcommand targeted to the session's stable ID.
- `SearchWindows` (method) — SearchWindows returns this session's winlinks selected by tmux's live -f expression. A nil filter omits -f and a nonnil empty filter sends an explicit expression. The session's stable identity limits the projection.
- `SearchPanes` (method) — SearchPanes returns this session's pane views selected by tmux's live -f expression. A nil filter omits -f and a nonnil empty filter sends an explicit expression. The session's stable identity limits the projection.
- `Attach` (method) — Attach attaches the caller's terminal to this session's stable identifier and blocks until detach or context cancellation. It validates the receiver's stable SessionID, retains but never closes caller-supplied streams, and returns [CommandError] for a completed nonzero exit. Cancellation does not prove attachment or detachment did not occur.
- `Lock` (method) — Lock locks every client attached to the session identified by this handle's stable ID. Cancellation does not prove that tmux did not lock a client.
- `DetachClients` (method) — DetachClients detaches every client attached to the session identified by this handle's stable ID. A nonnil ShellCommand is run after detaching.
- `SwitchClient` (method) — SwitchClient switches tmux's current client to the session identified by this handle's stable ID.
- `Rename` (method) — Rename changes the receiver session's name and returns a canonical freshly materialized [Session]. If the command succeeds but refresh fails, it returns the receiver with that error. A transport or context error can be delivery-ambiguous; no rollback is attempted. Invalid names are rejected before execution and match [ErrInvalidRequest].
- `LastWindow` (method) — LastWindow makes the receiver session's previously selected winlink current and returns that freshly materialized session-specific [Window]. The selection is session-scoped; it does not promise focus for clients attached to other sessions. A transport or context error can be delivery-ambiguous and no rollback is attempted. Command or refresh failure returns a zero Window because this navigation operation cannot identify the selected view reliably without refresh.
- `NextWindow` (method) — NextWindow makes the next winlink current in the receiver session and returns that freshly materialized session-specific [Window]. The selection is session-scoped; it does not promise focus for clients attached to other sessions. A transport or context error can be delivery-ambiguous and no rollback is attempted. Command or refresh failure returns a zero Window.
- `PreviousWindow` (method) — PreviousWindow makes the previous winlink current in the receiver session and returns that freshly materialized session-specific [Window]. The selection is session-scoped; it does not promise focus for clients attached to other sessions. A transport or context error can be delivery-ambiguous and no rollback is attempted. Command or refresh failure returns a zero Window.
- `SelectWindow` (method) — SelectWindow makes one winlink current in the receiver session and returns that freshly materialized session-specific [Window]. WindowID is combined with the receiver SessionID, because a WindowID alone does not distinguish linked views. The selection is session-scoped; it does not promise focus for clients attached to other sessions.
- `NewWindow` (method) — NewWindow creates a winlink in the receiver session. Attach selects it as that session's current window; it is not a guarantee about clients attached to other sessions. The returned [Window] is freshly materialized in the receiver's exact session context, including when its stable [WindowID] is linked elsewhere.
