{"id":13660023,"url":"https://github.com/gao-sun/github-vsc","last_synced_at":"2025-04-24T15:31:31.609Z","repository":{"id":48519880,"uuid":"338730588","full_name":"gao-sun/github-vsc","owner":"gao-sun","description":"🐙 Launch VSCode dev environment in your browser.","archived":true,"fork":false,"pushed_at":"2021-04-01T11:51:46.000Z","size":408,"stargazers_count":130,"open_issues_count":6,"forks_count":18,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-10T13:37:22.884Z","etag":null,"topics":["github","react","spa","vscode","web","webworker"],"latest_commit_sha":null,"homepage":"https://github-vsc.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gao-sun.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-02-14T04:44:05.000Z","updated_at":"2024-07-04T16:26:41.000Z","dependencies_parsed_at":"2022-09-13T08:32:03.401Z","dependency_job_id":null,"html_url":"https://github.com/gao-sun/github-vsc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gao-sun%2Fgithub-vsc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gao-sun%2Fgithub-vsc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gao-sun%2Fgithub-vsc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gao-sun%2Fgithub-vsc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gao-sun","download_url":"https://codeload.github.com/gao-sun/github-vsc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250654252,"owners_count":21465849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github","react","spa","vscode","web","webworker"],"created_at":"2024-08-02T05:01:15.087Z","updated_at":"2025-04-24T15:31:31.304Z","avatar_url":"https://github.com/gao-sun.png","language":"TypeScript","readme":"# This project may violate GitHub Actions usage policy, so I'm going to archive the repo soon. Please consider using other alternatives. Thanks.\n\n# GitHub VSC\n\nLaunch VSCode dev environment in your browser. For free.\n\n## How?\n\nChange `github` to `github-vsc` in the URL and press Enter.\n\nE.g. `github.com/gao-sun/eul` -\u003e `github-vsc.com/gao-sun/eul`\n\n[Live Demo](https://github-vsc.com/gao-sun/github-vsc/tree/master/README.md)\n\n## Highlights\n\n🔑 Simple. Just need a PAT for everything.\n\n⚡ Super fast. Get your dev environment ready in up to 10s.\n\n🔌 Flexible. Available for private repos and self-hosted runners.\n\n📝 Cozy. Can only be an online editor without remote session.\n\n## Start a Remote Session for Dev\n\n1. Activate the 6th tab with GitHub logo in the side bar.\n2. Setup your [PAT](https://github.com/settings/tokens/new?description=GitHub%20VSC%20Token\u0026scopes=repo) with repo access for forking the [runner repo](https://github.com/gao-sun/github-vsc-runner) and repo checkout inside workflow runs.\n3. Choose the nearest runner server and your preferred OS, then click \"Start Session\".\n\n![preview-remote-session](https://user-images.githubusercontent.com/14722250/111058903-a7e61280-84cc-11eb-981e-4be3a34b8781.png)\n\n## Port Forwarding\n\nFor safety concerns, port forwarding is disabled by default. Enable with simple one-click and you can access the local port with HTTP reqeists via `https://[session-id].runner-[location].github-vsc.com`. See the tutorial [here](docs/port-forwarding.md).\n\n## Is It Free?\n\nTL;DR: **YES.**\n\n- 6 hours per session with PAT.\n- 72 hours with self-hosted runners.\n\n### Why 6 Hours?\n\nFor GitHub-hosted runners, quote from the [Usage Limit](https://docs.github.com/en/actions/reference/usage-limits-billing-and-administration#usage-limits) section in the official docs:\n\n\u003e Each job in a workflow can run for up to 6 hours of execution time.\n\nWhich means the runner job will be killed after you reach that limit. Also you may notice:\n\n\u003e You can execute up to 1000 API requests in an hour across all actions within a repository.\n\nWe're enforcing WebSocket for data transmission inside the job so it'll be OK for casual development.\n\n### Why 72 Hours?\n\nUnfortunately, self-hosted runners also have a [Usage Limit](https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners#usage-limits) on the total run time of workflow itself (i.e. 72 hours), and the 1,000 API requests limit also applies.\n\n### Any Method to Get Rid of All These Limitations?\n\nYes. But there's no one-line script yet. The basic concept is to setup fully controlled runner client and trigger client deployment by API hook/network event. Feel free to open an issue if you are interested.\n\n## Is It Safe?\n\n### Data Storage\n\nWe'll NOT transmit or store any of your credentials (for now it's PAT) or data to the cloud. You credentials will be saved inside your browser and used for GitHub official API requests and Actions setup. The repo access inside workflow is enabled by the official [create or update a repository secret REST API](https://docs.github.com/en/rest/reference/actions#create-or-update-a-repository-secret).\n\n### Remote Session\n\nYour connection is always under a secure protocol (HTTPS/WSS) and all session IDs are generated by the random algorithm with an extremely small collision probability. Quote from the [collision calculator](https://zelark.github.io/nano-id-cc/):\n\n\u003e With the speed of 1000 IDs per second, ~21 million years needed, in order to have a 1% probability of at least one collision.\n\nTreat your session ID as credentials.\n\n### Burn after Use\n\nThanks to the nature of GitHub Actions, there's no need to worry about setup and disposal. Your dev environment will be cleaned up as soon as you terminate the session from here or cancel the workflow run. \n\n## Online Editor\n\nIf you'd like to just do some quick editing, then no need for starting a remote session. Go ahead to make some changes, and you're ready to commit changes to the branch directly or open a pull request based on your access to the repo. [Learn more about the online editor](docs/online-editor.md).\n\n## Specifications\n\nClick [here](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) to see VM hardwares for GitHub-hosted runners. You can also find supported softwares within that page.\n\nRunner servers are not hosted by GitHub. The bill sends to me. :-) They are hosted in Microsoft Azure since it's backing GitHub Actions as well.\n\n## I Know There's One More Question...\n\nCompare to the officially provided GitHub Codespaces:\n\n|                    | GitHub VSC          | GitHub Codespaces                                                                                                                                                                  |\n|--------------------|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Type               | Open-Source Project | Developed by GitHub                                                                                                                                                                |\n| Pricing            | Free                | From $0.085/hr to $0.339/hr, with additional monthly storage costs. [Learn more](https://docs.github.com/en/github/developing-online-with-codespaces/about-billing-for-codespaces) |\n| OS                 | Ubuntu, macOS       | Ubuntu                                                                                                                                                                             |\n| Private Deployment | Available           | N/A                                                                                                                                                                                |\n| VSCode Extension   | Built-in            | Support marketplace                                                                                                                                                                |\n| Code Navigation    | Not Yet             | ✔️                                                                                                                                                                                  |\n\n## Engineering\n\nSee [explanation](docs/engineering.md).\n\n## Try It Locally\n\nMake sure you are prepared for the same prerequisites as [Code - OSS](https://github.com/microsoft/vscode/wiki/How-to-Contribute#prerequisites).\n\n```bash\n# in ./\n# install deps\nyarn\n# clone and build Code - OSS\nyarn build-vsc\n# happy hacking on https://localhost:8080\nyarn dev\n```\n\nTo debug remote session, please see [github-vsc-runner](https://github.com/gao-sun/github-vsc-runner).\n\n## Credits\n\nHeavily inspired by [github1s](https://github.com/conwnet/github1s), edited vscode compiling part from [vscode-web](https://github.com/Felx-B/vscode-web), and derivated FileSystem implementation from [vscode-web-playground](https://github.com/microsoft/vscode-web-playground).\n\nAlso exported the beautiful One Dark theme from [vscode-theme-onedark](https://github.com/akamud/vscode-theme-onedark).\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgao-sun%2Fgithub-vsc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgao-sun%2Fgithub-vsc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgao-sun%2Fgithub-vsc/lists"}