סקיל Use My Browser
use-my-browser הוא סקיל לקלוד קוד שמאפשר לו לעבוד מול הדפדפן החי שלכם, לא מול הורדה סטטית של עמוד. כשהמשימה תלויה במצב מרונדר אמיתי, דשבורד שאתם מחוברים אליו, אפליקציית localhost, טופס, DevTools או מבנה DOM, הסקיל מנתב את העבודה דרך הסשן הקיים במקום לנסות להוריד את הדף מבחוץ. הוא מסווג כל משימה: מה אפשר להשיג בלי דפדפן ומה דורש דפדפן חי, ונשאר על המסלול הנכון בלי לרדת בשקט לפתרון חלקי. בפרויקטי הפיתוח שאני מוביל, הרבה באגים נראים אחרת לגמרי כשרואים אותם בדפדפן האמיתי. במדריך תקבלו את שיטת הניתוב המלאה, ארבעה תרחישי שימוש, וצ'קליסט לעבודה נכונה.
פקודת התקנה
npx skills add xixu-me/skills@use-my-browser -g -y
ההתקנה מתבצעת דרך מנהל החבילות הרשמי של הסקילים בפקודה אחת. הסקיל הוא קובץ Markdown פתוח, ופועל מול הדפדפן החי שלכם דרך החיבור הקיים. אפשר להוריד ולבדוק את הקוד דרך הכפתורים שבראש העמוד.
מה הסקיל כולל?
הסקיל מתעד שיטת עבודה לסיווג וניתוב משימות דפדפן: להבדיל בין מה שאפשר להשיג בלי דפדפן לבין מה שדורש סשן חי, ולהישאר על המסלול הנכון.
קוד הסקיל המלא
---
name: use-my-browser
description: Use when work depends on the user's live browser session or visible rendered state rather than static fetches, especially for browser debugging contexts or DevTools-selected elements or requests, logged-in dashboards or CMS flows, localhost apps, forms, uploads, downloads, media inspection, DOM or iframe inspection, Shadow DOM, or browser failures that look like soft 404s, auth walls, anti-bot checks, or rate limits.
---
Do not treat this skill as a generic browsing default. Route from the evidence you need, not from tool preference.
Every task must be classified before you choose a route:
- `static-capable`: the evidence can be produced without live browser state, visible confirmation, or page interaction
- `browser-required`: the evidence depends on rendered state, interaction, live session behavior, or browser-only structures
Only `static-capable` tasks may fall back to static retrieval, `curl`, or other non-browser paths. Once a task is `browser-required`, stay on the browser path and mark missing capability as `blocked` instead of silently downgrading.
## Prerequisite check
This skill is for work inside the user's live browser session, not for launching a separate fresh automation browser.
Before doing browser automation, confirm that your environment already has access to a live browser stack that can provide the capabilities the task depends on, such as page inventory, task-owned page creation, page selection, snapshots or visible-state reads, DOM inspection, text or form input, uploads, dialogs, console inspection, and network inspection. The exact stack does not matter here: confirm capability, not brand.
If the live browser stack is unavailable, do not attempt browser automation through this skill. Only `static-capable` work may fall back to static retrieval.
Live browser automation can trigger anti-bot or anti-automation defenses on some sites. Use browser interaction only when the task truly needs it, and avoid unnecessary repetitive actions once the needed evidence has been obtained.
## Experience loop
Treat site patterns as part of the browser protocol, not as optional background reading.
For `browser-required` work, run this loop:
1. As soon as the target domain is known, check whether a matching note already exists under [`references/site-patterns/`](./references/site-patterns/).
2. If a note exists, read it before the first meaningful browser mutation on that domain.
3. During the run, watch for verified site-specific facts that would change how a future run should operate.
4. Before you consider the task complete, decide whether the run produced a reusable fact, disproved an existing fact, or produced no reusable site-specific learning.
5. If the run verified something reusable or disproved an existing claim, update the matching note before finishing.
Do not create a domain note for one-off noise. Do not skip the end-of-run review just because the task itself succeeded.
Writeback is expected when a run verifies any of the following:
- a stable route shape or required query parameter
- a login, session inheritance, or `isolatedContext` quirk
- a reliable interaction primitive such as hover, keyboard entry, upload sequencing, or a selector bridge pattern
- a domain where DOM-generated links are reliable but hand-built URLs are not
- predictable anti-automation friction or a misleading platform error state
- a reusable media extraction or iframe / Shadow DOM access pattern
## Decision guide
Start with the outcome, not the tool. Make the user's goal explicit, define what counts as done, and choose the cheapest route that can still produce the right evidence.
Use this routing order:
1. Decide whether the task is `static-capable` or `browser-required`.
2. If the task is `static-capable`, load [`references/task-routing.md`](./references/task-routing.md) and stay on the cheapest route that still satisfies the evidence target.
3. If the task is `browser-required`, load [`references/browser-playbook.md`](./references/browser-playbook.md).
4. If browser-required capability is uncertain in a fresh host session, also load [`references/browser-capability-matrix.md`](./references/browser-capability-matrix.md).
5. If the user already has an active browser debugging context, such as a selected inspector element or network request, also load [`references/debug-handoff.md`](./references/debug-handoff.md).
6. If the browser-required task touches a logged-in dashboard, admin surface, CMS, editor, or any save / publish / update flow, also load [`references/control-plane-workflows.md`](./references/control-plane-workflows.md).
7. If the current failure shape suggests a soft 404, content-unavailable state, suspicious no-op interaction, auth wall, rate limit, or anti-automation defense, also load [`references/anti-automation-friction.md`](./references/anti-automation-friction.md).
8. If the browser-required task includes iframe, Shadow DOM, collapsed content, or lazy-loaded evidence, also load [`references/deep-dom.md`](./references/deep-dom.md).
9. If the important evidence lives in an image, audio clip, or video, also load [`references/media-inspection.md`](./references/media-inspection.md).
10. If browser work can be divided across independent page owners or sub-agents, also load [`references/parallel-browser-ownership.md`](./references/parallel-browser-ownership.md).
11. If you already know a reliable selector but need an MCP-native `uid` target, also load [`references/selector-bridge.md`](./references/selector-bridge.md).
12. If page actions leave state ambiguous, a page unexpectedly navigates, an old `uid` may have gone stale, or console / network inspection is now needed to explain the next browser decision, also load [`references/browser-recovery.md`](./references/browser-recovery.md).
13. If the target site already has a matching domain note under [`references/site-patterns/`](./references/site-patterns/), read that note before operating on the site.
Treat the following as `browser-required` by default:
- `localhost`, `127.0.0.1`, or benchmark-style local fixtures
- uploads, downloads, drag-and-drop, hover, keyboard-native entry, or visible confirmation states
- same-origin iframe inspection, Shadow DOM inspection, `details` / collapsed evidence, or lazy-loaded content
- any task where "what the page visibly shows" is itself the evidence
The normal happy path for a common task is this entrypoint plus one or two references, not the entire reference set.
## Hard rules
- Use browser interaction only when live browser state is part of the evidence or required action.
- Once a task is `browser-required`, do not silently downgrade.
- Treat this file as the entrypoint and each reference file as a single-purpose authority. Do not duplicate rules across files.
- Keep reference loading one level deep. Decide the next file from this entrypoint instead of turning one reference into a hub that links to more references.
- Do not ask the user to log in just because a page looks restricted. First confirm whether the target content or action is actually blocked.
- Prefer site-generated DOM links over hand-built URLs once the page has shown you the path it expects.
- Prefer MCP-native actions over script-driven interaction when the task is genuinely an in-browser action.
- Only close pages you created.
- Prefer primary sources over aggregators or repeated secondary reporting.
- If a matching site pattern note exists, read it before the first meaningful browser mutation on that domain.
- Do not finish a `browser-required` task without explicitly checking whether the run should create, update, downgrade, or remove a site-pattern claim.
- If an existing site-pattern claim fails under comparable conditions, stop trusting it, fall back to the generic workflow, and update the note instead of retrying the stale assumption.
- Do not use `curl`, `Invoke-WebRequest`, or shell HTTP fetches for `browser-required` tasks.
- Do not treat a generic page-opening tool as evidence that localhost deep interaction is available.
- Do not switch routes just because a browser capability probe failed. Record the missing capability and stop.
- When the user indicates an active browser debugging context, prefer handoff from that current context over fresh reproduction from scratch.
## Reference index
- [`references/task-routing.md`](./references/task-routing.md): static retrieval vs live browser routing
- [`references/browser-playbook.md`](./references/browser-playbook.md): core page-action protocol and base browser loop
- [`references/browser-capability-matrix.md`](./references/browser-capability-matrix.md): capability proof for uncertain host sessions
- [`references/debug-handoff.md`](./references/debug-handoff.md): active debugging-context handoff
- [`references/control-plane-workflows.md`](./references/control-plane-workflows.md): logged-in dashboard / CMS save-publish discipline
- [`references/anti-automation-friction.md`](./references/anti-automation-friction.md): soft 404 / auth / anti-automation classification
- [`references/deep-dom.md`](./references/deep-dom.md): iframe, Shadow DOM, collapsed, or lazy-loaded evidence
- [`references/media-inspection.md`](./references/media-inspection.md): image, audio, and video evidence
- [`references/parallel-browser-ownership.md`](./references/parallel-browser-ownership.md): multi-owner browser coordination
- [`references/selector-bridge.md`](./references/selector-bridge.md): selector-to-`uid` bridging
- [`references/browser-recovery.md`](./references/browser-recovery.md): stale `uid`, navigation drift, and console / network escalation
- [`references/site-patterns/README.md`](./references/site-patterns/README.md): site-pattern note maintenance rules
- [site-patterns/{domain}.md](./references/site-patterns/): existing domain-specific operating knowledge
מה זה use-my-browser ולמה הסקיל הזה שונה?
use-my-browser פותר פער מוכר: לפעמים המידע שצריך פשוט לא קיים בהורדה סטטית של עמוד. דשבורד שמאחורי התחברות, אפליקציה שרצה ב-localhost, או באג שמופיע רק אחרי שהדף מתרנדר, כל אלה דורשים דפדפן אמיתי. ניסיון להוריד את הדף מבחוץ פשוט יחזיר תוכן חלקי או שגוי. הסקיל מבטיח שקלוד עובד מול המקור הנכון.
מה שמייחד אותו הוא הסיווג לפני הפעולה. הסקיל מחייב לקבוע לכל משימה אם היא ניתנת להשגה בלי דפדפן או דורשת סשן חי. רק משימה מהסוג הראשון רשאית ליפול חזרה להורדה סטטית. ברגע שמשימה מסומנת כדורשת דפדפן, הסקיל נשאר על המסלול הזה, ואם חסרה יכולת הוא מסמן אותה כחסומה במקום לרדת בשקט לפתרון חלקי. כל זה קורה מול הדפדפן המקומי שלכם, בלי שליחת מידע החוצה.
ההבדל מורגש באמינות התוצאה. במקום ניחוש מתוכן חלקי, קלוד רואה את מה שאתם רואים. בשילוב עם סקיל grill-with-docs שמחדד דרישות, מקבלים גם הבנה מדויקת של הצורך וגם גישה למצב האמיתי, וזה חזק במיוחד באבחון תקלות שמופיעות רק בדפדפן.
מה use-my-browser נותן לקלוד קוד?
הסקיל מוסיף לקלוד גישה למצב האמיתי של הדפדפן שלכם, כך שהוא עובד מול מה שבאמת קורה במסך ולא מול גרסה סטטית וחלקית.
סיווג וניתוב חכם
לכל משימה הסקיל קובע אם היא דורשת דפדפן חי או ניתנת להשגה סטטית, ומנתב בהתאם. כך לא מבזבזים דפדפן על מה שלא צריך, ולא מנסים להוריד מבחוץ משהו שקיים רק במצב מרונדר. הניתוב מבוסס על הראיה הדרושה, לא על העדפת כלי.
גישה למצב מרונדר אמיתי
הסקיל מאפשר לקלוד לראות את הדף כפי שהוא באמת מוצג: אחרי טעינת JavaScript, בתוך iframe, ב-Shadow DOM, או בדשבורד שאתם מחוברים אליו. כך הוא עובד מול האמת ולא מול שלד ה-HTML הראשוני.
כללי ברזל נגד פתרון חלקי
כשמשימה מסומנת כדורשת דפדפן, הסקיל אוסר לרדת בשקט להורדה סטטית. אם חסרה יכולת, הוא מסמן אותה כחסומה במפורש. כך נמנעים מתשובות שנראות תקינות אבל מבוססות על מידע חלקי, וזה שומר על אמינות.
עבודה מקומית ובטוחה
הסקיל פועל מול הדפדפן שכבר פתוח אצלכם, דרך החיבור הקיים, ולא מפעיל דפדפן אוטומציה נפרד או שולח מידע החוצה. כך הוא ניגש בבטחה גם לסביבות מחוברות ולאפליקציות מקומיות, בלי לחשוף נתונים.
ארבע היכולות הופכות את קלוד למי שעובד מול המסך האמיתי שלכם. בעבודות שלי, גישה לדפדפן החי חשפה באגים ובעיות UI שפשוט לא נראו בהורדה סטטית של הדף.
למי הסקיל הזה מתאים?
מפתחי ווב שמאבחנים תקלות: זה הקהל המובהק. באגים רבים מופיעים רק במצב מרונדר או אחרי התחברות, והסקיל נותן לקלוד גישה בדיוק לשם. במקום לנחש מ-HTML חלקי, הוא רואה את הבעיה כפי שהיא.
מי שעובד עם דשבורדים ומערכות ניהול: כשהמידע נמצא מאחורי התחברות, אין דרך להגיע אליו בהורדה רגילה. הסקיל מאפשר לקלוד לעבוד בתוך הסשן המחובר שלכם, לקרוא נתונים ולבצע זרימות, בבטחה ובמקום הנכון.
מפתחים שעובדים על localhost: אפליקציה שרצה מקומית לא נגישה מבחוץ. הסקיל ניגש אליה דרך הדפדפן החי, וכך אפשר לבדוק ולתקן ממשק שעדיין לא עלה לאוויר.
אנשי אוטומציה ו-QA: בדיקת טפסים, העלאות, הורדות ומדיה דורשת אינטראקציה אמיתית עם הדף. גם בעבודות האוטומציה שלי, גישה למצב הדפדפן האמיתי היא ההבדל בין אוטומציה אמינה לבין כזו שנשברת בשקט.
אנשי SEO וביקורת אתרים: בדיקת איך עמוד מתרנדר בפועל, כולל תוכן שנטען דינמית, חשובה לאבחון. גם בעבודות הקידום שלי, מה שגוגל רואה תלוי במצב המרונדר ולא רק ב-HTML הגולמי.
מי שפחות יתאים: משימה שאפשר להשלים מהורדה סטטית פשוטה לא צריכה דפדפן חי, והסקיל עצמו ינתב אותה הצדה. הוא מבריק דווקא כשהראיה תלויה במצב מרונדר, באינטראקציה או בסשן מחובר.
איך use-my-browser עזר לי בפרויקטים אמיתיים
באג שנראה רק אחרי רינדור
באג בממשק לא הופיע בכלל ב-HTML הגולמי, רק אחרי טעינת הסקריפטים. ניסיונות להוריד את הדף מבחוץ החזירו מצב נקי ומטעה. הסקיל ניתב לדפדפן החי, קלוד ראה את הבעיה כפי שהיא במסך, והאבחון הפך מיידי.
עבודה בתוך דשבורד מחובר
היה צורך לקרוא נתונים ממערכת ניהול שמאחורי התחברות. אין דרך להגיע לזה בהורדה רגילה. הסקיל עבד בתוך הסשן המחובר שלי, ניגש למידע הנכון, וביצע את הזרימה בלי לחשוף סיסמאות או להעביר נתונים החוצה.
בדיקת אפליקציית localhost
פיתחתי ממשק שרץ מקומית ועדיין לא עלה לאוויר. הסקיל ניגש אליו דרך הדפדפן החי, מה שאפשר לקלוד לבדוק ולתקן את העמוד בזמן אמת, עוד לפני שהיה זמין מבחוץ. זה קיצר את לולאת הפיתוח.
סימון חסימה במקום תשובה חלקית
משימה דרשה גישה ליכולת דפדפן שלא הייתה זמינה. במקום לרדת בשקט להורדה סטטית ולהחזיר תשובה חלקית, הסקיל סימן את המשימה כחסומה והסביר מה חסר. השקיפות הזאת מנעה החלטה על בסיס מידע שגוי.
ארבעת המקרים מראים שהסקיל לא רק מאפשר גישה לדפדפן, הוא שומר על אמינות: עובד מול המצב האמיתי, ומסמן בבירור כשמשהו חסר. כך התשובות מבוססות על מה שבאמת קורה במסך, ולא על גרסה חלקית של הדף.
סיכום
סקיל use-my-browser הוא כלי חשוב לכל מי שעבודתו תלויה במצב האמיתי של הדפדפן. הוא מנתב משימות דורשות-דפדפן לסשן החי שלכם, נותן גישה לדשבורדים מחוברים, ל-localhost ול-DOM מרונדר, ושומר על אמינות במקום לרדת בשקט לפתרון חלקי.
אם אתם מתחילים, בפעם הבאה שבאג מופיע רק בדפדפן או שצריך נתון מאחורי התחברות, בקשו מקלוד לעבוד עם הסקיל מול הדפדפן החי. תראו איך הוא רואה בדיוק את מה שאתם רואים. משם, האבחון מדויק הרבה יותר.
בפוסטים הבאים אמשיך לסקור סקילים שמשדרגים פיתוח ואוטומציה. האתר של דביר נעמן מרכז את כל הכלים, השיטות והליווי שאני מציע לעסקים שרוצים לעבוד חכם עם בינה מלאכותית.
שיתוף הסקיל
שאלות ותשובות
מה זה בעצם הסקיל use-my-browser?
זה סקיל לקלוד קוד שמאפשר לו לעבוד מול הדפדפן החי שלכם במקום מול הורדה סטטית של עמוד. הוא מיועד למשימות שתלויות במצב מרונדר, בהתחברות, באינטראקציה או במבני דפדפן כמו DOM ו-iframe. כך קלוד רואה את הדף כפי שהוא באמת מוצג ומקבל מידע אמין.
מתי צריך דפדפן חי ולא הורדה רגילה?
כשהמידע לא קיים ב-HTML הגולמי: דשבורד מאחורי התחברות, אפליקציית localhost, תוכן שנטען דינמית, או באג שמופיע רק אחרי רינדור. בכל אלה הורדה סטטית תחזיר תוכן חלקי או שגוי. הסקיל מסווג כל משימה ומנתב את אלה שדורשות דפדפן לסשן החי.
איך מתקינים את הסקיל בקלוד קוד?
בפקודה אחת דרך מנהל החבילות הרשמי של הסקילים, כפי שמופיע בקופסת ההתקנה למעלה. הסקיל הוא קובץ Markdown פתוח מהמאגר של xixu-me. הוא פועל מול הדפדפן שכבר פתוח אצלכם דרך החיבור הקיים, ולא מפעיל דפדפן נפרד.
האם זה בטוח לתת לקלוד גישה לדפדפן שלי?
הסקיל פועל מול הדפדפן המקומי שלכם דרך החיבור הקיים, בלי לשלוח מידע לצד שלישי ובלי לחשוף סיסמאות בקובץ. הוא ניגש למצב שאתם כבר רואים, ולכן השליטה נשארת אצלכם. כיוון שהכול מקומי, הוא מתאים גם לעבודה מול סביבות רגישות ומחוברות.
מה ההבדל בין הסקיל הזה לבין דפדפן אוטומציה?
דפדפן אוטומציה מפעיל חלון חדש ונקי, בלי הסשן וההתחברויות שלכם. הסקיל הזה, לעומת זאת, עובד בתוך הדפדפן החי הקיים, עם כל מה שאתם מחוברים אליו. זה ההבדל בין לבדוק עמוד ציבורי לבין לעבוד בתוך מערכת ניהול שאתם מחוברים אליה.
מה קורה אם הסקיל לא יכול לבצע משימת דפדפן?
במקום לרדת בשקט להורדה סטטית ולהחזיר תשובה חלקית, הסקיל מסמן את המשימה כחסומה ומסביר מה חסר. השקיפות הזאת היא חלק מהעיקרון שלו: עדיף לומר מה לא אפשר מאשר להחזיר מידע לא אמין. כך אתם לא מקבלים החלטות על בסיס שגוי.
האם הסקיל מתאים גם לבדיקות SEO?
כן. בדיקה איך עמוד מתרנדר בפועל, כולל תוכן שנטען דינמית, רלוונטית לאבחון SEO, כי מה שמנוע החיפוש רואה תלוי במצב המרונדר ולא רק ב-HTML הראשוני. הסקיל מאפשר לקלוד לבחון את הדף כפי שהוא מוצג למשתמש ולמנוע.
האם הסקיל מתאים גם למי שאינו מפתח?
במידה מסוימת. הוא טכני יותר מסקילים אחרים, אבל גם משתמש לא מפתח יכול להיעזר בו כדי לתת לקלוד לעבוד בתוך דשבורד שהוא מחובר אליו, למשל לקריאת נתונים או לביצוע זרימה. הסקיל מטפל בצד הטכני, והמשתמש מתאר מה הוא צריך מהמסך.
