mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-21 20:28:24 +08:00
feat: /connect-chrome skill — one command to launch Chrome with Side Panel
New skill that runs $B connect, verifies the connection, guides the user to open the Side Panel, and demos the live activity feed. Extension auto-loads via --load-extension so no manual chrome://extensions install needed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
122
connect-chrome/SKILL.md.tmpl
Normal file
122
connect-chrome/SKILL.md.tmpl
Normal file
@@ -0,0 +1,122 @@
|
||||
---
|
||||
name: connect-chrome
|
||||
version: 0.1.0
|
||||
description: |
|
||||
Launch real Chrome controlled by gstack with the Side Panel extension auto-loaded.
|
||||
One command: connects Claude to a visible Chrome window where you can watch every
|
||||
action in real time. The extension shows a live activity feed in the Side Panel.
|
||||
Use when asked to "connect chrome", "open chrome", "real browser", "launch chrome",
|
||||
"side panel", or "control my browser".
|
||||
allowed-tools:
|
||||
- Bash
|
||||
- Read
|
||||
- AskUserQuestion
|
||||
|
||||
---
|
||||
|
||||
{{PREAMBLE}}
|
||||
|
||||
# /connect-chrome — Launch Real Chrome with Side Panel
|
||||
|
||||
Connect Claude to a visible Chrome window with the gstack extension auto-loaded.
|
||||
You see every click, every navigation, every action in real time.
|
||||
|
||||
{{BROWSE_SETUP}}
|
||||
|
||||
## Step 1: Connect
|
||||
|
||||
```bash
|
||||
$B connect
|
||||
```
|
||||
|
||||
This launches your system Chrome via Playwright with:
|
||||
- A visible window (headed mode, not headless)
|
||||
- The gstack Chrome extension pre-loaded
|
||||
- A green shimmer line + "gstack" pill so you know which window is controlled
|
||||
|
||||
If Chrome is already running, the server restarts in headed mode with a fresh
|
||||
Chrome instance. Your regular Chrome stays untouched.
|
||||
|
||||
After connecting, print the output to the user.
|
||||
|
||||
## Step 2: Verify
|
||||
|
||||
```bash
|
||||
$B status
|
||||
```
|
||||
|
||||
Confirm the output shows `Mode: cdp`. Print the port number — the user may need
|
||||
it for the Side Panel.
|
||||
|
||||
## Step 3: Guide the user to the Side Panel
|
||||
|
||||
Use AskUserQuestion:
|
||||
|
||||
> Chrome is launched with gstack control. You should see a green shimmer line at the
|
||||
> top of the Chrome window and a small "gstack" pill in the bottom-right corner.
|
||||
>
|
||||
> The Side Panel extension is pre-loaded. To open it:
|
||||
> 1. Look for the **puzzle piece icon** (Extensions) in Chrome's toolbar
|
||||
> 2. Click it → find **gstack browse** → click the **pin icon** to pin it
|
||||
> 3. Click the **gstack icon** in the toolbar
|
||||
> 4. Click **Open Side Panel**
|
||||
>
|
||||
> The Side Panel shows a live feed of every browse command in real time.
|
||||
>
|
||||
> **Port:** The browse server is on port {PORT} — the extension auto-detects it
|
||||
> if you're using the Playwright-controlled Chrome. If the badge stays gray, click
|
||||
> the gstack icon and enter port {PORT} manually.
|
||||
|
||||
Options:
|
||||
- A) I can see the Side Panel — let's go!
|
||||
- B) I can see Chrome but can't find the extension
|
||||
- C) Something went wrong
|
||||
|
||||
If B: Tell the user:
|
||||
> The extension should be auto-loaded, but Chrome sometimes doesn't show it
|
||||
> immediately. Try:
|
||||
> 1. Type `chrome://extensions` in the address bar
|
||||
> 2. Look for "gstack browse" — it should be listed and enabled
|
||||
> 3. If not listed, click "Load unpacked" → navigate to the extension folder
|
||||
> (press Cmd+Shift+G in the file picker, paste this path):
|
||||
> `{EXTENSION_PATH}`
|
||||
>
|
||||
> Then pin it from the puzzle piece icon and open the Side Panel.
|
||||
|
||||
If C: Run `$B status` and show the output. Check if the server is healthy.
|
||||
|
||||
## Step 4: Demo
|
||||
|
||||
After the user confirms the Side Panel is working, run a quick demo so they
|
||||
can see the activity feed in action:
|
||||
|
||||
```bash
|
||||
$B goto https://news.ycombinator.com
|
||||
```
|
||||
|
||||
Wait 2 seconds, then:
|
||||
|
||||
```bash
|
||||
$B snapshot -i
|
||||
```
|
||||
|
||||
Tell the user: "Check the Side Panel — you should see the `goto` and `snapshot`
|
||||
commands appear in the activity feed. Every command Claude runs will show up here
|
||||
in real time."
|
||||
|
||||
## Step 5: What's next
|
||||
|
||||
Tell the user:
|
||||
|
||||
> You're all set! Chrome is under Claude's control with the Side Panel showing
|
||||
> live activity. Here's what you can do:
|
||||
>
|
||||
> - **Run any browse command** — `$B goto`, `$B click`, `$B snapshot` — and
|
||||
> watch it happen in Chrome + the Side Panel
|
||||
> - **Use /qa or /design-review** — they'll run in the visible Chrome window
|
||||
> instead of headless. No cookie import needed.
|
||||
> - **`$B focus`** — bring Chrome to the foreground anytime
|
||||
> - **`$B disconnect`** — return to headless mode when done
|
||||
|
||||
Then proceed with whatever the user asked to do. If they didn't specify a task,
|
||||
ask what they'd like to test or browse.
|
||||
Reference in New Issue
Block a user