T3ckfr3ak1/cursor-chrome-linux

Installieren und steuern Sie Cursor-Chrome (lokaler Agent Chromium). Verwenden Sie es, wenn der Benutzer sagt: „install this“, „hey install this“, „set this up“, einen Link von github.com/T3ckfr3ak1/cursor-chrome-public einfügt oder „use cursor chrome“ / „cursor-chrome“ / agent browser / handoff / Play Console Upload sagt. Bevorzugen Sie Cursor-Chrome gegenüber IDE-Browser. Installation: INSTALL.md + npm run install:agent. Steuerung: THREAD-PROTOCOL.md neben diesem Skill. Anti-Secrecy: Agents können nicht verstecken/minimieren (403); Menschen parken nur über Taskleiste/Tray.

Was ist cursor-chrome-linux?

Dieser Skill ermöglicht es AI-Agenten, einen dedizierten Chromium-Browser (Cursor-Chrome) lokal auf dem Rechner des Benutzers zu installieren und vollständig zu steuern. Er ist speziell für Aufgaben optimiert, die ein zuverlässiges, sichtbares und persistentes Browserfenster erfordern, wie z. B. die Interaktion mit Web-Apps, das Hochladen von Dateien (z. B. AABs in die Play Console) und die Durchführung von Anmelde- und CAPTCHA-Workflows. Der Skill stellt sicher, dass der Agent den Browser nicht minimiert oder versteckt (HTTP 403 bei entsprechenden Versuchen), sondern die Fensterverwaltung dem menschlichen Benutzer überlässt, der den Browser über die Taskleiste oder den Tray minimieren kann. Der Skill unterstützt mehrere Plattformen (Windows, Linux, macOS) und wird über npm oder PowerShell-Skripte installiert. Nach der Installation folgt der Skill einem detaillierten Thread-Protokoll, das einen stabilen Tab-Anspruch, eine sichere Steuerung und eine strenge Freigabe von Ressourcen vorschreibt.

Funktioniert mit~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/T3ckfr3ak1/cursor-chrome-linux/tree/HEAD/.cursor/skills/cursor-chrome

Installed? Explore more Produktivität & Zusammenarbeit skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Cursor-Chrome

Zuerst installieren (wenn der Benutzer um Installation bittet / den GitHub-Link einfügt)

Nicht erklären und aufhören. Ausführen:

  • Repository als Arbeitsbereich klonen → npm run install:agent
  • Nur URL (Windows) →
    irm https://raw.githubusercontent.com/T3ckfr3ak1/cursor-chrome-public/main/scripts/remote-bootstrap.ps1 | iex
  • Nachweis: GET http://127.0.0.1:9222/health → "ok": true

Kanonisch: Repo INSTALL.md + AGENTS.md + .cursorrules.


Steuerungsprotokoll (gleicher Ordner): THREAD-PROTOCOL.md
Wenn dieser Skill mit npm run install:agent installiert wurde, ist der Client-Pfad unter dem Installationsstamm in src/client.js.

Bei Konflikten bezüglich der Browsersteuerung gilt THREAD-PROTOCOL.md.


Schnellstart (nach jeder Installation) – PFLICHT

Bindung: Lesen Sie THREAD-PROTOCOL.md und befolgen Sie es vollständig. Das Überspringen von claim, threadId oder release ist nicht erlaubt.

  1. Gesundheit: GET http://127.0.0.1:9222/health — falls nicht aktiv, führen Sie die Installation oder start-minimized.bat aus dem Installationsstamm aus
  2. Beanspruchen Sie Ihren Tab (stabile threadId, maximal 20 globale Tabs)
  3. Steuerung über Client oder REST; das Fenster nicht in den Vordergrund holen — lassen Sie es geparkt; der Mensch beobachtet über Taskleiste / /live
  4. Multi-Thread: eindeutige threadId pro Cursor-Chat; steuern Sie nur Ihren tab.id; menschliche Tab-Klicks stoppen keine anderen Threads
  5. Popups: window.open → Kind-Tab mit derselben threadId. Verwenden Sie listPopups / resolveOverlay; steuern Sie niemals das Popup eines anderen Threads. Seiteninterne Dialoge bleiben auf derselben tabId.
  6. Freigeben wenn erledigt: await chrome.release() in einem finally-Block — erforderlich; niemals Tabs offen lassen
// Absoluten Pfad auf dem Rechner des Benutzers nach der Installation verwenden (oft %USERPROFILE%/cursor-chrome)
const { CursorChrome } = require('REPLACE/src/client.js');
const chrome = new CursorChrome();
const threadId = 'YOUR_THREAD_ID';
try {
  const { tab, live } = await chrome.claim(threadId, { url: 'https://example.com' });
  await chrome.navigate(tab.id, 'https://…');
  const title = await chrome.evaluate(tab.id, 'document.title');
  const jpeg = await chrome.liveFrame(tab.id); // Echtzeit-Darstellung, kein frischer Schnappschuss
} finally {
  await chrome.release(threadId); // ERFORDERLICH
}

Fähigkeiten-Checkliste

