{"id":13453317,"url":"https://github.com/liftoff/GateOne","last_synced_at":"2025-03-24T01:31:25.383Z","repository":{"id":1739264,"uuid":"2564712","full_name":"liftoff/GateOne","owner":"liftoff","description":"Gate One is an HTML5-powered terminal emulator and SSH client","archived":false,"fork":false,"pushed_at":"2023-03-17T14:15:06.000Z","size":52664,"stargazers_count":6295,"open_issues_count":365,"forks_count":919,"subscribers_count":287,"default_branch":"master","last_synced_at":"2025-03-19T22:37:50.225Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://liftoffsoftware.com/Products/GateOne","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/liftoff.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2011-10-12T19:17:25.000Z","updated_at":"2025-03-18T23:38:49.000Z","dependencies_parsed_at":"2024-10-28T20:34:32.161Z","dependency_job_id":"62ca9b88-410d-4fb2-a778-7b34b6972e5f","html_url":"https://github.com/liftoff/GateOne","commit_stats":{"total_commits":811,"total_committers":35,"mean_commits":23.17142857142857,"dds":0.06535141800246613,"last_synced_commit":"6ae1d01f7fe21e2703bdf982df7353e7bb81a500"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liftoff%2FGateOne","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liftoff%2FGateOne/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liftoff%2FGateOne/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/liftoff%2FGateOne/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/liftoff","download_url":"https://codeload.github.com/liftoff/GateOne/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245194226,"owners_count":20575725,"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":[],"created_at":"2024-07-31T08:00:37.958Z","updated_at":"2025-03-24T01:31:25.365Z","avatar_url":"https://github.com/liftoff.png","language":"JavaScript","readme":"About Gate One\n==============\n`Gate One \u003chttp://liftoffsoftware.com/Products/GateOne\u003e`_ is an HTML5 web-based terminal emulator and SSH client.  Top features:\n\n* No browser plugins required!  Say goodbye to the security problems of Java, Flash, and ActiveX.\n* Multi-user and multi-terminal:  Hundreds of simultaneous users and terminals can be served from ho-hum hardware.\n* Advanced terminal emulation including support for 256 colors, fancy text styles, and more.\n* Supports capturing and displaying images and PDFs inline within terminals (see screenshots).\n* Type in your native language!  Gate One supports Unicode, international keyboard layouts, and localized strings (internationalization or i18n).\n* Natural copy \u0026 paste:  Highlight text and use your browser's native context menu.  On Macs you can use ⌘-c and ⌘-v and on Linux desktops you can middle-click-to-paste.  Shift-Insert works too!\n* Terminal sessions can be resumed even if the browser is closed or disconnected.  They can also be resumed from a completely different computer.  You'll never have to worry about the office VPN disconnecting again!\n* Supports server-side logging of user sessions via any combination of syslog, remote syslog, or directly to disk.\n* Gate One can be embedded into any web application.  A few lines of JavaScript is all it takes!  There's an interactive tutorial covering how to embed available in the `tests` directory (hello_embedded).\n* Many authentication mechanisms are supported:  Anonymous, Kerberos (Single Sign-On with Active Directory!), PAM, Google Auth, and there's an OpenID-like WebSocket API for applications embedding Gate One (see the chat app in the tests directory for an example of how it works).\n* Gate One is easy to customize:  Themes and plugins can add features or override just about anything.  In fact, Gate One's SSH functionality is implemented entirely via a plugin.\n* Plugins can be written in any combination of Python, JavaScript, and CSS.\n* The Gate One server can be stopped \u0026 started without users losing their running terminal applications (even SSH sessions stay connected!).\n* The SSH plugin allows users to duplicate sessions without having to re-enter their username and password (it re-uses the existing SSH tunnel).  It also supports key-based authentication and includes an SSH identity manager that supports RSA, DSA, ECDSA, and even X.509 certificates.\n* The SSH plugin also provides a library of functions that *other* plugins can use to seamlessly execute background operations on the currently-connected terminal.  You can capture this output from JavaScript and do whatever you want with it.\n* The Bookmarks plugin lets you keep track of *all* of your hosts with support for tagging, sorting, and includes a super fast search.  It was built to handle thousands of bookmarks and can be used with whatever URLs you want--it isn't limited to SSH!\n* The Logging plugin includes a Log Viewer that allows users to sort, view, and even export recordings of their terminal sessions to self-contained HTML files that can be shared.  Demonstrating anything on the command line can be as simple as performing the task and clicking a button!\n* The Playback plugin allows users to rewind and play back their connected terminal sessions in real-time, just like a video!  This can be done via the playback controls or by holding the shift key while scrolling.\n* The Convenience plugin adds many convenient capabilities:\n    * IPv4 and IPv6 addresses become clickable elements that can perform a reverse DNS lookup.\n    * The output of 'ls -l' is transformed into clickable elements that can perform user and group lookups, convert bytes into human-readable strings, and even tell you what the 'chmod equivalent' is of the permissions field (e.g. clicking on 'crw-rw-rw-' would tell you, \"(Character Device) with permissions equivalent to 'chmod 0666'\").\n    * Automatic syntax highlighting of syslog messages.\n* The Example plugin demonstrates how to write your own plugins and shows off the SSH plugin's exec_remote_command() functionality.\n* Gate One works with Python 2.6+, Python 3, and even pypy!\n* The daemon that acts as the web server for Gate One is small and light enough to be included in `embedded devices \u003chttp://beagleboard.org/bone\u003e`_.\n\nLicense\n-------\nGate One is dual licensed:  `AGPLv3 \u003chttp://www.gnu.org/licenses/agpl.html\u003e`_ or `Commercial Licensing \u003chttp://liftoffsoftware.com/Products/GateOne\u003e`_.  More information can be found at http://liftoffsoftware.com/\n\nScreenshots\n-----------\n.. figure:: http://i.imgur.com/fb32a.png\n    :align: center\n\n    The Grid View showing multiple terminals\n\n.. figure:: http://i.imgur.com/5P6wy.png\n    :align: center\n\n    Displaying images inline in a terminal\n\n.. figure:: http://i.imgur.com/zRLn3.png\n    :align: center\n\n    A demonstration of some of the Convenience plugin's capabilities\n\n.. figure:: http://i.imgur.com/97CYx.png\n    :align: center\n\n    The Example plugin showing off the real-time load graph and the 'top' widget\n\nDocumentation\n-------------\nThe documentation for Gate One can be found here:  http://liftoff.github.com/GateOne/\n\nAlso, all (this) documentation is in the \"gateone/docs\" directory.  The HTML form is pre-built and ready-to-read.\n\nDemo\n----\nJust press the ESC key on any page at http://liftoffsoftware.com/ to have Gate One drop down into view, Quake-style!\n\nOther Notable Bits\n------------------\nGate One's `termio` and `terminal` Python modules can be used together to automate, screen-scrape, and completely control terminal applications.  The `expect() \u003chttp://liftoff.github.com/GateOne/Developer/termio.html#termio.BaseMultiplex.expect\u003e`_ function can be used as a replacement for `pexpect \u003chttp://pexpect.readthedocs.org/en/latest/\u003e`_ that has some additional features and benefits:\n\n* It can be used asynchronously:  It won't block which means it is perfect for executing commands from a web application.\n* It supports sophisticated decision trees and callbacks:  You can completely re-define all patterns and callbacks on-the-fly based on whatever conditions you want.\n","funding_links":[],"categories":["JavaScript","🎯 Practice Test","Apps","Packages"],"sub_categories":["Courses","Tools","Terminals","Web"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliftoff%2FGateOne","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliftoff%2FGateOne","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliftoff%2FGateOne/lists"}