> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Remote Sessions

> Beschreibt, wie Sie Remote Sessions im Laravel Copilot SDK aktivieren und über GitHub Mission Control von Web- oder Mobilgeräten auf dieselbe Session zugreifen.

## Remote Sessions

Wenn Sie Remote Sessions aktivieren, können Sie über GitHub Mission Control von Web- oder Mobilgeräten aus auf dieselbe Session zugreifen.
Nach der Aktivierung wird jede Session mit Mission Control verbunden, und es wird eine URL generiert, die sich als Link oder QR-Code teilen lässt.

Wenn Sie die Session selbst nicht lokal oder auf einem eigenen Server, sondern in einer von GitHub gehosteten Umgebung ausführen möchten, verwenden Sie [Cloud Sessions](/de/packages/laravel-copilot-sdk/cloud-sessions).

## Voraussetzungen

* Der Benutzer ist authentifiziert (GitHub-Token oder angemeldeter Benutzer)
* `workingDirectory` liegt in einem GitHub-Repository

## Aktivierung auf Client-Ebene (dauerhaft ON)

Wenn Sie `remote: true` aktivieren, wird für alle Sessions innerhalb des GitHub-Repositorys automatisch eine Remote-URL generiert.

Es ist praktikabler, `remote: true` gezielt in benötigten Verarbeitungen mit `useStdio()` zu aktivieren, statt es dauerhaft in `config/copilot.php` einzutragen.

<Info>
  Die `remote`-Option wirkt nur, wenn das SDK den CLI-Prozess startet. Das heißt: **nur im stdio-Modus**. Bei Verbindungen zu externen Servern wie `useTcp()` wird sie ignoriert.
</Info>

```php theme={null}
use Revolution\Copilot\Contracts\CopilotSession;
use Revolution\Copilot\Enums\SessionEventType;
use Revolution\Copilot\Facades\Copilot;
use Revolution\Copilot\Support\PermissionHandler;
use Revolution\Copilot\Types\SessionConfig;
use Revolution\Copilot\Types\SessionEvent;

$config = new SessionConfig(
    workingDirectory: '/path/to/github-repo',
    onPermissionRequest: PermissionHandler::approveAll(),
);

$stdioConfig = config('copilot');
$stdioConfig['remote'] = true;

Copilot::useStdio($stdioConfig)->start(function (CopilotSession $session): void {
    $session->on(SessionEventType::SESSION_INFO, function (SessionEvent $event): void {
        if ($event->data('infoType') === 'remote') {
            echo 'Remote URL: '.$event->data('url').PHP_EOL;
        }
    });
}, config: $config);
```

## Aktivierung pro Session (on-demand)

Um das Remote-Sharing im laufenden Betrieb zu starten, schalten Sie es per RPC um.
Das entspricht den CLI-Befehlen `/remote on` bzw. `/remote off`.

```php theme={null}
use Revolution\Copilot\Contracts\CopilotSession;
use Revolution\Copilot\Facades\Copilot;

Copilot::start(function (CopilotSession $session): void {
    $result = $session->rpc()->remote()->enable();

    if ($result->url !== null) {
        echo 'Remote URL: '.$result->url.PHP_EOL;
    }

    // Sharing stoppen
    $session->rpc()->remote()->disable();
});
```

## QR-Code-Generierung

Die erhaltene Remote-URL lässt sich als QR-Code an mobile Geräte weitergeben.
Sie können [BaconQrCode](https://github.com/Bacon/BaconQRCode) verwenden, das auch in Laravel Fortify eingesetzt wird.

```php theme={null}
use BaconQrCode\Renderer\Image\SvgImageBackEnd;
use BaconQrCode\Renderer\ImageRenderer;
use BaconQrCode\Renderer\RendererStyle\RendererStyle;
use BaconQrCode\Writer;

$writer = new Writer(
    new ImageRenderer(
        new RendererStyle(256),
        new SvgImageBackEnd(),
    ),
);

$svg = $writer->writeString($result->url ?? '');
```

## Hinweise

* Die `remote`-Option wirkt nur, wenn das SDK den CLI-Prozess startet. Bei Verbindung zu externen Servern (z. B. `useTcp()`) wird sie ignoriert.
* Wenn `workingDirectory` kein GitHub-Repository ist, wird die Remote-Konfiguration im dauerhaft aktivierten Modus übersprungen. Bei On-demand-Aktivierung (`remote()->enable()`) kann es zu einem Fehler kommen.
* Konfigurieren Sie die Anmeldedaten (`github_token` oder `use_logged_in_user`) korrekt.

## Referenzen

* [Cloud Sessions](/de/packages/laravel-copilot-sdk/cloud-sessions)
* [RPC](/de/packages/laravel-copilot-sdk/rpc)
* [TCP-Modus](/de/packages/laravel-copilot-sdk/tcp-mode)

<Info>
  Aktuelle Informationen finden Sie im [GitHub-Repository](https://github.com/invokable/laravel-copilot-sdk).
</Info>


## Related topics

- [Cloud Sessions](/de/packages/laravel-copilot-sdk/cloud-sessions.md)
- [RPC (Remote Procedure Call)](/de/packages/laravel-copilot-sdk/rpc.md)
- [Streaming-Ereignisse](/de/packages/laravel-copilot-sdk/streaming-events.md)
- [Session](/de/session.md)
- [PHP, Composer und Node.js mit WSL installieren (Windows)](/de/blog/windows-setup.md)
