{"id":44019797,"url":"https://github.com/crramirez/casciian-ptypipe","last_synced_at":"2026-02-07T16:08:54.433Z","repository":{"id":334789350,"uuid":"1131830181","full_name":"crramirez/casciian-ptypipe","owner":"crramirez","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-27T00:12:24.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-27T08:32:40.970Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","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/crramirez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-10T19:22:20.000Z","updated_at":"2026-01-27T00:12:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/crramirez/casciian-ptypipe","commit_stats":null,"previous_names":["crramirez/casciian-ptypipe"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/crramirez/casciian-ptypipe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crramirez%2Fcasciian-ptypipe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crramirez%2Fcasciian-ptypipe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crramirez%2Fcasciian-ptypipe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crramirez%2Fcasciian-ptypipe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crramirez","download_url":"https://codeload.github.com/crramirez/casciian-ptypipe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crramirez%2Fcasciian-ptypipe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29199519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T14:35:27.868Z","status":"ssl_error","status_checked_at":"2026-02-07T14:25:51.081Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2026-02-07T16:08:53.728Z","updated_at":"2026-02-07T16:08:54.425Z","avatar_url":"https://github.com/crramirez.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"ptypipe\n=======\n\n\nptypipe is a small command-line utility that runs its first argument\nin a pseudo terminal created with forkpty().  This is handy for the\nfollowing cases:\n\n* Undoing glibc's behavior of buffering stdin/stdout, which makes\n  pipe-based wrapped command shells useless.\n\n* Using a different window size for programs than the controlling\n  TTY.\n\n* Notifying a pipe-based wrapped shell that the window size has\n  changed.\n\nOne can get a similar result to this program through other means.  The\n'script' utility supplied in most POSIX-like systems can emulate a\nTTY.  'pipetty' (licensed GPL) is also available from the KBtin\nsource.\n\n\nUsage\n-----\n\n```\nptypipe { command } { arguments }\n```\n\n\nResizable Window Support\n------------------------\n\nptypipe monitors its stdin for the dtterm/xterm sequence:\n\n```\nESC [ 8 ; { rows } ; { cols } t\n```\n\nIf this sequence is seen, it is stripped from the input to the child\nprocess and ioctl(TIOCSWINSZ) is executed to notify the child of a new\nwindow size.  One could thus do something like:\n\n```\n/bin/echo -ne \"\\033[8;20;40t\" | ptypipe ls\n```\n\n...and ls will execute with a window size of 20 rows by 40 columns.\n\n[Jexer](https://gitlab.com/AutumnMeowMeow/jexer) illustrates how\nptypipe can work for a larger program.  Jexer is 100% Java, but needs\nto spawn interactive terminals.  It can do this with either 'script'\nor 'ptypipe'.  Using 'script' results in terminal windows that cannot\nbe resized; using 'ptypipe' those terminal windows resize as expected\nin modern programs.\n\n\nCopyright Status\n----------------\n\nTo the extent possible under law, the author(s) of ptypipe have\ndedicated all copyright and related and neighboring rights to ptypipe\nto the public domain worldwide. This software is distributed without\nany warranty.  The COPYING file describes this intent, and provides a\npublic license fallback for those jurisdictions that do not recognize\nthe public domain.\n\nThis code has been dedicated to the public domain, and are free for\nrelicense.  People are free to replace the copyright headers with\nwhatever works for them -- no need to keep the current name on it.\nThis repository will stay frozen and public domain, in case people\nneed proof that this code really is free for everyone.\n\n\nBugs\n----\n\nIf an ESC is in the stream ahead of a correct resize sequence, the\nresize sequence is not noticed and will be emitted to the child\nprocess.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrramirez%2Fcasciian-ptypipe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrramirez%2Fcasciian-ptypipe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrramirez%2Fcasciian-ptypipe/lists"}