{"id":13432513,"url":"https://github.com/paololazzari/play","last_synced_at":"2025-10-06T20:19:06.708Z","repository":{"id":199536711,"uuid":"695915883","full_name":"paololazzari/play","owner":"paololazzari","description":"A TUI playground to experiment with your favorite programs, such as grep, sed, awk, jq and yq","archived":false,"fork":false,"pushed_at":"2025-03-28T19:04:26.000Z","size":12078,"stargazers_count":391,"open_issues_count":2,"forks_count":9,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-28T19:42:14.193Z","etag":null,"topics":["awk","cli","go","grep","jq","play","sed","tui","yq"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paololazzari.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2023-09-24T16:03:17.000Z","updated_at":"2025-03-28T18:57:54.000Z","dependencies_parsed_at":"2023-11-10T13:44:45.742Z","dependency_job_id":"4469f151-8ae6-4093-93b0-8df4f318ac59","html_url":"https://github.com/paololazzari/play","commit_stats":null,"previous_names":["paololazzari/play"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/paololazzari/play","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paololazzari%2Fplay","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paololazzari%2Fplay/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paololazzari%2Fplay/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paololazzari%2Fplay/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paololazzari","download_url":"https://codeload.github.com/paololazzari/play/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paololazzari%2Fplay/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278672115,"owners_count":26025841,"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-10-06T02:00:05.630Z","response_time":65,"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":["awk","cli","go","grep","jq","play","sed","tui","yq"],"created_at":"2024-07-31T02:01:12.634Z","updated_at":"2025-10-06T20:19:06.684Z","avatar_url":"https://github.com/paololazzari.png","language":"Go","funding_links":[],"categories":["Go","Query Language","cli","\u003ca name=\"utility\"\u003e\u003c/a\u003eUtilities","Audio and Music","Command Line Tools","查询语言","Table of Contents"],"sub_categories":["HTTP Clients","Other","HTTP客户端"],"readme":"\n# play\n\n[![Go Report](https://img.shields.io/badge/go%20report-A%2B-brightgreen.svg)](https://goreportcard.com/report/github.com/paololazzari/play)\n![Pipeline status](https://github.com/paololazzari/play/actions/workflows/go.yml/badge.svg)\n\nplay is a TUI playground for your favorite programs, such as grep, sed and awk.\n\n\u003cp align=\"center\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/gopher.png\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"docs/gopher.png\"\u003e\n      \u003cimg alt=\"play\" title=\"play\" src=\"docs/gopher.png\" width=\"300\"\u003e\n    \u003c/picture\u003e\n\u003c/p\u003e\n\n# Demo\n\n![](docs/demo.gif)\n\nIt uses the excellent [tview](https://github.com/rivo/tview) library for the UI.\n\n# Installation\n\n```bash\n$ git clone https://github.com/paololazzari/play\n$ cd play\n$ go build -o /usr/local/bin/\n```\n\n# Usage\n\n```bash\n./play \u003cprogram\u003e\n# or\ncat file | ./play \u003cprogram\u003e\n```\n\nN.B. The program must be installed on your machine.\n\nThe input is evaluated immediately as you type without any validation.\nIf you want to use `play` in read-only mode, thus avoding any file changes (such as those that would result if, for instance, `sed -i` was used), then you can use a docker container:\n\n```bash\n$ docker run -e \"TERM=xterm-256color\" --rm -it -v \"$(pwd)\":/play:ro plazzari/play:latest \u003cprogram\u003e\n```\n\nThe `TERM` environment variable is needed to get color themes working properly.\n\nTo exit the application, use `Ctrl+C`.\n\nTo exit the application printing the input expression to stdout, use `Ctrl+S`.\n\n## Key bindings\n\n| Component       | Key           | Description |\n|-----------------|---------------|-------------|\n| Any                  | `Ctrl+C`      | Exit application |\n| Any                  | `Ctrl+S`      | Exit application and print input expression to stdout |\n| Command Options      | `Tab`         | Move focus to positional arguments  |\n| Command Options      | `Shift+Tab`   | Move focus to file picker |\n| Command Options      | `Enter`       | Move focus to output |\n| Positional Arguments | `Tab`         | Move focus to file picker |\n| Positional Arguments | `Shift+Tab`   | Move focus to command options |\n| Positional Arguments | `Enter`       | Move focus to output |\n| Positional Arguments | `Ctrl+O`      | Open wide editor |\n| Wide Editor          | `Esc`         | Close wide editor |\n| Wide Editor          | `Ctrl+O`      | Close wide editor |\n| Wide Editor          | `Ctrl+Enter`  | Enter newline |\n| Wide Editor          | `Enter`       | Move focus to output |\n| File picker          | `Tab`         | Move focus to command options |\n| File picker          | `Shift+Tab`   | Move focus to positional arguments options |\n| File picker          | `Ctrl+O`      | Open selected file/Close selected file | \n| Output               | `Esc`         | Move focus to previous component |\n\n# Credits\n\nThe lovely gopher was created with [gopherkon](https://github.com/quasilyte/gopherkon).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaololazzari%2Fplay","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaololazzari%2Fplay","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaololazzari%2Fplay/lists"}