Session settings
Configure session behavior, permissions, transcript presentation, and tool rendering from the app.
The Session settings screen controls how Happier sessions behave in the app.
Recent versions split the advanced controls into focused sub-screens so the root page stays easier to scan:
- Permissions
- Session handoff
- Transcript
- Tool Rendering
The root session settings screen keeps the most common session-wide controls in one place and links to the more detailed sections when needed.
Where to find it
Open:
- Settings
- Session
From there, use the dedicated entries to open:
- Permissions
- Session handoff
- Transcript
- Tool Rendering
What stays on the main Session screen
The root Session screen keeps the controls that affect how you work day to day:
- Session list behavior such as density, grouping, hidden inactive sessions, and tags
- Message sending behavior such as interrupt vs queue/pending strategies
- Web-only input behavior such as Enter to send
- Message history scope as a dropdown
- Input layout preferences
- Replay / resume defaults
- Session handoff defaults
- Terminal connect options
- Attach / local-control launch defaults such as tmux and Windows remote session mode
This keeps the root screen focused on common workflow choices instead of mixing them with large advanced settings groups.
Session handoff settings
The dedicated Session handoff screen controls the defaults used when you move a session between machines.
It includes:
- Transfer workspace
- Workspace conflict policy
- Ignored files
- Direct session target mode
Workspace transfer defaults
By default, Happier keeps workspace transfer off.
You can change the default behavior to:
- transfer the workspace by default
- keep the target workspace unchanged by default
The handoff modal still lets you override this per handoff.
Conflict policy
The default conflict policy can be:
- Create sibling copy
- Replace existing path
This controls what should happen if the destination path already exists.
Ignored files
The default ignored-file mode can be:
- Exclude ignored files
- Include selected ignored files
If you choose Include selected ignored files, you can set comma-separated include globs such as:
dist/**.env.local
Direct session target mode
This applies only when the source session is currently Direct.
You can choose:
- Keep direct
- Convert to synced
That setting becomes the default choice in the handoff modal, but you can still override it case by case.
For the full workflow, see Session handoff.
Attach and local-control settings
The root Session screen also contains the defaults that control how app-started sessions can later be continued from a terminal.
tmux integration
Enable tmux integration when you want supported sessions to start inside tmux.
Use this on machines where:
tmuxis installed,- you want to start from the app first, then later run
happier attach <session-id>from a shell, - you want providers such as Claude or Codex to reopen inside the same tmux-backed local host.
Windows remote session mode
For Windows machines, the Session screen also exposes a default Windows remote session mode.
The available modes are:
- Hidden — keep the session in the background for remote app usage
- Windows Terminal — start the session in a dedicated Windows Terminal host so you can later continue there locally
- Console — start the session in a visible console host
This is the global default. You can still override it:
- per machine from the machine details screen
- per session from the new-session flow when the selected machine is Windows
Precedence is:
- per-session choice
- machine override
- global Session setting
For the full workflow, see Attach to a running session.
Permissions screen
The dedicated Permissions screen separates two different concerns:
1. Default permissions
This section shows one row per enabled backend choice and lets you choose the default permission mode for new sessions.
Important details:
- the list is dynamic
- it comes from the resolved backend catalog
- built-in backends and configured Custom ACP backends can both appear here
- if a backend choice is not enabled for your account/build/settings, it should not appear
2. Apply permission changes
This is now a separate dropdown group.
It controls when a permission change should take effect for a running session:
- Immediate
- Next prompt
Use Immediate when you want the running session to react right away. Use Next prompt when you want the change to arm for the next turn instead of changing the current one mid-flight.
The same screen can also show related permission/session-default controls such as where prompts appear and transcript-storage defaults for backend choices when those features are available.
Full guide: Permissions
Transcript screen
The Transcript screen controls how session conversations are presented:
- transcript layout
- thinking display
- tool chrome mode
- tool grouping / collapsed preview behavior
- motion / scrolling defaults
- code and diff presentation
This is a presentation layer. It does not change provider behavior or tool permissions.
Some transcript-related defaults, such as transcript-storage defaults for new sessions, are still backend-aware. That means a built-in backend and a configured ACP backend can have different default behavior.
Tool Rendering screen
The Tool Rendering screen controls how tool calls appear in the transcript.
It contains:
- default tool-detail behavior
- per-tool overrides
- separate overrides for the expanded/full view
This is useful when you want different defaults for tools like:
BashReadEditDiffWebSearch
For example, you might keep most tools compact in the timeline but still expand Diff or Patch more aggressively when opened.
Related guide: Tool timeline & normalization
Web-only session behavior
On web, Session settings also includes input behavior that used to live elsewhere:
Enter to send
Controls whether pressing Enter sends the current message directly.
Use this when you want more chat-like behavior on desktop/web.
Message history
Message history is now a dropdown instead of an inline toggle pair.
The options let you choose whether composer history is kept:
- per session, or
- globally
This makes the current selection easier to understand at a glance.
Why this structure changed
The goal of the split is simple:
- keep the main Session page fast to scan
- move high-detail controls into dedicated screens
- make advanced settings easier to reason about
- preserve the same underlying logic instead of creating separate implementations
If you are looking for a setting and no longer see it inline on the root Session screen, it most likely moved into one of the dedicated sub-screens rather than being removed.