From rkstack
Launch real Chrome controlled by rkstack 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".
npx claudepluginhub mrkhachaturov/ccode-personal-plugins --plugin rkstackThis skill is limited to using the following tools:
<!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Writes implementation plans from specs for multi-step tasks, mapping files and breaking into TDD bite-sized steps before coding.
# === RKstack Preamble (connect-chrome) ===
# Read detection cache (written by session-start via rkstack detect)
if [ -f .rkstack/settings.json ]; then
cat .rkstack/settings.json
else
echo "WARNING: .rkstack/settings.json not found — detection cache missing"
fi
# Session-volatile checks (can change mid-session)
_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
_HAS_CLAUDE_MD=$([ -f CLAUDE.md ] && echo "yes" || echo "no")
echo "BRANCH: $_BRANCH"
echo "CLAUDE_MD: $_HAS_CLAUDE_MD"
Use the detection cache and preamble output to adapt your behavior:
detection.flowType (web or default). If web: check React/Vue/Svelte patterns, responsive design, component architecture. If default: CLI tools, MCP servers, backend scripts.just commands instead of raw shell.detection.stack for what's in the project and detection.stats for scale (files, code, complexity).detection.repoMode for solo vs collaborative.detection.services for Supabase and other service integrations.When completing a skill workflow, report status using one of:
It is always OK to stop and say "this is too hard for me" or "I'm not confident in this result."
Bad work is worse than no work. You will not be penalized for escalating.
Escalation format:
STATUS: BLOCKED | NEEDS_CONTEXT
REASON: [1-2 sentences]
ATTEMPTED: [what you tried]
RECOMMENDATION: [what the user should do next]
Connect Claude to a visible Chrome window with the rkstack extension auto-loaded. You see every click, every navigation, every action in real time.
Before connecting, kill any stale browse servers and clean up lock files that may have persisted from a crash. This prevents "already connected" false positives and Chromium profile lock conflicts.
# Kill any existing browse server
if [ -f "$(git rev-parse --show-toplevel 2>/dev/null)/.rkstack/browse.json" ]; then
_OLD_PID=$(cat "$(git rev-parse --show-toplevel)/.rkstack/browse.json" 2>/dev/null | grep -o '"pid":[0-9]*' | grep -o '[0-9]*')
[ -n "$_OLD_PID" ] && kill "$_OLD_PID" 2>/dev/null || true
sleep 1
[ -n "$_OLD_PID" ] && kill -9 "$_OLD_PID" 2>/dev/null || true
rm -f "$(git rev-parse --show-toplevel)/.rkstack/browse.json"
fi
# Clean Chromium profile locks (can persist after crashes)
_PROFILE_DIR="$HOME/.rkstack/chromium-profile"
for _LF in SingletonLock SingletonSocket SingletonCookie; do
rm -f "$_PROFILE_DIR/$_LF" 2>/dev/null || true
done
echo "Pre-flight cleanup done"
$RKSTACK_BROWSE connect
This launches Playwright's bundled Chromium in headed mode with:
launchPersistentContextThe connect command auto-discovers the extension from the rkstack install
directory. It always uses port 34567 so the extension can auto-connect.
After connecting, print the full output to the user. Confirm you see
Mode: headed in the output.
If the output shows an error or the mode is not headed, run $RKSTACK_BROWSE status and
share the output with the user before proceeding.
$RKSTACK_BROWSE status
Confirm the output shows Mode: headed. The port should be 34567.
Use AskUserQuestion:
Chrome is launched with rkstack control. You should see Playwright's Chromium (not your regular Chrome) with a golden shimmer line at the top of the page.
The Side Panel extension should be auto-loaded. To open it:
- Look for the puzzle piece icon (Extensions) in the toolbar
- Click the puzzle piece → find rkstack browse → click the pin icon
- Click the pinned rkstack icon in the toolbar
- The Side Panel should open on the right showing a live activity feed
Port: 34567 (auto-detected — the extension connects automatically).
Options:
If B: Guide the user to check chrome://extensions and load unpacked if needed.
If C: Run $RKSTACK_BROWSE status, re-run cleanup + connect if needed, try $RKSTACK_BROWSE focus.
After the user confirms the Side Panel is working:
$RKSTACK_BROWSE goto https://news.ycombinator.com
Wait 2 seconds, then:
$RKSTACK_BROWSE snapshot -i
Tell the user to check the Side Panel activity feed.
Tell the user about the chat tab — they can type natural language commands and a sidebar agent executes them in the browser.
Tell the user:
You're all set! Here's what you can do:
Watch Claude work: Run any browse-dependent skill (
/qa,/design-review,/benchmark) and watch every action in the visible Chrome + Side Panel feed.Control directly: Sidebar chat, or
$RKSTACK_BROWSEcommands.Window management:
$RKSTACK_BROWSE focus(bring to front),$RKSTACK_BROWSE disconnect(return to headless).