{"id":28506133,"url":"https://github.com/yurenchen000/howto.sh","last_synced_at":"2026-04-19T10:32:44.530Z","repository":{"id":295281686,"uuid":"989681240","full_name":"yurenchen000/howto.sh","owner":"yurenchen000","description":"AI bash completion, bash implemention of https://github.com/antonmedv/howto","archived":false,"fork":false,"pushed_at":"2025-09-17T07:50:21.000Z","size":26,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-17T09:35:32.089Z","etag":null,"topics":["ai","bash","completion","deepseek-ai","llm","shell"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/yurenchen000.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-05-24T15:52:37.000Z","updated_at":"2025-09-17T07:50:24.000Z","dependencies_parsed_at":"2025-05-24T17:27:02.576Z","dependency_job_id":"867e3f48-61e4-4a36-978a-0a85eb9827da","html_url":"https://github.com/yurenchen000/howto.sh","commit_stats":null,"previous_names":["yurenchen000/howto.sh"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/yurenchen000/howto.sh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yurenchen000%2Fhowto.sh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yurenchen000%2Fhowto.sh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yurenchen000%2Fhowto.sh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yurenchen000%2Fhowto.sh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yurenchen000","download_url":"https://codeload.github.com/yurenchen000/howto.sh/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yurenchen000%2Fhowto.sh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32004035,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"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":["ai","bash","completion","deepseek-ai","llm","shell"],"created_at":"2025-06-08T19:31:57.015Z","updated_at":"2026-04-19T10:32:44.522Z","avatar_url":"https://github.com/yurenchen000.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"howto.sh\n========\n\nthe bash version of\nhttps://github.com/antonmedv/howto\n\n\n[![asciicast demo1](https://asciinema.org/a/721054.svg)](https://asciinema.org/a/721054)\n\n[![asciicast demo2](https://asciinema.org/a/721064.svg)](https://asciinema.org/a/721064)\n\n## usage\nin bash\n\n### 1. setup\n\n```bash\n$ source howto.sh  bind1\n\n## for DeepSeek (is slow)\n$ HOWTO_APIURL='https://api.deepseek.com/v1/chat/completions'\n$ HOWTO_APIKEY='YOUR DEEPSEEK APIKEY'\n$ HOWTO_MODEL='deepseek-chat'\n\n## for OpenAI (or compatible api)\n$ HOWTO_APIURL='https://api.openai.com/v1/chat/completions'\n$ HOWTO_APIKEY='YOUR OPENAI APIKEY'\n$ HOWTO_MODEL='gpt-4o'\n\n## for Qwen (Pretty fast, Not openai compatible)\n$ HOWTO_APIURL='https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation'\n$ HOWTO_APIKEY='YOUR QWEN APIKEY'\n$ HOWTO_MODEL='qwen-plus-latest'  # better\n\n\n## qwen models\nHOWTO_MODEL='qwen-flash'\n\nHOWTO_MODEL='qwen-turbo'\nHOWTO_MODEL='qwen-turbo-latest' ## fine\n\nHOWTO_MODEL='qwen-plus'\nHOWTO_MODEL='qwen-plus-latest'  ## fine 2\n\nHOWTO_MODEL='qwen-max-latest'   ## fine\nHOWTO_MODEL='qwen-max'          ## fine 2\n```\n\nNOTE: `HOWTO_APIURL` can be omitted (guess from `HOWTO_MODEL`)\n\n\u003cbr\u003e\n\nmore usage [demo wiki](https://github.com/yurenchen000/howto.sh/wiki)\n\n### 2. usage demo\n\n```console\n$ howto find files modified today\n== cmd is: find / -type f -mtime 0\n$ find / -type f -mtime 0      \u003c### this line auto-inputed by howto.sh, omitted in later\n\n$ howto git clone use ssh:// for 'ssh android@localhost -p 4022' /tmp/test1\n$                              \u003c### sometime i forget the git url scheme\n== cmd is: git clone ssh://android@localhost:4022/tmp/test1\n\n$ howto convert demo2.gif to demo2.mp4, frame rate 30, twitter compatible  \n$                              \u003c### i guess no one remember all the parameters\n== cmd is: ffmpeg -i demo2.gif -vf \"fps=30,scale=trunc(iw/2)*2:trunc(ih/2)*2\" -c:v libx264 -pix_fmt yuv420p demo2.mp4\n```\n\n\u003cbr\u003e\n\nnote1:\nAI may make mistakes, check before pressing Enter\n\nnote2:\ndeepseek query is slow (about 4 seconds)\n\n\u003cbr\u003e\n\n\n\u003e TIPS: `Ctrl + G` will prepend `howto` cmd and query\n\n\u003cbr\u003e\n\n### 3. use ctrl+g completion\n\n```bash\nbind -x '\"\\C-g\": \"c_howto\"'\n```  \n//this will show howto in cli \u0026 history\n\nOR\n\n```bash\nbind -x '\"\\C-g\": \"c_howto2\"'\n```\n//this not show howto in cli \u0026 history\n\nthen input the search string, for example:\n\n$ find files modified today\n\nthen press `Ctrl+G` to trigger completion\n\n\u003cbr\u003e\n\n## Other Bash Script\n\n[![other bash repos](https://res.ez2.fun/svg/repos-bash_script.svg)](https://github.com/yurenchen000/yurenchen000/blob/main/repos.md#bash-scripts)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyurenchen000%2Fhowto.sh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyurenchen000%2Fhowto.sh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyurenchen000%2Fhowto.sh/lists"}