{"id":20225160,"url":"https://github.com/adwaith-rajesh/exli","last_synced_at":"2026-06-08T15:32:37.072Z","repository":{"id":57427595,"uuid":"426103096","full_name":"Adwaith-Rajesh/exli","owner":"Adwaith-Rajesh","description":"An alias manager and an infinitely extensible CLI.   ","archived":false,"fork":false,"pushed_at":"2021-11-10T14:24:50.000Z","size":10,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-01T17:29:16.315Z","etag":null,"topics":["alias","alias-manager","cli","python3"],"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/Adwaith-Rajesh.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":"2021-11-09T05:30:08.000Z","updated_at":"2023-02-13T22:51:32.000Z","dependencies_parsed_at":"2022-09-19T07:41:10.232Z","dependency_job_id":null,"html_url":"https://github.com/Adwaith-Rajesh/exli","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Adwaith-Rajesh%2Fexli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Adwaith-Rajesh%2Fexli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Adwaith-Rajesh%2Fexli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Adwaith-Rajesh%2Fexli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Adwaith-Rajesh","download_url":"https://codeload.github.com/Adwaith-Rajesh/exli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241670090,"owners_count":20000325,"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":["alias","alias-manager","cli","python3"],"created_at":"2024-11-14T07:11:19.757Z","updated_at":"2026-06-08T15:32:37.016Z","avatar_url":"https://github.com/Adwaith-Rajesh.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Exli\n\n[![GitHub](https://img.shields.io/github/license/Adwaith-Rajesh/exli?style=for-the-badge)](LICENSE)\n[![PyPI](https://img.shields.io/pypi/v/exli?style=for-the-badge)](https://pypi.org/project/exli/)\n\nAn alias manager and an infinitely extensible CLI.\n\n## Installation\n\n```commandline\npip3 install exli\n```\n\n### Exli as an Alias Manager.\n\n#### Why ?\n\nIDK.,\n\nI don't like writing a ton of aliases in my `.bashrc` even though I've only like 5 of them. I just wanted a place for all my aliases that are non important (non-important in the sense that, you don't mind writing two more character in front of the real alias, and for small ones that you don't happen\nto use that often)\n\nAnd also its a lot of fun to write something like this, It's small, It's simple and easy to use.\n\n#### How ?\n\nIn order to add new aliases you can run the following command in ur terminal\n\n```commandline\nexli add alias cmd\n\n# OR\n\nxi add alias cmd\n```\n\n##### Example\n\nLet's say I want to add a small alias that tells me the current weather in my area.\n\n```commandline\nxi add weather curl wttr.in\n```\n\nAnd I can invoke the alias using the following\n\n```commandline\nxi weather\n```\n\n\u003e You cannot name your alias, `add`, `help`, `ls`. or `rm` as these are reserved and are used by exli.\n\n### Some other commands\n\n- List all the available aliases\n\n  ```commandline\n  xi ls\n  ```\n\n- Remove aliases\n\n  ```commandline\n  xi rm alias1 alias2\n  ```\n\n- Get help\n  ```commandline\n   xi help\n  ```\n\n### Exli as an Extensible CLI\n\n#### Why ?\n\nYou might have one day decided to write a simple CLI tool but you don't want to access it via the command line with it's own command name. (Maybe its a simple program file that you run ocaasianally in order do to a certain task or something)\n\n#### How ?\n\nAs an example we can make simple CLI that greets someone.\n\n\u003e You can write the CLI in any language or in any framework.\n\n```python\n# ~/exli-extensions/greet.py\n\nimport sys\n\ndef main() -\u003e int:\n    print(f\"Hello {' '.join(sys.argv[1:])}\")\n    return 0\n\nif __name__ == \"__main__\":\n    raise SystemExit(main())\n\n```\n\nI also have a venv in the `~/exli-extensions` dir.\n\nNow I can add this to exli like so.\n\n```commandline\nxi add greet ~/exli-extensions/env/bin/python3 ~/exli-extensions/greet.py\n```\n\nNow I can invoke the greet command like this.\n\n```commandline\nxi greet Adwaith Rajesh\n```\n\n```\nHello Adwaith Rajesh\n```\n\nSo as you can see you can add as many CLI extensions as you want, you can make it as complex as you want.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadwaith-rajesh%2Fexli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadwaith-rajesh%2Fexli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadwaith-rajesh%2Fexli/lists"}