{"id":13937523,"url":"https://github.com/saitoha/trachet","last_synced_at":"2025-07-28T11:05:24.957Z","repository":{"id":5531554,"uuid":"6734011","full_name":"saitoha/trachet","owner":"saitoha","description":"Tell you what is happening on your terminal","archived":false,"fork":false,"pushed_at":"2016-01-19T13:15:00.000Z","size":2547,"stargazers_count":60,"open_issues_count":2,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-27T09:12:34.270Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://saitoha.github.com/trachet","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saitoha.png","metadata":{"files":{"readme":"README.rst","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-11-17T10:17:46.000Z","updated_at":"2025-05-20T22:37:55.000Z","dependencies_parsed_at":"2022-07-07T00:02:36.597Z","dependency_job_id":null,"html_url":"https://github.com/saitoha/trachet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/saitoha/trachet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saitoha%2Ftrachet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saitoha%2Ftrachet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saitoha%2Ftrachet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saitoha%2Ftrachet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saitoha","download_url":"https://codeload.github.com/saitoha/trachet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saitoha%2Ftrachet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267505099,"owners_count":24098346,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-08-07T23:03:39.634Z","updated_at":"2025-07-28T11:05:24.930Z","avatar_url":"https://github.com/saitoha.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"trachet\n=======\n\nWhat is This?\n-------------\n\n    trachet = tracer + ratchet(step-by-step debugging service)\n\n    This Program runs as a terminal filter process, between Terminals and Applications.\n    It provides step-by-step debugging and formatted sequence tracing service.\n    You can look terminal I/O sequence on realtime, and it enables you to do step-by-step execution.\n\n    http://saitoha.github.io/trachet/\n\n.. image:: https://raw.githubusercontent.com/saitoha/trachet/data/data/trachet1.png\n   :width: 640\n\nInstall\n-------\n\nvia github ::\n\n    $ git clone --recursive https://github.com/saitoha/trachet.git\n    $ cd trachet\n    $ python setup.py install\n\nor via pip ::\n\n    $ pip install trachet\n\n\nUsage\n-----\n\n::\n\n    $ trachet [options] command\n\n* Options::\n\n    -h, --help                  show this help message and exit\n    -o OUTPUT, --output=OUTPUT  specify output device or file\n    -b, --break                 \"break\" the program at the startup time\n    -m, --monochrome            don't use color in output terminal\"\n    --version                   show version\n\n\n* Sequense Tracing\n\n  If you specified TTY device by -o option,\n  you can look I/O sequence tracing on realtime.\n\n\n* Step by Step debugging\n\n - \u003cF6\u003e\n   Toggle trace state ON/OFF.\n\n - \u003cF7\u003e\n   Toggle break state ON/OFF.\n\n - \u003cF8\u003e\n   Step to next char or control sequence.\n\n - \u003cF9\u003e\n   Step to next ESC or CSI sequence.\n\n\n\nQuickStart\n----------\n\n- STEP1\n\n    First, You need to prepare two terminal windows,\n    debugged terminal and output terminal.\n\n    .. image:: https://raw.githubusercontent.com/saitoha/trachet/data/data/trachet_qs1.png\n       :width: 640\n\n- STEP2\n\n    At the output terminal, type \"tty\" command. ::\n\n        $ tty \n        /dev/ttys002\n\n    Now you get output terminal's TTY device name(=/dev/ttys002).\n\n    .. image:: https://raw.githubusercontent.com/saitoha/trachet/data/data/trachet_qs2.png\n\n- STEP3\n\n    At the debugged terminal, launch trachet.\n\n    .. image:: https://raw.githubusercontent.com/saitoha/trachet/data/data/trachet_qs3.png\n       :width: 640\n\n    Run default shell and send formatted I/O sequences to output terminal ::\n\n        $ trachet -o/dev/ttys002\n\n    Run default shell and write non-colored formatted I/O sequences to a text file. ::\n\n        $ trachet -o log.txt\n\n    Run vim and send formatted I/O sequences to output terminal. ::\n\n        $ trachet -o/dev/ttys002 vim \n\n    Run emacs and send formatted I/O sequences to output terminal,\n    and \"break\" emacs on startup time ::\n\n        $ trachet -b -o/dev/ttys002 emacs -nw\n\n    Replay output log created by script(1) step by step. ::\n\n        $ trachet -b -o/dev/ttys002 cat ~/typescript -\n\nHow It Works\n------------\n\n- PTY and Normal Terminal/Application::\n\n       +---------------------------------------------+\n       |                  Terminal                   |\n       +---------+-----------------------------------+\n                 |\n       +---------|-----------------------------------+\n       |  +------+-------+        +---------------+  |\n       |  |    Master    |========|     Slave     |  |\n       |  +--------------+        +-------+-------+  |\n       +----------------------------------|----------+\n                                          |\n       +----------------------------------+----------+\n       |                Application                  |\n       +---------------------------------------------+\n\n\n- TFF (Terminal Filter Framework)::\n\n\n                        Scanner                    Event Driven Parser         Event Dispatcher\n                        +-----+                         +-----+                     +-----+\n      \u003c\u003c I/O Stream \u003e\u003e  |     | \u003c\u003c CodePoint Stream \u003e\u003e  |     | \u003c\u003c Event Stream \u003e\u003e  |     |      \u003c\u003c I/O Stream \u003e\u003e\n    -------------------\u003e|     |------------------------\u003e|     |--------------------\u003e|     |---||--------------------\u003e\n      (Raw Sequences)   |     |    (Unicode Points)     |     |   (Function Call)   |     |       (Raw Sequences)\n                        +-----+                         +-----+                     +--+--+\n                                                   ISO-2022 ISO-6429                   |\n                                                   Compatible Parsing                  |\n                                                                                       v\n                                                                                    +-----+\n                                                                     Event Observer |     |      \u003c\u003c I/O Stream \u003e\u003e\n                                                                      (I/O Handler) |     |---||--------------------\u003e\n                                                                                    |     |       (Raw Sequences)\n                                                                                    +-----+\n- With Trachet... ::\n\n     +----------------------------------------------------------+   +------------------------+\n     |                                                          |   |                        |\n     |                        Terminal                          |   |  Other Device or File  |\n     |                                                          |   |                        |\n     +----------------------------------------------------------+   +------------------------+\n                          |                       ^                              ^\n                          |                       |                              |\n                      \u003c input \u003e               \u003c output \u003e                         |\n                          |                       |                              |\n                          |      +----------------+                              |\n                          |      |                      [ PTY 1 ]                |\n                   +------|------|-------------------------------+               |\n                   |      v      |                               |               |\n                   |  +----------+---+       +----------------+  |               |\n                   |  |    Master    |=======|      Slave     |  |               |\n                   |  +--------------+       +--+-------------+  |               |\n                   |                            |        ^       |               |\n                   +----------------------------|--------|-------+               |\n                                                |        |                       |\n                                            \u003c input \u003e    |                       |\n                                                |        |                   \u003c trace \u003e\n                                +---------------+    \u003c output \u003e                  |\n                                |                        |                       |\n        [ Trachet Process ]     |                        |                       |\n     +--------------------------|------------------------|---------------+       |\n     |                          |                        |               |       |\n     |              +-----------|-------\u003c\u003c TFF \u003e\u003e--------|------------+  |       |\n     |              |           v                        |            |  |       |\n     |  \u003c control \u003e |  +-----------------+     +---------+---------+  |  |       |\n     |       +-----\u003e|  |  InputHandler   |     |   OutputHandler   |  |  |       |\n     |       |      |  +--+-----+----+---+     +--+----------------+  |  |       |\n     |       |      |     |     |    |            |      ^            |  |       |\n     |       |      +-----|-----|----|------------|------|------------+  |       |\n     |       |            |     |    |            |      |               |       |\n     |       |            |     |    |            |      |               |       |\n     |       |            v     |    v            v      |               |       |\n     |  +----+---------------+  |  +----------------+    |               |       |\n     |  |  ActionController  |  |  |     Tracer     |----------------------------+\n     |  +--------------------+  |  +----------------+    |               |\n     |                          |                        |               |\n     +--------------------------|------------------------|---------------+\n                                |                        |\n                            \u003c input \u003e                \u003c output \u003e\n                                |                        |\n                                |       +----------------+\n                                |       |\n                                |       | [ PTY 2 ]\n                        +-------|-------|-----------------------------+\n                        |       v       |                             |\n                        |  +------------+--+       +---------------+  |\n                        |  |    Master     |=======|     Slave     |  |\n                        |  +---------------+       +----+----------+  |\n                        |                               |      ^      |\n                        +-------------------------------|------|------+\n                                                        |      |\n                                   +--------------------+      |\n                                   |                           |\n                               \u003c input \u003e                   \u003c output \u003e\n                                   |                           |\n                                   v                           |\n     +---------------------------------------------------------+-----------------------------+\n     |                                                                                       |\n     |                                  Target Application                                   |\n     |                                                                                       |\n     +---------------------------------------------------------------------------------------+\n\n\nDependency\n----------\n\n - TFF - Terminal Filter Framework\n   https://github.com/saitoha/tff\n\nReference\n---------\n\n - vt100.net\n   http://vt100.net/\n \n - Private Control Functions used by DEC\n   http://vt100.net/emu/ctrlfunc_dec.html\n\n - Xterm Control Sequences\n   http://invisible-island.net/xterm/ctlseqs/ctlseqs.html\n \n - TeraTerm / Supported Control Functions\n   http://ttssh2.sourceforge.jp/manual/en/about/ctrlseq.html\n \n - MinTTY / Mintty-specific control sequences\n   http://code.google.com/p/mintty/wiki/CtrlSeqs\n \n - RLogin / Supported control codes\n   http://nanno.dip.jp/softlib/man/rlogin/ctrlcode.html\n \n\nLicense\n---------\n\n GNU GENERAL PUBLIC LICENSE Version 3\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaitoha%2Ftrachet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaitoha%2Ftrachet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaitoha%2Ftrachet/lists"}