Session controls and message filters
Every session has its own controls, gathered in the **⋯** menu in its header. The **Filter Messages** row narrows that session's view to **All**, **Agent**, **You** or **Events**, with **Agent messages** (agent-to-agent traffic) and **Trajectory** offered as separate views rather than segments. The same menu carries **Aside Mode**, **Copy link**, **Attach to task**, a per-session **MCP servers** picker and a read-only **Resources** popover — and none of them change any other session.
What it is
Omniscio shows many sessions at once, but plenty of controls only make sense for one of them. Session controls and message filters is the family that lives on a single session: how much of its conversation you want to see, how you want to link to it or file it, which tool servers it may use, and what it is costing your machine right now.
The centre of the family is the message filter. A busy session is a wall of text — your prompts, the agent's replies, tool output, status rows, and the plumbing behind them. Rather than scroll it all, you pick a lane: the whole transcript, only the agent's replies, only your own messages, only the session's lifecycle events, or only what other agents sent. Switching lanes is a view change; nothing is deleted, and nothing leaves the session.
Around the filter sit the rest of the per-session controls: an aside mode for side questions, a copy-link action, a way to attach the session to a task on the board, a picker for the MCP tool servers this session may use, and a small resources popover that shows the processor and memory the session is using.
Where to find it
Open any session and click the ⋯ (more) button at the top-right of its header. The menu opens with a filter box at the top and its entries grouped by label. Filter Messages is the segmented row of All · Agent · You · Events; the other members of this family are individual rows in the same menu — Agent messages, Aside Mode, Copy link, Attach to task…, MCP servers, Resources, and the Customize session bar… entry at the bottom.
A few of these controls can also be promoted straight onto the session header as one-tap buttons — that is the separate session-bar pinning feature, covered further down under Related.
How it behaves
The Filter Messages row
Four segments, left to right:
- All — the ordinary transcript: your messages, the agent's replies, tool output and system rows, in order. This is the default.
- Agent — only the agent's own replies, without your prompts or the machinery between them. Useful for skimming what an agent actually said.
- You — only the messages you sent into this session. Handy for finding what you asked for an hour ago without the agent's answer in the way.
- Events — the session's lifecycle events, rendered on their own: token refreshes, account switches, pauses, compactions, crash recoveries and similar. This lane is a different view rather than a filtered transcript, and it is the same material as the Session Event Log.
Switching between All, Agent and You is instant and stays in the conversation layout. Events reloads the session's full history once on entry, because a sparse event list filtered out of a partly-loaded tail could otherwise show "nothing here" over a session that has plenty — the same treatment the other sparse views get.
Agent messages, and the trajectory
Agent messages is not a segment in the Filter Messages row. Messages agents sent each other — in both directions — get their own menu row, because stacking it next to Agent as a fifth segment made the two labels impossible to tell apart in a narrow control. Clicking it toggles that view on and off.
Trajectory is likewise its own row, not a segment: it shows every tool call the agent made, with the tool's full input, its result and its timing. It is an in-development view, so most builds will not show the row at all.
What the filter remembers
The filter is a setting for your session viewing, not a property of the session: it follows you as you switch sessions, so if you were reading Agent in one session you land in Agent in the next. It is not written into a saved profile, so a fresh start of the app opens on All. On a crew session — one run by an Overseer with sub-agents — the filter row is joined by a separate view control for the crew conversation (With you, Latest, Agent traffic, Everything); picking one of the four simple segments keeps that view where it is.
Where the view lands when you switch lanes
The transcript, the raw slices and Agent traffic keep following the live bottom of the session — new output scrolls in as it arrives. You and Latest do not: they show only replies addressed to the person, so there is nothing live to follow and the view lands on the newest reply instead. A lane that shows a sparse slice of history (Events, Trajectory, Agent messages, You, Latest) also pulls the whole session history once when you enter it, so the lane never shows an empty state over rows that exist further back.
Aside Mode
Aside Mode collapses the session into a narrow panel so you can keep an eye on it beside another session. The menu row toggles it; when it is on, the row shows a check mark and the tooltip switches to offering the way back to the main chat. Asides themselves — the side questions you can ask without polluting the main thread — are their own feature, covered under Related.
Copy link
Copy link puts an in-app deep link to this session on the clipboard. Clicked anywhere inside Omniscio — including from a note in the vault or a link in chat — it opens the app and jumps to that session; pasted into an email or a chat app, the operating system hands it to Omniscio, which opens on it. It is an in-app link: for a link anyone can open in a browser, use the session's share action instead. Copying several sessions at once from the sidebar's right-click menu writes one link per line in a single clipboard write, so a multi-selection is not lost to last-write-wins.
Attach to task
Attach to task… links this session to a task on a task board, so the work is traceable back to the session that did it. The picker opens with its project filter defaulted to the session's own project, and to All projects when the session has no real project behind it.
MCP servers
MCP servers opens a per-session override list: tick or untick the tool servers this session may use, independently of what the rest of the app uses. The change is not applied to a running session — MCP servers are loaded when the command-line agent starts, so the new set takes effect the next time this session spawns. Until then the session keeps talking to the servers it launched with.
Resources
Resources opens a read-only popover for this session alone. It sums the processor and memory used by the session's command-line process and its children, and lists them; each row is labelled with what it is — the CLI session itself, an MCP server, an Aside agent, or another child process — with a sparkline for its recent usage. If the resources sampler is not running, the popover says so rather than showing zeroes. Nothing here can be stopped from this popover: the kill controls live in Settings → Maintenance → Resources, where the safeguards against ending the wrong process are.
Customize session bar
The last row, Customize session bar…, jumps straight to the checklist in Settings → Sessions → "Session bar", where you promote the everyday session actions out of this menu and onto the header as one-tap icon buttons. It is the same family of controls, with its own page under Related.
For agents
Under the hood (for agents with repo access)
- The message filter is a lane.
MessageFilteris the union insrc/renderer/src/features/sessions/session-composer-constants.ts—all · agent · operator · peer · events · trajectory · withYou · agentTraffic · latest— and the pure predicates beside it define each lane's behaviour:laneFollowsLiveOutput(false only forwithYouandlatest),filterNeedsFullHistory(the index-shaped lanes:events,trajectory,peer,withYou,latest),rendersAsConversation(all,withYou,latest) andlaneOffersEarlierReplies. - The menu.
src/renderer/src/features/sessions/SessionOverflowMenu.tsxowns theFilter Messagesrow (FILTER_OPTIONS= the four shipped segments,SegmentedControl) and the separatepeer/trajectory/aside-mode/resources/mcp-servers/attach-to-task/customize-menurows. Thetrajectoryrow is gated by the in-developmentsession-trajectoryflag throughisUnreleasedFeatureVisibleInRenderer, never the raw setting key. - Filter state.
useSessionPanel.tsholdsmessageFilterasuseState<MessageFilter>('all')withexplicitMessageFilterRefmarking a deliberate choice, so the crew auto-switch never overrides you;followsLiveOutputis computed fromlaneFollowsLiveOutput(messageFilter). It is panel state, not anAppSettingsfield — which is why it follows a session swap but does not survive a restart. - The Events lane renders
SessionEventLog(src/renderer/src/features/sessions/SessionPanel.tsx); that view and its contract are thesession-event-logpage's subject. - Copy link goes through the shared chokepoint
src/renderer/src/lib/copy-session-link.ts(copySessionLink/copySessionLinks), which builds the canonicalomniscio://session/<id>URL and uses the resilient clipboard helper — the session right-click menu and the ⋯ menu both call it, so they cannot diverge. The session-barcopyLinkcommand calls the same function. - Attach to task is a store, not a modal owned by the menu:
src/renderer/src/features/tasks-v2/attach-session-to-task-store.ts(openAttachSessionToTaskPicker), mounted once globally. - MCP servers is
src/renderer/src/features/mcp-servers/SessionMcpDialog.tsx; it writesSESSION_SET_MCP_OVERRIDEon the session'smcpOverrides, applied at the next spawn. - Resources is
src/renderer/src/features/sessions/SessionResourcesPopover.tsx, backed byuseResourcesSubscriptionand scoped to the session's CLI pid plus its children; it exposes no destructive action, and the subscription is gated on the popover being open so a closed popover costs nothing. - Pinning any of these to the header is
session-bar-commands.tsx+ thepinnedSessionCommandIdssetting (see thesession-bar-commandspage).
Related
- session-bar-commands.md — pin Snooze, Pause, Send Later, Copy link, Aside Mode and Archive out of this menu and onto the session header.
- asides.md — the side questions Aside Mode is the panel for: what one costs, and why an agent can never send one.
- session-event-log.md — the Events lane's own page: what the lifecycle view shows for a single session.
- show-system-messages-toggle.md — the companion toggle that reveals the hidden plumbing rows inside the normal transcript, rather than replacing it.
- mcp-servers.md — the app-wide MCP server list this per-session picker overrides.
Last verified 2026-10-06