{"id":13468997,"url":"https://github.com/lasantosr/intelli-shell","last_synced_at":"2026-06-03T09:00:50.864Z","repository":{"id":143349945,"uuid":"591366844","full_name":"lasantosr/intelli-shell","owner":"lasantosr","description":"Like IntelliSense, but for shells","archived":false,"fork":false,"pushed_at":"2026-05-24T17:17:23.000Z","size":36866,"stargazers_count":1231,"open_issues_count":4,"forks_count":21,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-05-24T19:18:13.887Z","etag":null,"topics":["autocomplete","bash","bookmark","cli","command-line","fish","productivity","rust","rust-lang","terminal","tool","zsh"],"latest_commit_sha":null,"homepage":"https://lasantosr.github.io/intelli-shell/","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":"CONTRIBUTING.md","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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2023-01-20T15:28:32.000Z","updated_at":"2026-05-19T08:11:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"c69f8936-5307-4dc2-9b59-bc67da289369","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":30,"template":false,"template_full_name":null,"purl":"pkg:github/lasantosr/intelli-shell","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","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasantosr%2Fintelli-shell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33856287,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"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":["autocomplete","bash","bookmark","cli","command-line","fish","productivity","rust","rust-lang","terminal","tool","zsh"],"created_at":"2024-07-31T15:01:23.861Z","updated_at":"2026-06-03T09:00:50.852Z","avatar_url":"https://github.com/lasantosr.png","language":"Rust","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","Tools"],"sub_categories":["Web Servers","Shell Utilities","Workflow Automation","CLI Utilities","CLIs \u0026 Terminal Tools"],"readme":"\u003c!-- markdownlint-disable MD033 required for advanced formatting --\u003e\n\n# IntelliShell\n\n\u003cp align=\"center\"\u003e\n  \u003cem\u003eLike IntelliSense, but for shells!\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Version](https://img.shields.io/github/v/release/lasantosr/intelli-shell?style=for-the-badge)](https://github.com/lasantosr/intelli-shell/releases/latest)\u0026nbsp;\n[![Crates.io Total Downloads](https://img.shields.io/crates/d/intelli-shell?style=for-the-badge\u0026label=crates.io)](https://crates.io/crates/intelli-shell)\u0026nbsp;\n[![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/lasantosr/intelli-shell/total?style=for-the-badge\u0026label=GitHub)](https://github.com/lasantosr/intelli-shell/releases)\u0026nbsp;\n[![License](https://img.shields.io/crates/l/intelli-shell?style=for-the-badge)](https://github.com/lasantosr/intelli-shell/blob/main/LICENSE)\u0026nbsp;\n[![GitHub Created At](https://img.shields.io/github/created-at/lasantosr/intelli-shell?style=for-the-badge\u0026label=since)](https://github.com/lasantosr/intelli-shell)\n\n\u003c/div\u003e\n\n\u003chr/\u003e\n\nIntelliShell is a powerful command template and snippet manager for your shell. It goes far beyond a simple history search,\ntransforming your terminal into a structured, searchable, and intelligent library of your commands.\n\nWorks on **Bash**, **Zsh**, **Fish**, **Nushell**, and **PowerShell**, with standalone binaries for Linux, macOS, and\nWindows.\n\n![intelli-shell demo](docs/src/images/demo.gif)\n\n## Features\n\n- **Seamless Shell Integration**: Search with `ctrl+space`, bookmark with `ctrl+b` or fix with `ctrl+x`\n- **Dynamic Variables**: Create command templates with `{{variables}}` and replace them on the fly\n- **Smart Completions**: Power up your variables with dynamic suggestions from any command\n- **AI-Powered Commands**: Generate, fix, and import commands effortlessly using local or remote LLMs\n- **Highly Configurable**: Tailor search modes, keybindings, themes, and even search-ranking algorithms\n- **Workspace-Aware**: Automatically discovers and loads commands from your workspace's directory\n- **Import / Export**: Share your command library using files, HTTP endpoints, or even Gists\n- **TLDR Integration**: Fetch and import command examples from [tldr](https://github.com/tldr-pages/tldr) pages\n- **Flexible Interface**: Choose between a non-intrusive (inline) or an immersive (full-screen) TUI\n- **Visual Destructive Feedback**: Highlight potentially destructive commands (configurable via tags or custom regexes) to prevent accidental executions\n\n\n## Quick Start\n\nFor a comprehensive guide on installation, configuration, and advanced features, please refer to the\n[**Quick Start**](https://lasantosr.github.io/intelli-shell/guide/installation.html) section of the book.\n\nHere’s a summary to get you started:\n\n1. Install or update the binary:\n\n   ```sh\n   # For sh-compatible shells on Linux/macOS/Windows (Bash, Zsh, Fish, Nu, Git Bash)\n   curl -sSf https://raw.githubusercontent.com/lasantosr/intelli-shell/main/install.sh | sh\n   ```\n\n   \u003cdetails\u003e\n   \u003csummary\u003eWindows (PowerShell)\u003c/summary\u003e\n\n   ```powershell\n   Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Optional: Only needed if scripts are disabled\n   irm https://raw.githubusercontent.com/lasantosr/intelli-shell/main/install.ps1 | iex\n   ```\n\n   \u003e **Note**: Microsoft Visual C++ Redistributable ([download](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist))\n   \u003e is required for the application to run\n   \u003c/details\u003e\n\n   _To skip profile updates, set `INTELLI_SKIP_PROFILE` environment variable to `1` before installing._\n\n2. Bookmark your first command by typing it on a terminal and hitting `ctrl+b`\n\n3. _(optional)_ [Enable AI features](https://lasantosr.github.io/intelli-shell/guide/introduction_to_ai.html#how-to-enable-ai),\n   import commands and completions from shared [gists](https://gist.github.com/search?q=intellishell+commands) or fetch\n   commands from [tldr](https://lasantosr.github.io/intelli-shell/guide/populating_your_library.html#from-tldr-pages)\n\n4. Hit `ctrl+space` to begin the journey and don't forget to checkout the [tips](#tips)!\n\n## Basic Usage\n\nIntelliShell is designed to be used interactively through keybindings, for detailed information on installation,\nconfiguration, or advanced usage examples, please refer to the [_**Book**_](https://lasantosr.github.io/intelli-shell/).\n\n### Shell Integration\n\nThese hotkeys work directly in your terminal line:\n\n- **`ctrl+space`**: Search for a command\n- **`ctrl+b`**: Bookmark the command currently typed in your terminal\n- **`ctrl+l`**: Replace `{{variables}}` in the current command\n- **`ctrl+x`**: Diagnose and try to fix a failing command (requires AI to be enabled)\n- **`esc`**: Clean the current line, this binding can be skipped by setting `INTELLI_SKIP_ESC_BIND=1`\n\n_These keybindings can be changed, see [Customizing Keybindings](https://lasantosr.github.io/intelli-shell/guide/installation.html#customizing-keybindings)\nfor details._\n\n### Inside the Application\n\nOnce any interface is shown, you can use these keys:\n\n- **`esc`**: Quit without making a selection or go back\n- **`F2` / `ctrl+u` / `ctrl+e`**: Edit the highlighted item\n- **`ctrl+d`**: Delete the highlighted item\n- **`enter` / `tab`**: Confirm a selection or move to the next step\n- **`ctrl+enter` / `ctrl+r`**: Execute the highlighted command immediately\n- **`ctrl+x` / `ctrl+i`**: Prompt AI (when searching or creating commands)\n\n_These keybindings are fully customizable; in fact, you can configure everything from themes to search behavior. See\nthe [Keybindings Configuration](https://lasantosr.github.io/intelli-shell/configuration/keybindings.html) page for\nbinding specifics, or check out the [default configuration file](./default_config.toml) for a complete list of all\navailable options._\n\n## Tips\n\n- **Quick autocomplete**: If your search query matches an alias, it will be autocompleted instantly. The variable\n  replacement UI will still appear if the command has variables.\n\n- **Learn Commands on the Fly**: Can't find the command you're looking for? Just describe it in natural language and\n  press `ctrl+x` while searching to let the AI write it for you.\n\n- **Alias your favorites**: Use aliases to \"pin\" different sets of favorite values for the same command. For example,\n  bookmark `cd {{path}}` with a `cd` alias and you can regularly use `cd` but if you hit `ctrl+space` it will show your\n  \"pinned\" folders.\n\n- **Quickly re-prompt variables**: Need to run a command again with different inputs? Hit the up arrow in your shell to\n  recall the last command, then press `ctrl+space`. You'll get the original template back, ready for new values.\n\n- **Fix errors instantly**: Typed a long command only to have it fail? Instead of manually debugging, just hit the up\n  arrow to recall it and press `ctrl+x`. The AI will analyze the command and the error message to suggest a working version.\n\n- **Organize with hashtags**: Add hashtags like `#work` or `#gcp` to your command descriptions. You can then find and use\n  these hashtags in your search query to quickly filter your bookmarks.\n\n- **Bookmark everything**: Don't just bookmark simple commands! You can save entire shell functions for reuse.\n  For example: `custom_echo() { echo \"hey: $@\"; }; custom_echo {{text}};`\n\n- **Keep variables secret**: If you have a variable you don't want to save in your suggestion history (like a token or a\n  comment), wrap its name in an extra pair of brackets: `echo \"{{{message}}}\"`\n\n- **Embrace environment variables**: Let your environment do the work. Suggestions are automatically pulled from your\n  environment variables. For example, `{{{api-key}}}` will suggest `$API_KEY` variable if it exists.\n\n- **Format variables**: Apply formatting functions directly within your variable placeholders. This is perfect for\n  transforming input on the fly, like a git-friendly branch name: `git checkout -b {{feature|bugfix}}/{{{description:kebab}}}`\n\n- **Define workspace-specific commands**: Create a [`.intellishell`](./.intellishell) file in your workspace's root\n  directory and commit it to git. These commands are temporary, prioritized in search results, and don't clutter your\n  global library. It's the perfect way to define and share common tasks (like build or deploy scripts) with your team.\n\n- **Share your knowledge**: Found a set of commands that could help others? Use the export feature to a public Gist of\n  your bookmarks. Share the link on your blog, with your team, or contribute to a curated list\n  ([example](https://gist.github.com/lasantosr/137846d029efcc59468ff2c9d2098b4f)).\n\n- **Import everything**: Use the AI-powered import to extract command templates from virtually any text. Point it at a\n  blog post, a cheatsheet, or even your own shell history to turn useful examples into reusable commands.\n\n- **Name your variables wisely**: You have full control over which suggestions are shared between commands. Suggestions\n  are grouped by variable name and root cmd. Use the same name to share suggestions, or different names to keep them separate.\n  - **Shared**: Using `{{image}}` for both `docker run` and `docker rmi` will share the same list of image suggestions.\n  - **Separate**: Keep suggestions for different use cases distinct by using different variable names. For example, you\n    can separate your `ssh` connections for `{{prod_server}}` and `{{staging_server}}` environments. Giving each a distinct\n    alias like `sshp` and `sshs` lets you quickly access the right set of servers.\n\n## IntelliShell vs. Shell History\n\nA common question is: \"How is this different from my shell's history (`ctrl+r`) or enhanced history tools like [Atuin](https://atuin.sh/)?\"\n\nThe key distinction is that they solve different problems and are **complementary tools**, not competitors.\n\n- **`ctrl+r`** (Shell History) is perfect for recalling a specific, unique command you ran recently.\n  It's a chronological log of **_what you've done_**.\n- **`ctrl+space`** (IntelliShell) is for your day-to-day, frequently used commands, or for discovering how to perform a\n  task in a new project. It's a curated library of **_what you want to do_**.\n\nTo put it another way: your shell history is an automatic, unfiltered log of everything you've ever typed—the good, the\nbad, and the typos.\n\nIntelliShell, by contrast, is your personal, curated collection of command \"recipes\" that you've chosen to save,\norganize, and even share.\n\n| Aspect                 | Shell History / Atuin                                                    | IntelliShell                                                                                             |\n| ---------------------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- |\n| **Primary Purpose**    | A chronological log of every command you execute                         | A curated library of reusable command _templates_                                                        |\n| **Content**            | Often cluttered with raw, one-off commands, and typos                    | A clean, organized, and intentional set of useful commands                                               |\n| **Repetitive Tasks**   | Stores every unique variation (e.g., `ssh host1`, `ssh host2`)           | Stores one template (`ssh {{host}}`) and remembers your past inputs for quick reuse                      |\n| **Project Onboarding** | You must read `READMEs` or other docs to find project-specific commands  | Just hit `ctrl+space` in a new repo or devcontainer to instantly discover available tools and commands   |\n| **Command Discovery**  | Limited to commands _you_ have personally run before                     | Discover commands from your team (`.intellishell` files), the community (Gists), or `tldr` pages         |\n| **Core Philosophy**    | **Recall**: \"What was that exact command I ran yesterday?\"               | **Intent**: \"How do I perform this common task?\"                                                         |\n\nBy using both, you get the best of both worlds: a comprehensive log for forensic searches and a powerful, personal, and\ncollaborative knowledge base for everything else.\n\n## License\n\nIntelliShell is licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for the full license text.\n","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"}