Tencent / Tencent/BrowserSkill
Feature request: option to open the Agent Window as tabs inside the current window (Arc-friendly) | 支持在当前窗口内以标签页方式打开 Agent Window
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 5.7k
- Forks
- 399
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 74
Description
Summary
Every bsk session start creates a brand-new browser window via chrome.windows.create({type: "normal", ...}). There is no CLI flag, environment variable, or extension setting that lets the Agent Window open as a tab (or tab group) inside an existing user window instead.
This is especially awkward in Arc: Arc organizes tabs into Spaces, so the extra window shows up as a detached "orphan" window that belongs to no Space, and every session pops another one. --no-focus only hides the new window behind the current one, and #242 reports that clicks may not be delivered while it is in the background.
Request
Add an opt-in mode where the session's tabs live inside the current (last-focused) user window rather than a separate window. Possible shapes:
bsk session start --in-window/--tab-mode(per-session), and/or- a default in the extension popup ("Open Agent Window as tabs in current window").
When enabled, the extension would chrome.tabs.create in the active window (optionally grouped with chrome.tabs.group and a distinctive color/title so the agent's tabs stay visually separated), and treat that tab set as the session scope.
Why this is compatible with the current sandbox model
The existing safety boundary is "session-owned tabs vs. user tabs", enforced by tab ids. The window is just the container. A tab-group-based container can keep the same guarantees:
- Only tabs created by (or borrowed into) the session are writable; other tabs in the same window stay protected.
bsk session stopcloses the session's tabs / group instead of the window.- The current "session removed: user closed Agent Window" lifecycle can map to "user closed the last session tab / ungrouped the group".
--width/--heightwould simply not apply in this mode.
Environment
- bsk CLI 0.2.1, extension 0.2.1
- Arc (Chromium 153) on macOS 26.6
bsk browsersreports the instance aschrome 153.0.0.0
What I checked
bsk session start --help: only--browser,--width/--height,--no-focus.- Extension
background.jscallschrome.windows.create({type:\normal`, focused: ..., url: ...})` unconditionally; no storage key controls this. - No existing issue covers opening the session inside an existing window (#26 / #242 are about focus, #44 / #57 about tabs falling into or lost from the Agent Window).
中文摘要: 目前每次 bsk session start 都会用 chrome.windows.create 新开一个独立窗口,没有任何参数或扩展设置可以改成"在当前窗口里以标签页/标签组的方式打开"。在 Arc 里尤其别扭:Arc 用 Space 组织标签页,新窗口会变成不属于任何 Space 的游离窗口。希望增加一个可选模式(例如 --in-window 或扩展里的默认开关),让会话的标签页落在当前用户窗口内,用标签组做视觉隔离;权限边界仍按"会话拥有的 tab id"划分,与现有沙箱模型不冲突。
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing bsk session start and the extension's background.js, especially the unconditional chrome.windows.create call. Review how session-owned tab IDs and stop/removal lifecycle are tracked, then define the opt-in CLI or extension setting and verify that tabs can be scoped, closed, and protected without affecting user tabs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100