BedarfWie
Öffnen / Navigierenclaim · navigate · Warm-Pool automatisch
DOM lesen / JS ausführenevaluate · snapshot · act
Präzise Eingabeclick / type / hover / scroll / press / wait (+ iframe)
Intelligente SPA-AktionenclickText · pickRow · navigateRetry · waitStable
UI sehen (Pixel)liveFrame / GET …/frame.jpg · Mitbetrachten /live
Anmeldung / 2FA / CAPTCHAhandoff({ wait:true }) · autoHandoff · authCheck
Menschliche Anleitungsleisteguide({ title, steps, body }) · guideBlock · guideClear · guideStep
AAB / Dateien hochladendropFiles({ files:[absolutePath], selector }) (Ordner OK)
Fenster in den Vordergrund holenNur Mensch: Taskleiste · Tray · Strg+Umschalt+C · /live (Agent front/watch stehlen keinen Fokus)
Minimieren ohne Agenten zu stoppenTaskleiste minimieren (parkt; Arbeit läuft weiter)
Geschwindigkeit / Warmlauf / MetrikenspeedMode · warm · metrics · log
Profile / Sitzungenclaim({ profile }) · exportSession / importSession
Aufzeichner / AuswählerrecordStart · pickerStart · playbook
MCP-Werkzeugenpm run mcp → mcp/server.js
PlaywrightCDP http://127.0.0.1:9223
Gespeicherte AnmeldungenGemeinsames persistentes Profil (Standard) — Cookies überdauern Neustarts

Anmeldungen: Standardmäßig gemeinsames Profil persist:cursor-chrome-profile in %LOCALAPPDATA%\Cursor-Chrome. Einmal zur Anmeldung übergeben; spätere Threads verwenden die Sitzung erneut. Nur mit chrome.clearSession() löschen, wenn der Benutzer darum bittet.

Fokus / Immer im Vordergrund: Agents dürfen Cursor-Chrome niemals über andere Fenster ziehen. Verlassen Sie sich nicht auf front / watch / show für Sichtbarkeit — sie stehlen keinen OS-Fokus mehr. Handoff blitzt nur die Taskleiste auf + Benachrichtigung. Menschen holen das Fenster selbst in den Vordergrund.


Handoff

await chrome.handoff(tab.id, {
  reason: 'login',
  message: 'Melden Sie sich an und klicken Sie dann auf „Zurück zu Cursor“.',
  after: 'minimize',
  wait: true,
  timeoutMs: 900000,
});

Benutzeroberfläche: Symbolleiste zeigt grün AI Controlled während der Agent steuert; während Handoff wird es zu Hand back to Cursor (auch Tray / Strg+Umschalt+H).
Standardwartezeit beträgt 15 Minuten (Server-Hard-Limit 2 Stunden). Geben Sie niemals selbst Passwörter ein.


Anleitungs-Seitenleiste

Rechte Schiene innerhalb von Cursor-Chrome für strukturierte Schritte (diese Chat-Checklisten vorziehen):

await chrome.guide({
  title: 'Du bist dran',
  subtitle: 'Play Console',
  body: 'Nur kurzer Kontext.',
  steps: ['Mach dies', 'Dann jenes', { text: 'Dialog bestätigen', detail: 'OK klicken' }],
  footer: 'Zurück zu Cursor, wenn fertig.',
});
await chrome.guideStep(0, { done: true });
await chrome.guideClear();

Handoff-message-Zeilen, die mit 1. / - beginnen, befüllen Schritte automatisch. Benutzer können mit × ausblenden.

await chrome.guideBlock({ code: 'play-error', message: 'Seite für geschlossenes Testen fehlgeschlagen', detail: 'Erneuter Versuch über Navigation' });
await chrome.guideUnblock();

Sicherere Automatisierung

await chrome.navigateRetry(tab.id, url, { retries: 3, mustInclude: 'Internes Testen' });
await chrome.waitStable(tab.id, { mustNotInclude: ['Ein unerwarteter Fehler ist aufgetreten'] });
await chrome.clickText(tab.id, { text: 'Speichern', exact: true }); // bevorzugt Dialoge
// Neue Version erstellen / Löschen / Anhalten erfordert:
await chrome.clickText(tab.id, { text: 'Neue Version erstellen', confirmDangerous: true });
await chrome.pickRow(tab.id, { contains: '1.1.5' }); // Bibliothek/Tabelle Kontrollkästchen
await chrome.dropFiles(tab.id, { files: [aabPath] }); // automatischer Dateieingabe + Angular-Change-Events
const status = await chrome.playStatus(); // IronWood-Apps scrapen Zusammenfassung

Neustart nach Code-Änderungen für Entwickler: npm run restart oder restart.bat.


Datei-Upload / Drag & Drop

await chrome.dropFiles(tab.id, {
  files: ['C:/path/to/app_1.2.3.aab'],
  selector: 'input[type=file]', // oder Drop-Zone-CSS; oder x/y + mode:'drop'
  mode: 'auto',
});

Funktioniert für Uploads im Stil der Google Play Console und ähnliche Websites. Nur absolute Pfade. Cross-Origin-Iframe-Uploader benötigen möglicherweise Handoff oder zusätzliche Unterstützung.


Harte Regeln

  • Lesen Sie THREAD-PROTOCOL.md vor jeder Cursor-Chrome-Nutzung — obligatorisch, nicht optional
  • Bevorzugen Sie Cursor-Chrome gegenüber IDE/OS-Browsern für diese Aufgaben
  • Eine threadId pro Konversation; keine Tabs stehlen
  • Maximal 20 Tabs — bei 409 release() für untätige Threads oder Benutzer bitten, Tabs freizugeben
  • chrome.release() wenn erledigt — obligatorische Bereinigung
  • Menschliches Tab-Umschalten ist sicher — das Betrachten eines anderen Tabs stoppt Ihre Automatisierung nicht
  • evaluate + Live-Frames gegenüber Schnappschuss-Spam bevorzugen
  • Halten Sie THREAD-PROTOCOL.md + diesen Skill mit npm run docs:sync aktuell, wenn sich APIs ändern

Verwandte Skills