{"id":13468997,"url":"https://github.com/lasantosr/intelli-shell","last_synced_at":"2025-03-26T05:31:29.141Z","repository":{"id":143349945,"uuid":"591366844","full_name":"lasantosr/intelli-shell","owner":"lasantosr","description":"Like IntelliSense, but for shells","archived":false,"fork":false,"pushed_at":"2023-10-21T07:59:31.000Z","size":680,"stargazers_count":248,"open_issues_count":2,"forks_count":6,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-28T14:11:31.433Z","etag":null,"topics":["autocomplete","bash","bookmark","cli","command-line","fish","productivity","rust","rust-lang","terminal","tool","zsh"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lasantosr.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-01-20T15:28:32.000Z","updated_at":"2025-02-22T12:36:33.000Z","dependencies_parsed_at":null,"dependency_job_id":"99305ea5-d203-4b11-a52f-db0cd37104e2","html_url":"https://github.com/lasantosr/intelli-shell","commit_stats":{"total_commits":49,"total_committers":2,"mean_commits":24.5,"dds":"0.020408163265306145","last_synced_commit":"3fb0e51b57888f707b4f7ba435e4ea26271c9a10"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasantosr%2Fintelli-shell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasantosr%2Fintelli-shell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasantosr%2Fintelli-shell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasantosr%2Fintelli-shell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lasantosr","download_url":"https://codeload.github.com/lasantosr/intelli-shell/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245597406,"owners_count":20641869,"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":["autocomplete","bash","bookmark","cli","command-line","fish","productivity","rust","rust-lang","terminal","tool","zsh"],"created_at":"2024-07-31T15:01:23.861Z","updated_at":"2025-03-26T05:31:28.703Z","avatar_url":"https://github.com/lasantosr.png","language":"Rust","readme":"# IntelliShell\n\nLike IntelliSense, but for shells!\n\n![intelli-shell demo](assets/intellishell.gif)\n\nIntelliShell acts like a bookmark store for commands, so you don't have to keep your history clean in order to be able\nto find something useful with `ctrl + R`.\n\nIt currently works on Bash, Zsh, Fish and PowerShell and should be compatible with most Linux, Windows and MacOS.\n\n## TL;DR\n\n1. Install the binaries:\n\n   ```sh\n   curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/install.sh | bash\n   ```\n\n2. Bookmark your first command by typing it on a terminal and using `ctrl + b`\n\n3. _(optional)_ Run `intelli-shell fetch` to download commands from [tldr](https://github.com/tldr-pages/tldr)\n\n4. Hit `ctrl + space` to begin the journey!\n\n5. _(optional)_ Check out the [tips](#tips) section below to get some ideas\n\n## Features\n\n- Standalone binaries\n- Autocomplete currently typed command\n  - Full Text Search in both command and description with hashtag support on descriptions\n- Find \u0026 replace labels of currently typed command\n- Edit bookmarked commands and provide aliases\n- Non-intrusive (inline) and full-screen interfaces\n- Fetch command to parse and store [tldr](https://github.com/tldr-pages/tldr) pages (Thanks to them!)\n- Portability. You can use bookmarked commands in any supported shell, as well as exporting and importing elsewhere.\n\n## Installation\n\nRemember to bookmark some commands or fetch them after the installation!\n\nTo skip profile updates, set `INTELLI_SKIP_PROFILE` environment variable to `1` before installing.\n\n### Bash (Linux)\n\n```sh\ncurl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/install.sh | bash\n```\n\nAfter installing it using bash, it should work in any supported shell.\n\n### PowerShell (Windows)\n\n```powershell\nSet-ExecutionPolicy RemoteSigned -Scope CurrentUser # Optional: Needed to run a remote script the first time\nirm https://raw.githubusercontent.com/lasantosr/intelli-shell/main/install.ps1 | iex\n```\n\nAfter installing it with powershell, it should also work on cmd (without hotkeys).\n\n### Source\n\nTo install from source you'll need to have Rust installed, which is recommended to be installed using [rustup](https://www.rust-lang.org/tools/install).\n\n```sh\ncargo install intelli-shell --locked\n```\n\nTo enable hotkeys, additional steps are required:\n\n\u003cdetails\u003e\n  \u003csummary\u003eLinux\u003c/summary\u003e\n  \nDownload source script:\n\n- Bash / Zsh:\n\n  ```sh\n  mkdir -p ~/.local/share/intelli-shell/bin\n  curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/intelli-shell.sh \u003e ~/.local/share/intelli-shell/bin/intelli-shell.sh\n  ```\n\n- Fish:\n\n  ```sh\n  mkdir -p ~/.local/share/intelli-shell/bin\n  curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/intelli-shell.fish \u003e ~/.local/share/intelli-shell/bin/intelli-shell.fish\n  ```\n\nEdit your profile to source it:\n\n- Bash / Zsh: `~/.bashrc`, `~/.zshrc` or `~/.bash_profile`\n\n  ```sh\n  source ~/.local/share/intelli-shell/bin/intelli-shell.sh\n  ```\n\n- Fish: `~/.config/fish/config.fish`:\n\n  ```sh\n  source ~/.local/share/intelli-shell/bin/intelli-shell.fish\n  ```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eWindows\u003c/summary\u003e\n  \nDownload the source script also:\n\n```powershell\nNew-Item -Path $env:APPDATA\\IntelliShell\\Intelli-Shell\\data\\bin -Type Directory\nInvoke-WebRequest -UseBasicParsing -URI \"https://raw.githubusercontent.com/lasantosr/intelli-shell/main/intelli-shell.ps1\" -OutFile $env:APPDATA\\IntelliShell\\Intelli-Shell\\data\\bin\\intelli-shell.ps1\n```\n\nEdit your `$Profile` to execute it:\n\n```powershell\n. $env:APPDATA\\IntelliShell\\Intelli-Shell\\data\\bin\\intelli-shell.ps1\n```\n\n\u003c/details\u003e\n\n## Usage\n\nYou can view supported actions by running `intelli-shell -h`. Most used standalone commands are:\n\n- `intelli-shell fetch [category]` to fetch [tldr](https://github.com/tldr-pages/tldr) commands and store them.\n   _[category]_ can be skipped or a valid folder from tldr's [pages](https://github.com/tldr-pages/tldr/tree/main/pages)\n- `intelli-shell export` to export user-bookmarked commands (won't export _tldr's_ commands)\n- `intelli-shell import user_commands.txt` to import commands into the user category\n\n### Hotkeys\n\n- `ctrl + b` bookmark currently typed command\n- `ctrl + space` show suggestions for current line\n- `ctrl + l` replace labels of currently typed command\n- `esc` clean current line, this binding can be skipped if `INTELLI_SKIP_ESC_BIND=1`\n\n**Note:** When navigating items, selected suggestion can be deleted with `ctrl + d` or edited with any of: `ctrl + e`,\n`ctrl + u` or `F2`\n\nYou can customize key bindings using environment variables: `INTELLI_BOOKMARK_HOTKEY`, `INTELLI_SEARCH_HOTKEY` and `INTELLI_LABEL_HOTKEY`\n\n## Tips\n\n- When the search criteria matches an alias or produces a single result, it's automatically autocompleted!\n  - The label UI will still be shown if the command contains labels\n\n- You can alias common commands to store some kind of favorite labels, for example bookmark `cd {{path}}` and give it a\n  `cd` alias\n  - You can regularly use `cd` but if you hit `ctrl + space` it will show your \"pinned\" folders\n\n- Long commands or even functions can also be bookmarked\n  - For example `function custom_echo () { echo \"hey: $@\"; }; custom_echo {{text}};`\n\n- You can avoid labels to be stored and keep them secret if wrapped between '*' : `echo {{*my-secret*}}`\n\n- Label suggestions are stored based on the root command and the label name, which gives you flexibility to decide.\n\n  For these two commands, the same images will be suggested:\n  - `docker run {{--rm}} {{--interactive}} {{image}}`\n  - `docker rmi {{--no-prune}} {{image}}`\n  \n  But these two commands will suggest different volumes:\n  - `docker run --volume {{image-1-volumes}} image-1`\n  - `docker run --volume {{image-2-volumes}} -p {{image-2-ports}} image-2`\n\n- Include hashtags on descriptions like `#cool` and use them while searching\n\n## Wishlist\n\n- [x] Labels support to store most used labels and select them using a dedicated UI\n- [x] Usability improvements to manage stored commands (including aliases)\n- [x] Support for more terminals\n  - [x] [Fish](https://fishshell.com/)\n  - [x] PowerShell\n- [ ] Export also labels and UI to filter what to export\n- [ ] Deploy to package managers\n- [ ] Sync user bookmarks using some public / private Git repo\n\n## Alternatives\n\nYou might want to have a look at [Marker](https://github.com/pindexis/marker) which is pretty similar but requires Python\nto be installed on your system.\n\n## License\n\nIntelliShell is licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for the full license text.\n","funding_links":[],"categories":["Rust","Development tools","Integrations","Utilities","CLIs \u0026 Terminal Tools","Terminal","\u003ca name=\"cheatsheet\"\u003e\u003c/a\u003eCommands cheatsheet and snippets","Table of Contents"],"sub_categories":["Web Servers","Shell Utilities","Workflow Automation","CLI Utilities"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flasantosr%2Fintelli-shell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flasantosr%2Fintelli-shell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flasantosr%2Fintelli-shell/lists"}