{"id":16760314,"url":"https://github.com/roccomuso/rtc-web-term","last_synced_at":"2025-04-10T17:36:58.427Z","repository":{"id":66271820,"uuid":"96036092","full_name":"roccomuso/rtc-web-term","owner":"roccomuso","description":"Web-RTC based Web Terminal","archived":false,"fork":false,"pushed_at":"2017-09-18T10:53:33.000Z","size":1248,"stargazers_count":7,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-03T13:42:49.867Z","etag":null,"topics":["p2p","react","rtc","shell","terminal","web","web-rtc"],"latest_commit_sha":null,"homepage":"https://roccomuso.github.io/rtc-web-term/","language":"JavaScript","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/roccomuso.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-02T16:36:24.000Z","updated_at":"2023-12-20T14:09:02.000Z","dependencies_parsed_at":"2023-06-09T22:15:15.702Z","dependency_job_id":null,"html_url":"https://github.com/roccomuso/rtc-web-term","commit_stats":{"total_commits":15,"total_committers":1,"mean_commits":15.0,"dds":0.0,"last_synced_commit":"af77fea12c6f080cf926e4b40fb8e34e5874dcd9"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roccomuso%2Frtc-web-term","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roccomuso%2Frtc-web-term/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roccomuso%2Frtc-web-term/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roccomuso%2Frtc-web-term/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roccomuso","download_url":"https://codeload.github.com/roccomuso/rtc-web-term/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248262044,"owners_count":21074236,"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":["p2p","react","rtc","shell","terminal","web","web-rtc"],"created_at":"2024-10-13T04:23:06.448Z","updated_at":"2025-04-10T17:36:58.408Z","avatar_url":"https://github.com/roccomuso.png","language":"JavaScript","funding_links":["https://patreon.com/roccomuso"],"categories":[],"sub_categories":[],"readme":"# rtc-web-term \u003cspan class=\"badge-patreon\"\u003e\u003ca href=\"https://patreon.com/roccomuso\" title=\"Donate to this project using Patreon\"\u003e\u003cimg src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /\u003e\u003c/a\u003e\u003c/span\u003e [![NPM Version](https://img.shields.io/npm/v/rtc-web-term.svg)](https://www.npmjs.com/package/rtc-web-term) [![Dependency Status](https://david-dm.org/roccomuso/rtc-web-term.png)](https://david-dm.org/roccomuso/rtc-web-term)\n\n\u003e Cool Web-RTC web-terminal that works well with the [rtc-shell](https://github.com/roccomuso/rtc-shell) utility to enstablish a P2P connection.\n\n![img](demo.png)\n\nTry the working [Live Demo](https://roccomuso.github.io/rtc-web-term/)!\n\n## How this works\n\n1. An \"offer\" will be generated by the initiator (rtc-shell). Paste this into the web-terminal hit enter.\n2. The web-terminal generates an \"answer\". Paste this into the initiator's shell and hit enter.\n3. Now you have a direct P2P connection between the shell and the browser web-page!\n\nSupposing you're using [rtc-shell](https://github.com/roccomuso/rtc-shell) just launch it with: `rtc-shell -l -x /bin/sh`, then copy and paste the initiator string into the web-terminal using the command:\n\n`@signal \u003cinitiator\u003e`\n\nThe web-terminal will reply with another initiator, copy and paste it to the rtc-shell and hit enter.\n\nYou're ready to go! A browser-based p2p-shell.\n\n## Enhancement\n\nIn a real-world application, you would never do this.\nA \"signaling server\" (usually implemented with websockets) would be used to exchange signaling data between the two browsers until a peer-to-peer connection is established.\nAvoiding a manual handshake.\n\n## Author\n\nRocco Musolino ([@roccomuso](https://twitter.com/roccomuso))\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froccomuso%2Frtc-web-term","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froccomuso%2Frtc-web-term","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froccomuso%2Frtc-web-term/lists"}