Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RaymondKroon/c9fbc7272fa6a58e3b48c6e8c64758e5 to your computer and use it in GitHub Desktop.
Save RaymondKroon/c9fbc7272fa6a58e3b48c6e8c64758e5 to your computer and use it in GitHub Desktop.
Alias commands to use GitHub Copilot CLI in PowerShell
# You should insert this script into your PowerShell Profile script so it exists in every session
# Fun fact: This script was mostly generated by ChatGPT by giving it the bash version of the output
# from `github-copilot-cli alias -- "$0"` with a few fixes from me
function Invoke-CopilotWhatTheShell {
$TMPFILE = New-TemporaryFile;
try {
github-copilot-cli what-the-shell $args --shellout $TMPFILE
if ($LASTEXITCODE -eq 0) {
if (Test-Path $TMPFILE) {
$FIXED_CMD = Get-Content $TMPFILE;
Invoke-Expression $FIXED_CMD;
}
else {
Write-Host "Apologies! Extracting command failed";
}
}
else {
Write-Error "Apologies! Copilot failed to generate a command";
}
}
finally {
Remove-Item $TMPFILE;
}
}
Set-Alias '??' 'Invoke-CopilotWhatTheShell';
Set-Alias 'wts' 'Invoke-CopilotWhatTheShell';
function Invoke-CopilotGitAssist {
$TMPFILE = New-TemporaryFile;
try {
github-copilot-cli git-assist $args --shellout $TMPFILE
if ($LASTEXITCODE -eq 0) {
if (Test-Path $TMPFILE) {
$FIXED_CMD = Get-Content $TMPFILE;
Invoke-Expression $FIXED_CMD;
}
else {
Write-Host "Apologies! Extracting command failed";
}
}
else {
Write-Error "Apologies! Copilot failed to generate a command";
}
}
finally {
Remove-Item $TMPFILE;
}
}
Set-Alias 'git?' 'Invoke-CopilotGitAssist';
function Invoke-CopilotGitHubAssist {
$TMPFILE = New-TemporaryFile;
try {
github-copilot-cli gh-assist $args --shellout $TMPFILE
if ($LASTEXITCODE -eq 0) {
if (Test-Path $TMPFILE) {
$FIXED_CMD = Get-Content $TMPFILE;
Invoke-Expression $FIXED_CMD;
}
else {
Write-Host "Apologies! Extracting command failed";
}
}
else {
Write-Error "Apologies! Copilot failed to generate a command";
}
}
finally {
Remove-Item $TMPFILE;
}
}
Set-Alias 'gh?' 'Invoke-CopilotGitHubAssist';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment