termpair


Nametermpair JSON
Version 0.1.0.2 PyPI version JSON
download
home_pagehttps://github.com/cs01/termpair
SummaryView and control remote terminals from your browser with end-to-end encryption
upload_time2020-10-17 22:20:21
maintainer
docs_urlNone
authorChad Smith
requires_python>=3.6
licenseLicense :: OSI Approved :: MIT License
keywords e2ee secure terminal share broadcast pty websockets
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div style="text-align: center">
    <img src="https://github.com/cs01/termpair/raw/master/termpair/frontend_src/src/logo.png"/>
    <p>View and control remote terminals from your browser with end-to-end encryption</p>

</div>

**Documentation**: [https://cs01.github.io/termpair](https://cs01.github.io/termpair)

**Source Code**: [https://github.com/cs01/termpair](https://github.com/cs01/termpair)

**Try It**: [https://grassfedcode.com/termpair](https://grassfedcode.com/termpair)

## <a href="https://badge.fury.io/py/termpair"><img src="https://badge.fury.io/py/termpair.svg" alt="PyPI version" height="18"></a>

## What is TermPair?

TermPair lets developers securely share and control terminals in real time.

<div style="text-align: center">
   <a href="https://github.com/cs01/termpair/raw/master/termpair_browser.gif"> <img src="https://github.com/cs01/termpair/raw/master/termpair_browser.gif"/></a>
</div>

## Usage

Start the TermPair server, or use the one already running at [https://grassfedcode.com/termpair](https://grassfedcode.com/termpair).

```
>> termpair serve
INFO:     Started server process [15455]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://localhost:8000 (Press CTRL+C to quit)
INFO:     ('127.0.0.1', 35470) - "WebSocket /connect_to_terminal" [accepted]
```

Then share your terminal by running:

```
>> termpair share --port 8000
--------------------------------------------------------------------------------
Running '/bin/bash' and sharing to 'http://localhost:8000/?terminal_id=b26903e19ffff2bc9ace60491e8200d5'.
Type 'exit' or close terminal to stop sharing.
--------------------------------------------------------------------------------
```

You can share that URL with whoever you want. Note that anyone that has it can view and possibly control your terminal.

The server multicasts terminal output to all browsers that connect to the session.

## Security

Termpair uses AES-GCM 128 bit end-to-end encryption for all terminal input and output.

### How it Works

Before termpair sends terminal output to the server, it encrypts it using a secret key so the server cannot read it. The server forwards that data to connected browsers. When the browsers receive the data, they use the secret key to decrypt and display the terminal output.

Likewise, when a browser sends input to the terminal, it is encrypted in the browser, forwarded from the server to the terminal, then decrypted in the terminal by termpair and written to the terminal's input. The secret key is generated by termpair and embedded in a [part of the url](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash) that is not sent to the server.


## Run With Latest Version

Use [pipx](https://github.com/pipxproject/pipx) to run the latest version without installing:

Serve:
```
>> pipx run termpair serve
```

Then share:
```
>> pipx run termpair share -b  # -b flag opens the browser automatically
```

## Installation

You can install using [pipx](https://github.com/pipxproject/pipx) or pip:

```
>> pipx install termpair
```

or

```
>> pip install termpair
```

## API

To view the command line API reference, run:

```
>> termpair --help
```

## System Requirements

Python: 3.6+

Operating System:

- To view/control from the browser: All operating systems are supported.
- To run the server, `termpair serve`: Tested on Linux. Should work on macOS. Might work on Windows.
- To share your terminal, `termpair share`: Tested on Linux. Should work on macOS. Probably doesn't work on Windows.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/cs01/termpair",
    "name": "termpair",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "e2ee,secure,terminal,share,broadcast,pty,websockets",
    "author": "Chad Smith",
    "author_email": "grassfedcode@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/e8/99/8ca964ceecc2a78617a31b4a314808a6ff4bf97efb685ea347d134971dbf/termpair-0.1.0.2.tar.gz",
    "platform": "",
    "description": "<div style=\"text-align: center\">\n    <img src=\"https://github.com/cs01/termpair/raw/master/termpair/frontend_src/src/logo.png\"/>\n    <p>View and control remote terminals from your browser with end-to-end encryption</p>\n\n</div>\n\n**Documentation**: [https://cs01.github.io/termpair](https://cs01.github.io/termpair)\n\n**Source Code**: [https://github.com/cs01/termpair](https://github.com/cs01/termpair)\n\n**Try It**: [https://grassfedcode.com/termpair](https://grassfedcode.com/termpair)\n\n## <a href=\"https://badge.fury.io/py/termpair\"><img src=\"https://badge.fury.io/py/termpair.svg\" alt=\"PyPI version\" height=\"18\"></a>\n\n## What is TermPair?\n\nTermPair lets developers securely share and control terminals in real time.\n\n<div style=\"text-align: center\">\n   <a href=\"https://github.com/cs01/termpair/raw/master/termpair_browser.gif\"> <img src=\"https://github.com/cs01/termpair/raw/master/termpair_browser.gif\"/></a>\n</div>\n\n## Usage\n\nStart the TermPair server, or use the one already running at [https://grassfedcode.com/termpair](https://grassfedcode.com/termpair).\n\n```\n>> termpair serve\nINFO:     Started server process [15455]\nINFO:     Waiting for application startup.\nINFO:     Application startup complete.\nINFO:     Uvicorn running on http://localhost:8000 (Press CTRL+C to quit)\nINFO:     ('127.0.0.1', 35470) - \"WebSocket /connect_to_terminal\" [accepted]\n```\n\nThen share your terminal by running:\n\n```\n>> termpair share --port 8000\n--------------------------------------------------------------------------------\nRunning '/bin/bash' and sharing to 'http://localhost:8000/?terminal_id=b26903e19ffff2bc9ace60491e8200d5'.\nType 'exit' or close terminal to stop sharing.\n--------------------------------------------------------------------------------\n```\n\nYou can share that URL with whoever you want. Note that anyone that has it can view and possibly control your terminal.\n\nThe server multicasts terminal output to all browsers that connect to the session.\n\n## Security\n\nTermpair uses AES-GCM 128 bit end-to-end encryption for all terminal input and output.\n\n### How it Works\n\nBefore termpair sends terminal output to the server, it encrypts it using a secret key so the server cannot read it. The server forwards that data to connected browsers. When the browsers receive the data, they use the secret key to decrypt and display the terminal output.\n\nLikewise, when a browser sends input to the terminal, it is encrypted in the browser, forwarded from the server to the terminal, then decrypted in the terminal by termpair and written to the terminal's input. The secret key is generated by termpair and embedded in a [part of the url](https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/hash) that is not sent to the server.\n\n\n## Run With Latest Version\n\nUse [pipx](https://github.com/pipxproject/pipx) to run the latest version without installing:\n\nServe:\n```\n>> pipx run termpair serve\n```\n\nThen share:\n```\n>> pipx run termpair share -b  # -b flag opens the browser automatically\n```\n\n## Installation\n\nYou can install using [pipx](https://github.com/pipxproject/pipx) or pip:\n\n```\n>> pipx install termpair\n```\n\nor\n\n```\n>> pip install termpair\n```\n\n## API\n\nTo view the command line API reference, run:\n\n```\n>> termpair --help\n```\n\n## System Requirements\n\nPython: 3.6+\n\nOperating System:\n\n- To view/control from the browser: All operating systems are supported.\n- To run the server, `termpair serve`: Tested on Linux. Should work on macOS. Might work on Windows.\n- To share your terminal, `termpair share`: Tested on Linux. Should work on macOS. Probably doesn't work on Windows.\n\n\n",
    "bugtrack_url": null,
    "license": "License :: OSI Approved :: MIT License",
    "summary": "View and control remote terminals from your browser with end-to-end encryption",
    "version": "0.1.0.2",
    "split_keywords": [
        "e2ee",
        "secure",
        "terminal",
        "share",
        "broadcast",
        "pty",
        "websockets"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "4cb65a0ad357a495cab7daed99353e53",
                "sha256": "f52d6ab34c37a8671d897a9ecd17e7448228cf9253e1d65160841de5bab236a1"
            },
            "downloads": -1,
            "filename": "termpair-0.1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4cb65a0ad357a495cab7daed99353e53",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 532185,
            "upload_time": "2020-10-17T22:20:19",
            "upload_time_iso_8601": "2020-10-17T22:20:19.874666Z",
            "url": "https://files.pythonhosted.org/packages/34/16/013c8da36a2140315d093f7adfd6913a9bcd0eef727cb15d400d70c4d83a/termpair-0.1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "md5": "fd8cffba349570fc38c652fa9b1c2d4d",
                "sha256": "a91d91c3b73532ac72ac23877f66d7e4156f98f9c1e5045432779385e6090a7f"
            },
            "downloads": -1,
            "filename": "termpair-0.1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "fd8cffba349570fc38c652fa9b1c2d4d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 524780,
            "upload_time": "2020-10-17T22:20:21",
            "upload_time_iso_8601": "2020-10-17T22:20:21.999523Z",
            "url": "https://files.pythonhosted.org/packages/e8/99/8ca964ceecc2a78617a31b4a314808a6ff4bf97efb685ea347d134971dbf/termpair-0.1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2020-10-17 22:20:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": null,
    "github_project": "cs01",
    "error": "Could not fetch GitHub repository",
    "lcname": "termpair"
}
        
Elapsed time: 0.17354s