fix
The fix command provides a non-interactive way to correct a failing command using AI. It's the command-line
equivalent of the Ctrl+X hotkey, designed for use in scripts or automated workflows.
It acts as an intelligent wrapper that executes a command and, if it fails, uses AI to diagnose the problem and suggest a solution.
All diagnostic messages are printed to stderr, while the corrected command (if any) is printed to stdout, allowing
it to be used programmatically.
How It Works
Tt first executes the command. If the command fails (i.e., exits with a non-zero status code), fix captures the output
and sends it, along with some context, to the configured AI for analysis.
The AI's diagnosis is printed to stderr, while the clean, corrected command (if one is found) is printed to stdout.
This separation allows you to easily pipe the corrected command to another process or variable.
⚠️ Important
The
fixcommand is intended for non-interactive shell commands (e.g.,ls,git,docker). Executing interactive applications likevimorlessthrough it may lead to unexpected behavior.
Usage
intelli-shell fix <COMMAND>
Arguments
<COMMAND>: The full command string to execute and potentially fix.
Example
Here is what happens when you run a command with a common typo through intelli-shell fix.
Command:
intelli-shell fix "git comit amend"
Output:
> git comit amend
git: 'comit' is not a git command. See 'git --help'.
The most similar command is
commit
────────────────────────────────────────────────────────────────────────────────
🧠 IntelliShell Diagnosis
❌ Git Command Typo
The command "git comit amend" failed because "comit" is a misspelling of the
"commit" subcommand. Git recognized "comit" as an unrecognized command and
suggested "commit" as the most similar valid command. This error often occurs
due to a simple typographical mistake.
✨ Fix
To fix this, correct the spelling of "comit" to "commit". The "--amend" flag
is commonly used with "git commit" to modify the most recent commit.
Suggested Command 👉
git commit --amend
In this example, all the informational text is sent to stderr.
Only the final, corrected command is sent to stdout, making it safe to use in scripts like
fixed_cmd=$(intelli-shell fix "git comit amend").