{"id":24341325,"url":"https://github.com/veracioux/tuterm","last_synced_at":"2025-09-28T02:30:50.722Z","repository":{"id":43211088,"uuid":"370155077","full_name":"veracioux/tuterm","owner":"veracioux","description":"A better way to learn CLI programs.","archived":false,"fork":false,"pushed_at":"2022-10-08T13:10:24.000Z","size":116,"stargazers_count":25,"open_issues_count":8,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-08T21:34:26.213Z","etag":null,"topics":["bash","bash-script","cli","demo","good-first-project","hacktoberfest","linux","terminal","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/veracioux.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-23T20:53:07.000Z","updated_at":"2023-02-07T07:55:19.000Z","dependencies_parsed_at":"2023-01-19T16:03:39.306Z","dependency_job_id":null,"html_url":"https://github.com/veracioux/tuterm","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veracioux%2Ftuterm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veracioux%2Ftuterm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veracioux%2Ftuterm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veracioux%2Ftuterm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/veracioux","download_url":"https://codeload.github.com/veracioux/tuterm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234475345,"owners_count":18839363,"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","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":["bash","bash-script","cli","demo","good-first-project","hacktoberfest","linux","terminal","tutorial"],"created_at":"2025-01-18T07:15:05.407Z","updated_at":"2025-09-28T02:30:45.392Z","avatar_url":"https://github.com/veracioux.png","language":"Shell","readme":"\u003ch1 align=\"center\"\u003etuterm\u003c/h1\u003e\n\u003ch2 align=\"center\"\u003eLearn the CLI by doing instead of watching\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://aur.archlinux.org/packages/tuterm/\"\u003e \u003cimg src=\"https://img.shields.io/aur/version/tuterm?label=AUR\" alt=\"AUR\"/\u003e \u003c/a\u003e\n  \u003ca href=\"./LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-blueviolet\" alt=\"License\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://matrix.to/#/#tuterm:matrix.org\"\u003e\n    \u003cimg src=\"https://img.shields.io/static/v1?label=chat\u0026message=matrix\u0026color=%23c2185b\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://asciinema.org/a/427932\" target=\"_blank\"\u003e\n    \u003cimg width=\"75%\" src=\"https://gist.github.com/veracioux/66336d488e8d87c7b3fb696c5dbd93d1/raw/4b8bc0b043faf166abc92e12fc0bfb5acea55345/tuterm-demo.svg\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n**Also check out:** [A collection of tutorials for your favorite CLI programs][collection]\n\nTuterm is a framework for running and creating real-time interactive tutorials\nand demonstrations of CLI programs.\n\nKey features:\n\n**For users**\n* Ridiculously easy to use\n* Step by step instructions\n* Learn at your own pace\n* No mistakes possible\n* Customizable colors, delays and prompts\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://asciinema.org/a/428011\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://gist.github.com/veracioux/66336d488e8d87c7b3fb696c5dbd93d1/raw/6b79b61de44e11e561c67b8f91446f14895e85ae/tuterm-customization-demo.svg\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n**For tutorial creators**\n* Nothing more than a bash extension\n* Create interactive tutorials and non-interactive demos with the same code\n* Simple framework and minimalistic design\n* Well documented\n* Doesn't reinvent the wheel\n* 100% repeatable\n\n# Example\n\nThe following script defines a short tutorial/demo for the command `ls`.\n```bash\n# file: ls_tutorial\nconfigure() {\n    DELAY=0.09\n    DELAY_SEP=0.12\n    DELAY_PROMPT=1.5\n    COLOR_MESSAGE='1;32'\n}\n\nrun() {\n    mkdir dir\n    touch file1 file2 .file3 dir/file\n    M \"Let's just run the command.\"\n    cmdline ls\n    M \"The -a option shows hidden files.\"\n    # c is an alias for cmdline\n    c ls -a\n    M \"The -R option recurses into directories\"\n    c ls -R\n    M \"You can also see the file modes\"\n    c ls -l\n}\n```\nThis script is run as:\n```shell\ntuterm ls_tutorial --mode MODE\n```\nThere are two supported MODEs: tutorial and demo. Demo mode types out the\ncommands in real time just like a human would. Tutorial mode shows the user what\nto type and then waits for them to type it, correcting any mistakes.\n\nDemo mode is great for creating terminal recordings. The video below was\ngenerated using asciinema:\n\n```shell\nasciinema rec -c 'tuterm ls_tutorial --mode demo' ls_tutorial.cast\n```\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://asciinema.org/a/XT938YRCtcrPAhnCkd5H6MsS4\" target=\"_blank\"\u003e\n    \u003cimg width=\"50%\" src=\"https://gist.github.com/veracioux/66336d488e8d87c7b3fb696c5dbd93d1/raw/4b8bc0b043faf166abc92e12fc0bfb5acea55345/tuterm-example-ls.svg\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Installation\n\n## Arch Linux\n\n```shell\n[aur-helper] -S tuterm\n```\n\n## From source\n\nAfter cloning this repository or downloading the source code, simply run\n\n```shell\nmake install\n```\n(You may need to use `sudo`)\n\nThis will install tuterm under `/usr/local`. You can change this by setting `PREFIX=/your/path/of/choice`.\n\n# Documentation\n\nEverything is documented inside the man page that is installed with tuterm.\n\n# Projects using tuterm\n\n# Contributing\n\nPlease, feel free to report any issues or feature requests [here][issues].\nBut before you do that, have a look at [TODO](./TODO.org).\n(this file will steadily dissolve into GitHub issues)\n\nIf you want to submit a bug fix, you can simply open a pull request. But if you\nwant to add a new feature, open an issue so we can discuss it first.\n\nEveryone is welcome to contribute.\n\n*A note: Tuterm is a simple program, so most issues or features should be a good choice for a beginner.*\n\n[collection]: https://github.com/veracioux/tuterm-collection\n[issues]: https://github.com/veracioux/tuterm/issues\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveracioux%2Ftuterm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fveracioux%2Ftuterm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveracioux%2Ftuterm/lists"}