{"id":13603061,"url":"https://github.com/humphd/browser-shell","last_synced_at":"2025-03-17T14:17:18.803Z","repository":{"id":61801262,"uuid":"169503198","full_name":"humphd/browser-shell","owner":"humphd","description":"A Linux command-line shell in the browser","archived":false,"fork":false,"pushed_at":"2019-04-26T19:37:10.000Z","size":13173,"stargazers_count":301,"open_issues_count":4,"forks_count":20,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-03T23:49:40.840Z","etag":null,"topics":["browser","filesystem","linux","xterm"],"latest_commit_sha":null,"homepage":"https://humphd.github.io/browser-shell/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/humphd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-07T01:24:54.000Z","updated_at":"2025-02-03T17:12:32.000Z","dependencies_parsed_at":"2022-10-21T11:45:35.527Z","dependency_job_id":null,"html_url":"https://github.com/humphd/browser-shell","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/humphd%2Fbrowser-shell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humphd%2Fbrowser-shell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humphd%2Fbrowser-shell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/humphd%2Fbrowser-shell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/humphd","download_url":"https://codeload.github.com/humphd/browser-shell/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244047646,"owners_count":20389206,"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":["browser","filesystem","linux","xterm"],"created_at":"2024-08-01T18:01:47.929Z","updated_at":"2025-03-17T14:17:18.775Z","avatar_url":"https://github.com/humphd.png","language":"HTML","readme":"# browser-shell\n\nA [Linux shell](https://github.com/humphd/browser-vm) in the browser via\n[forked v86](https://github.com/humphd/v86/tree/filer-9p-lastknowngood),\nwith bi-directional POSIX filesystem (via [Filer](https://github.com/filerjs/filer))\nshared over [Plan 9 resource sharing](https://www.kernel.org/doc/Documentation/filesystems/9p.txt).\n\nThe Filer filesystem in the browser is mounted in the Linux VM at `/mnt`.\n\n## Demo\n\nYou can play with the [online demo](https://humphd.github.io/browser-shell/), or\nwatch a [screencast on YouTube](https://youtu.be/TFxpPbNDlJw).\n\nThe first time you boot, it needs to download the ISO, and do a cold boot. After\nthat it will cache the state of the VM in Cache Storage, and reboots will be\nnearly instant (like resuming your laptop form sleep).\n\nThe shared filesystem's root dir (`/`) is mounted in `/mnt` in the Linux VM.\nYou can open the console and get access to `fs`, `path`, and `Buffer` if you want\nto try doing things from JS with the filesystem; just remember that your files\nare rooted in `/` vs. `/mnt` in JS.\n\nBelow, I demonstrate creating some files and directories from\nLinux, then accessing them via JS and the console, and vice versa.  Pretty much\nanything that Linux can do with a filesystem should work, including working with\nfiles, directories, symlinks, and all the usual I/O commands.  File a bug if you find\nsomething that doesn't work.\n\n![](screenshots/browser-shell.gif)\n","funding_links":[],"categories":["HTML","browser"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhumphd%2Fbrowser-shell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhumphd%2Fbrowser-shell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhumphd%2Fbrowser-shell/lists"}