Add an “Open in Tab Desktop” button to your GitHub repo

One click on your README gives every visitor a running copy of your project — cloned into a browser-based desktop and open in a VS Code-class editor, with nothing to install and no server behind it. Paste your repository below to get the link and the badge.

Open in Tab Desktop← this is what visitors will see

Generate yours

Public repos only · showing an example until you paste one

Launch link
https://tabdesktop.com/os?clone=https%3A%2F%2Fgithub.com%2Flaravel%2Flaravel&vm=laravel
Markdown (README.md)
[![Open in Tab Desktop](https://tabdesktop.com/open-in-tab-desktop.svg)](https://tabdesktop.com/os?clone=https%3A%2F%2Fgithub.com%2Flaravel%2Flaravel&vm=laravel)
HTML
<a href="https://tabdesktop.com/os?clone=https%3A%2F%2Fgithub.com%2Flaravel%2Flaravel&vm=laravel"><img src="https://tabdesktop.com/open-in-tab-desktop.svg" alt="Open in Tab Desktop" height="28"></a>

How it works

  1. 1. Paste your repository

    Enter the public URL of your repo (GitHub, GitLab, Codeberg or any git host that serves smart HTTP).

  2. 2. Copy the badge

    Copy the Markdown or HTML snippet below and paste it into your README, near the top where a Clone button would go.

  3. 3. Visitors click it

    The link opens Tab Desktop, clones the repository into an isolated desktop and opens it in Tab Code with the README rendered — ready to run.

The link is a plain URL — /os?clone=<repository>, plus &vm=<name> for an isolated desktop — so it works from a README, a docs site, a tweet or an issue comment. Nothing about your repository is sent anywhere: the clone happens in the visitor's browser over the standard git protocol.

Questions

Does the button work for private repositories?

No. The clone runs in the visitor's browser and speaks the git smart-HTTP protocol without their credentials, so only public repositories work. A private repo shows a clear error rather than a login prompt.

What happens after the clone?

The project opens in Tab Code — a VS Code-class editor with the file tree, an integrated terminal and the README rendered. If the repo has a package.json, composer.json, artisan or index.html, Harbor detects how it starts and offers a one-click dev server.

Is anything installed on the visitor's machine?

Nothing. Node.js, PHP, git and the package managers run as WebAssembly inside the tab, and files live in the browser's origin-private storage. Closing the tab keeps the desktop; the visitor can delete it any time.

Why does the link open a separate desktop?

The `vm` parameter gives the clone its own isolated filesystem, so a repository a visitor did not choose themselves never lands in their main desktop. Drop the parameter if you prefer the clone to go to the main desktop.

Can I add a dev command or a branch?

Not yet through the link. Tab Desktop reads the project's own start scripts (package.json, composer.json, artisan) and offers them in Harbor, so a repo that documents how it starts already starts in one click.

What your visitors can run