{"id":34502661,"url":"https://github.com/joknarf/shellme","last_synced_at":"2026-01-02T16:17:07.751Z","repository":{"id":327884517,"uuid":"1111124888","full_name":"joknarf/shellme","owner":"joknarf","description":"shell interactive session typing and executing commands","archived":false,"fork":false,"pushed_at":"2025-12-21T11:11:33.000Z","size":7,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-23T02:59:24.570Z","etag":null,"topics":["command-line-tool","demo","robot","shell"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joknarf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-12-06T10:19:26.000Z","updated_at":"2025-12-22T06:08:37.000Z","dependencies_parsed_at":"2025-12-10T05:08:26.875Z","dependency_job_id":null,"html_url":"https://github.com/joknarf/shellme","commit_stats":null,"previous_names":["joknarf/shellme"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joknarf/shellme","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joknarf%2Fshellme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joknarf%2Fshellme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joknarf%2Fshellme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joknarf%2Fshellme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joknarf","download_url":"https://codeload.github.com/joknarf/shellme/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joknarf%2Fshellme/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27992997,"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-12-24T02:00:07.193Z","response_time":83,"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":["command-line-tool","demo","robot","shell"],"created_at":"2025-12-24T02:11:31.671Z","updated_at":"2026-01-02T16:17:07.745Z","avatar_url":"https://github.com/joknarf.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Joknarf Tools](https://img.shields.io/badge/Joknarf%20Tools-Visit-darkgreen?logo=github)](https://joknarf.github.io/joknarf-tools)\n[![bash](https://img.shields.io/badge/shell-bash%20|%20zsh%20|%20ksh%20-blue.svg)]()\n[![Licence](https://img.shields.io/badge/licence-MIT-blue.svg)](https://shields.io/)\n\n# shellme\n\n`shellme` plays scripted commands (type and execute) in a interactive shell as it is done by a human.\n\nCan be used to create simple demos to record with other tools, so you don't have to really type commands in good timing and without mistakes to record a demo video.\n\n![shellme](https://github.com/user-attachments/assets/584957b6-89c2-4ade-b5ed-638bfdbd16d1)\n\n`shellme` just spawn an interactive shell using `expect` and is expecting shell prompt, then it type first command and press enter (execution) then wait to get next prompt...\n\n(no commands with interactive response can be used, shellme only launch commands on prompt, use directly `expect` if you need interactivity)\n\n```\n# shellme \"echo This is a demo\" \"ls -l\"\n```\n\n## prerequisites\n\n* expect\n\n## usage\n\n```\nshellme [--prompt \u003cregexp\u003e] [--sleep \u003cbefore_s\u003e \u003cafter_s\u003e] \\\n        [--speed \u003cbase_ms\u003e \u003cjitter_ms\u003e] \\\n        [-f \u003cfile_with_commands\u003e] | \u003ccmd1\u003e \u003ccmd2\u003e ...\n\n  regexp    : regexp to expect to get prompt, default '\\n?.*[$#] $'\n  before_s  : seconds to wait before typing, default 2\n  after_s   : seconds to wait after typing, default 2\n  base_ms   : typing char mseconds, default 120\n  jitter_ms : typing jitter mseconds, default 120\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoknarf%2Fshellme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoknarf%2Fshellme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoknarf%2Fshellme/lists"}