openclaw - 💡(How to fix) Fix [Feature]: Sessions view in the Control UI / TUI — tabbed/list overview with peek + inline reply

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Add a first-class UI for managing concurrent sessions on both OpenClaw surfaces — Web Control UI and TUI — a tab/list overview that shows every session at a glance, lets users peek at the latest turn without attaching, and replies inline when a session is waiting for user input.

This is inspired by Claude Code’s Agent View (2026-05-11), generalized from a single CLI to OpenClaw’s multi-surface, multi-channel setup.

Root Cause

Add a first-class UI for managing concurrent sessions on both OpenClaw surfaces — Web Control UI and TUI — a tab/list overview that shows every session at a glance, lets users peek at the latest turn without attaching, and replies inline when a session is waiting for user input.

This is inspired by Claude Code’s Agent View (2026-05-11), generalized from a single CLI to OpenClaw’s multi-surface, multi-channel setup.

RAW_BUFFERClick to expand / collapse

Summary

Add a first-class UI for managing concurrent sessions on both OpenClaw surfaces — Web Control UI and TUI — a tab/list overview that shows every session at a glance, lets users peek at the latest turn without attaching, and replies inline when a session is waiting for user input.

This is inspired by Claude Code’s Agent View (2026-05-11), generalized from a single CLI to OpenClaw’s multi-surface, multi-channel setup.

Problem to solve

OpenClaw already supports many concurrent sessions per user (main session, group-bound sessions, subagents, cron-spawned sessions). In practice a single user can easily have 8–15 active sessions across multiple channels at any time.

Today the Control UI lists these sessions, but the framing is closer to an ops dashboard than an agent workspace. The TUI shows the active session but has no comparable session-overview either. Across both surfaces:

  • It’s hard to tell which sessions are waiting on user input vs still working vs done at a glance.
  • Switching between sessions costs several clicks — there’s no quick peek.
  • When a session is waiting on a decision, the user has to attach to it just to type a one-line reply.

A focused sessions view would make day-to-day multi-session usage dramatically smoother.

Proposed solution

1. Sessions overview (tab/list)

A sessions-overview surface, available on both Web Control UI and TUI, lists every session for the current user/agent. One row per session:

  • Title (derived or user-set)
  • Status badge: waiting / working / done
  • Last interaction timestamp
  • Last assistant snippet (short preview, e.g. first 120 chars)
  • Channel/origin icon (DM, group, cron, heartbeat, subagent, …)

Sort default: waiting → working → done, then by recency.

A tabbed presentation (a tab strip with one tab per pinned session, plus an “All sessions” tab) would also work well — the key need is fast switching without losing track of which sessions exist. Tabs map naturally to the Web UI; in the TUI the same model can be expressed as a top-bar tab strip or as keyboard-driven tab cycling (e.g. Ctrl+→/←).

2. Peek panel

Clicking (Web UI) or selecting (TUI) a row opens a side/bottom panel showing:

  • The last few turns of that session
  • The currently pending prompt (if any)
  • A status line: “waiting for user since hh:mm”, “tool call in flight”, etc.

Peek must not attach — multiple sessions can be peeked in sequence cheaply.

3. Inline reply

When the peeked session is in waiting state, the panel exposes a reply textbox. Submitting it routes the reply through the session’s native input path (so a reply to a group-bound session lands in the group, a reply to a DM-bound session lands in the DM, etc.).

4. Status semantics

Three explicit states surfaced consistently across the UI:

  • working — a turn is currently in flight (model or tool calls pending)
  • waiting — the last turn stopped and the session is awaiting user input
  • done — task delivered (cron returned, sessions_yield, subagent finished, etc.)

The current running / idle distinction in the UI doesn’t cleanly separate “the agent is busy” from “the agent is waiting on me”, which is the most common thing users want to know.

5. Background / promote

Lightweight equivalents of CC’s /bg and --bg:

  • A “background” action on any open session that sends it to the overview and keeps it running.
  • A “start new background session” action from the overview that opens a draft task without attaching.

Alternatives considered

No response

Impact

Impact to all users

Evidence/examples

No response

Additional information

What this is not

  • Not a new agent runtime or scheduler. OpenClaw already has heartbeat / cron / sessions_spawn; this is purely a UI for what’s already running.
  • Not tied to a single surface. The same model should apply to both Web Control UI and TUI, with surface-appropriate input mechanics (mouse + keyboard on Web, keyboard + minimal mouse on TUI).
  • Not a multi-agent coordination view. Single-agent multi-session is enough for the common case.

Open questions for maintainers

  1. Is anything similar already on the roadmap or in flight? Pointers to existing issues/PRs welcome.
  2. Is a tab strip preferable to a single overview list, or some combination? CC went with a single list; tabs may be more familiar for web users and map cleanly to TUI keyboard cycling.
  3. Where should this live in the Control UI / TUI navigation — replace the current session list, sit next to it, or open via a shortcut/route?
  4. Should the Web UI and TUI share the same backing data/abstraction (e.g. a single sessions-overview API the gateway exposes), so both surfaces stay in sync automatically?

Happy to follow up with a more detailed design doc or contribute to a PR if the direction lands.

References

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING