{"id":13468734,"url":"https://github.com/plainas/icl","last_synced_at":"2025-10-30T22:44:14.643Z","repository":{"id":52788505,"uuid":"266604945","full_name":"plainas/icl","owner":"plainas","description":"An interactive memory aid for one-liners","archived":false,"fork":false,"pushed_at":"2022-11-29T12:49:46.000Z","size":198,"stargazers_count":112,"open_issues_count":4,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-30T22:44:10.793Z","etag":null,"topics":["curses","fish","icl","one-liners","python","tldr","zsh"],"latest_commit_sha":null,"homepage":"","language":"Python","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/plainas.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2020-05-24T18:54:06.000Z","updated_at":"2025-10-04T09:45:54.000Z","dependencies_parsed_at":"2023-01-22T07:19:57.040Z","dependency_job_id":null,"html_url":"https://github.com/plainas/icl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/plainas/icl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plainas%2Ficl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plainas%2Ficl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plainas%2Ficl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plainas%2Ficl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plainas","download_url":"https://codeload.github.com/plainas/icl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plainas%2Ficl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281896643,"owners_count":26580138,"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-30T02:00:06.501Z","response_time":61,"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":["curses","fish","icl","one-liners","python","tldr","zsh"],"created_at":"2024-07-31T15:01:17.824Z","updated_at":"2025-10-30T22:44:14.624Z","avatar_url":"https://github.com/plainas.png","language":"Python","readme":"# icl - interactive command library\n\n`icl` is a user-friendly, interactive cheat sheet for your UNIX terminal.\n\nHave your favorite one-liners allways at your fingertips.\n\n![Example](./screencast.svg)\n\n## Installation\n\nOne line installation is provided for convenience, but you are encouraged to read the installation scripts.\n\n### Fish shell\n\n```shellscript\ncurl -sSL https://raw.githubusercontent.com/plainas/icl/master/install_fish.sh | /bin/sh\n```\n\nReload your fish config or start a new shell.\n\nNote:\nIf you are still using fish 2, you need to define the keybinding to ''f_run_icl'' yourself.\n\n\n### Z shell\n\n```shellscript\ncurl -sSL https://raw.githubusercontent.com/plainas/icl/master/install_zsh.sh | /bin/sh\n```\n\nreload zsh config or relaunch zsh.\n\n### Bash\n\n\n```shellscript\ncurl -sSL https://raw.githubusercontent.com/plainas/icl/master/install_bash.sh | /bin/sh\n```\n\nBash doesn't lend itself to the same level of interactivity and configurability as fish or zsh.\n\nThe command below will install a function to launch `icl` by pressing `Ctrl+t`, on your `.bashrc` .\nThe chosen command is placed in your input bugger but it is also printed to stdout. This works but\nit is somewhat anoying. If you are bash user, this is good time to switch to fish.\n\n\n### Manual Installation\n\n`icl` command is just a single python script with no dependencies on third party modules. By itself, it just launches the interactive search UI and, once you pick a command by pressing enter, will send it to SDOUT. This is not too useful. For a streamlined experience, install the helper functions for your shell and bind them to shortcut. They will launch icl on a keybind and, once you pick the command, place it in your input buffer. Check `icl.fish`, `icl.bash.sh` and `icl.zsh.sh` for ready to use helper functions and keybinding definitions.\n\n1. Download `icl.py`, set the execution bit and place it somewhere on your `$PATH`.\n\n2. Install the helper functions and keybinds for your shell.\n\n## Usage\n\nJust press `Ctrl+t` and start typing.\n\nPick the command you want by pressing enter. To abort press `Ctrl+C`\n\n## Add commands to your cheat sheet\n\nCommmands are stored in `~/.config/icl/commands.txt`\n\nYou can edit that file and add your favorite oneliners.\n\nThe format is self explanatory:\n\n```shellscript\n\n# description lines starts with '#', the command follows in the next line\nfortune\n\n# This line is here just to hold a brief command description\necho \"This sample command echoes this!\" \n\n# List all processes\nps aux\n\n```\n\n## Change the keybind\n\nIf you installed `icl` with the one line snippets provided above. The keybind is defined in `~/.config/fish/config.fish` , `~/.bashrc` or `~/.zshrc` depending on which shell you are using. Look for one of the following commands and replace `ctrl+t` with another keybind on your preference.\n\n```shellscript\n# fish\nbind \\ct f_run_icl\n\n# zsh\nbindkey ^t w_run_icl\n\n# Bash\nbind '\"\\C-t\":\"f_run_icl\\n\"'\n```\n\n### Bonus: icl as a [TLDR](https://tldr.sh/) client\nThe file `tldr.txt` includes all commands scrapped from tldr repository. If you want to be able to access them using icl, simply place them in your `commands.txt`. You can do so by running the following command.\n```\ncurl https://raw.githubusercontent.com/plainas/icl/master/tldr.txt \u003e\u003e ~/.config/icl/commands.txt\n```\n\n### TODO\n* accept an url as parameter to load an online library\n* include [cheat](https://github.com/cheat/cheat) and [eg](https://github.com/srsudar/eg)\n* integrate client to [bropages](http://bropages.org/)\n* Improve TLDR scraper, get ridd of curly brackets around paremeters.\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplainas%2Ficl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplainas%2Ficl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplainas%2Ficl/lists"}