{ "info": { "author": "Ryan Kelly", "author_email": "ryan@rfk.id.au", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5" ], "description": "playitagainsam: record and replay interactive terminal sessions\n================================================================\n\nPlayitagainsam is a tool and a corresponding file format for recording\nand replaying interactive terminal sessions. It takes inspiration from\nthe unix commands \"script\" and \"ttyrec\" and the python tool \"playerpiano\".\n\nUseful features include:\n\n * ability to replay with fake typing for enhanced \"interactivity\"\n * ability to replay synchronized output in multiple terminals\n\nIt's early days, still kinda buggy and easy to crash. But I hope this will\nbe resolved in short order!\n\n\nBasic Usage\n-----------\n\nRun the software using either the included \"pias\" script, or using the\npython module-running syntax of \"python -m playitagainsam\".\n\nRecord a session like this::\n\n $ pias record \n\nThis will drop you into a shell and record all the input and output that\noccurs during the session. Once you exit the shell, all activity will be\nwritten into the output file as a JSON document.\n\nReplay a recorded session like this::\n\n $ pias play \n\nThis will start a simulated playback of the original shell. Press any keys\nto type, and hit \"enter\" when you reach the end of a line.\n\n\nExtra Features\n--------------\n\nPlayitagainsam has some extra features that distinguish it from similar\nsolutions.\n\n\nMultiple Terminals\n~~~~~~~~~~~~~~~~~~\n\nIt's possible to record activity in several terminals simultaneously as part\nof a single session, which can be useful for e.g. demonstrating a server\nprocess in one terminal and a client process in another. Join a new terminal\nto an existing recording session like this::\n\n $ pias --join record \n\n\nChoice of Manual or Automated Typing\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nWhile the default playback mode assumes interactive typing, it is also possible\nto have pias type automatically for you. You can have it enter individual\ncommands but wait for you to manually trigger each newline like this::\n\n $ pias play --auto-type\n\nOr you can have it automatically type all input like this::\n\n $ pias play --auto-type --auto-waypoint\n\nThese options both accept an integer millisecond value which will control the\nspeed of the automated typing.\n\n\nCanned Replay or Live Replay?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe default playback mode outputs back the 'canned' output text from the\noriginal terminal session(s), without any side effects. However, the side \neffects might be desirable during the presentation. \n\nFor instance, when demoing a REST API, the presenter might want to show the \neffects of the API calls on a service using a browser. Or the demoed code \ncould drive some other non-console output, like a visualisation or a game. \n\nThe --live-replay option connects the prerecorded input to a live shell for\nactual live output and side effects:\n\n $ pias play --live-replay\n\nThis option is composable with the previous ones:\n\n $ pias play --live-replay --auto-type --auto-waypoint\n\nLive replay also works two or more joined terminal sessions.\n\n\nJavaScript Player\n~~~~~~~~~~~~~~~~~\n\nThere is a javascript-based player that can be used to embed a recorded session\ninto a HTML document. This is useful for websites or HTML-based presentations.\nThe code is here:\n\n https://github.com/rfk/playitagainsam-js/\n\nAnd an example presentation using this code is at:\n\n https://github.com/rfk/talk-webapitesting/\n\n\nGotchas\n-------\n\nGetting this all running just right can be tricky business! Here's some thing\nthat you should be aware of:\n\n * All terminals should be using utf8 encoding, or you'll see strange output\n and probably some outright errors.\n\n * All terminals in a session should be the same size. This restriction\n may go away in the future.\n\n * The live-replay option has its own particularities:\n\n * Sessions created with the --append switch won't continue after the first\n recording session ends.\n\n * Sometimes keypresses \"bounce\", and double characters get inserted.\n\n * Some live-replay output sequences lasting longer than the corresponding\n output in the recording session can get buffered waiting for the next \n user action.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rfk/playitagainsam", "keywords": "shell record presentation tutorial", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "playitagainsam", "package_url": "https://pypi.org/project/playitagainsam/", "platform": "", "project_url": "https://pypi.org/project/playitagainsam/", "project_urls": { "Homepage": "https://github.com/rfk/playitagainsam" }, "release_url": "https://pypi.org/project/playitagainsam/0.5.0/", "requires_dist": null, "requires_python": "", "summary": "record and replay interactive terminal sessions", "version": "0.5.0" }, "last_serial": 2481524, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "feae4604afd53d7f2be22a6bb7291507", "sha256": "77c708a38c1c4b586650acb0a08214f559491a4b965a34627b65565b96cd7d65" }, "downloads": -1, "filename": "playitagainsam-0.1.0.tar.gz", "has_sig": false, "md5_digest": "feae4604afd53d7f2be22a6bb7291507", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10884, "upload_time": "2012-09-08T04:07:41", "url": "https://files.pythonhosted.org/packages/c9/79/948c1624fb37db562d46bd1302472feecd329898712dfa376dcbc437176d/playitagainsam-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "57e8181aa01983e5d7786b1b8e2cec6f", "sha256": "33cc717783737f1d0cc9ff8894ea31a140036d33a4ba211a343a2f77f7930f0c" }, "downloads": -1, "filename": "playitagainsam-0.2.0.tar.gz", "has_sig": false, "md5_digest": "57e8181aa01983e5d7786b1b8e2cec6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11576, "upload_time": "2012-09-08T04:44:17", "url": "https://files.pythonhosted.org/packages/7f/32/17fee3954e8d0f004dd5f0bf74026d17274a3cec22ab3340f9dbb1365bcd/playitagainsam-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "32defc1425f60123d2735987f694dc78", "sha256": "95f0be393f8d55a4bb5be28510b50f8093b91e3d507e8e970843290a7f1e3dd3" }, "downloads": -1, "filename": "playitagainsam-0.2.1.tar.gz", "has_sig": false, "md5_digest": "32defc1425f60123d2735987f694dc78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11960, "upload_time": "2012-09-25T14:17:44", "url": "https://files.pythonhosted.org/packages/bd/e8/482ba4eee18afff1ac905503e7ec5d80b727a626e211ab618b9937dc831b/playitagainsam-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "ce438dd019cf86222cc122cea44fc853", "sha256": "302fe5fc8a3b4ee70d493faf298cb0f2907f50c4867be6de7ce7f6338aa8d74b" }, "downloads": -1, "filename": "playitagainsam-0.3.0.tar.gz", "has_sig": false, "md5_digest": "ce438dd019cf86222cc122cea44fc853", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15080, "upload_time": "2014-03-12T10:04:20", "url": "https://files.pythonhosted.org/packages/b1/71/8c2e320b12e42c8fe29176c194bdf7861c3236221bcec7ac447dc1373c8b/playitagainsam-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "5c42f312dbed84512bc3a2fa647661aa", "sha256": "91c913cbf92d3732a25808f0bff6243b983b2c9c984aa84c361358e8b493c2f5" }, "downloads": -1, "filename": "playitagainsam-0.4.0.tar.gz", "has_sig": false, "md5_digest": "5c42f312dbed84512bc3a2fa647661aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15802, "upload_time": "2015-04-27T11:07:23", "url": "https://files.pythonhosted.org/packages/18/bf/729567be5cfca7016d7eb9db165c8cc273dcb12747868c8a93ed1ef9294a/playitagainsam-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "e6c2e6348f68ca2faf44b58ed17ad552", "sha256": "2330c6d58888326375bf1b7b31f829527ae5c0b7835ca36b735a5a32e9da335e" }, "downloads": -1, "filename": "playitagainsam-0.5.0.tar.gz", "has_sig": false, "md5_digest": "e6c2e6348f68ca2faf44b58ed17ad552", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15914, "upload_time": "2016-11-24T20:18:14", "url": "https://files.pythonhosted.org/packages/9e/e0/416edc19969f6ecd6f720fd50c10b646d8b128292271a749171dd6a166c1/playitagainsam-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e6c2e6348f68ca2faf44b58ed17ad552", "sha256": "2330c6d58888326375bf1b7b31f829527ae5c0b7835ca36b735a5a32e9da335e" }, "downloads": -1, "filename": "playitagainsam-0.5.0.tar.gz", "has_sig": false, "md5_digest": "e6c2e6348f68ca2faf44b58ed17ad552", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15914, "upload_time": "2016-11-24T20:18:14", "url": "https://files.pythonhosted.org/packages/9e/e0/416edc19969f6ecd6f720fd50c10b646d8b128292271a749171dd6a166c1/playitagainsam-0.5.0.tar.gz" } ] }