VSCode can do it (see https://vscode.dev/), so see how it does it. Might want to check https://nasserspace.hashnode.dev/vscode-file-system-access-api.