> ## 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

> Leer hoe je remote sessions inschakelt in de Laravel Copilot SDK en via Mission Control van GitHub vanaf web en mobiel toegang krijgt tot dezelfde session.

## Remote sessions

Als je remote sessions inschakelt, kun je via Mission Control van GitHub vanaf web en mobiel toegang krijgen tot dezelfde session.
Bij inschakeling wordt elke session verbonden met Mission Control en wordt er een URL uitgegeven die je als link of QR-code kunt delen.

Wil je de session zelf niet lokaal of op je eigen server, maar in een door GitHub gehoste omgeving uitvoeren, gebruik dan [Cloud sessions](/nl/packages/laravel-copilot-sdk/cloud-sessions).

## Vereisten

* De gebruiker is geauthenticeerd (GitHub-token of ingelogde gebruiker)
* `workingDirectory` is een GitHub-repository

## Inschakelen op clientniveau (altijd aan)

Als je `remote: true` inschakelt, wordt voor alle sessions binnen een GitHub-repository automatisch een remote URL uitgegeven.

In plaats van dit vast toe te voegen aan `config/copilot.php`, is het handiger om `remote: true` alleen via `useStdio()` in te schakelen voor de taken die het nodig hebben.

<Info>
  De optie `remote` werkt alleen als de SDK het CLI-proces start, dus **uitsluitend in stdio-modus**. Bij verbinding met een externe server, zoals via `useTcp()`, wordt deze genegeerd.
</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);
```

## Per session inschakelen (on demand)

Wil je halverwege beginnen met remote delen, dan schakel je dit om via RPC.
Dit komt overeen met de CLI-commando's `/remote on` en `/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;
    }

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

## QR-code genereren

De verkregen remote URL kun je als QR-code doorgeven aan mobiel.
Je kunt [BaconQrCode](https://github.com/Bacon/BaconQRCode) gebruiken, dat ook in Laravel Fortify wordt gebruikt.

```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 ?? '');
```

## Aandachtspunten

* De optie `remote` werkt alleen als de SDK het CLI-proces start. Bij verbinding met een externe server, zoals via `useTcp()`, wordt deze genegeerd.
* Als `workingDirectory` geen GitHub-repository is, wordt de remote-configuratie in de altijd-aan-modus overgeslagen. Bij on-demand inschakelen (`remote()->enable()`) kan er een fout optreden.
* Zorg dat de authenticatiegegevens (`github_token` of `use_logged_in_user`) correct zijn ingesteld.

## Zie ook

* [Cloud sessions](/nl/packages/laravel-copilot-sdk/cloud-sessions)
* [RPC](/nl/packages/laravel-copilot-sdk/rpc)
* [TCP-modus](/nl/packages/laravel-copilot-sdk/tcp-mode)

<Info>
  Raadpleeg de [GitHub-repository](https://github.com/invokable/laravel-copilot-sdk) voor de meest actuele informatie.
</Info>


## Related topics

- [Cloud Sessions](/nl/packages/laravel-copilot-sdk/cloud-sessions.md)
- [Streaming events](/nl/packages/laravel-copilot-sdk/streaming-events.md)
- [RPC (Remote Procedure Call)](/nl/packages/laravel-copilot-sdk/rpc.md)
- [PHP, Composer en Node.js installeren met WSL (Windows)](/nl/blog/windows-setup.md)
- [Sessions hervatten](/nl/packages/laravel-copilot-sdk/resume.md)
