From c3fc72488755e2014e9a9f1c0ce592ee4b5e16b8 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Sat, 14 Mar 2026 05:44:39 +0100 Subject: [PATCH] fix(coding-agent): add uninstall alias closes #2051 --- packages/coding-agent/README.md | 12 +++++++----- packages/coding-agent/src/cli/args.ts | 13 +++++++------ packages/coding-agent/src/main.ts | 14 +++++++++++--- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/packages/coding-agent/README.md b/packages/coding-agent/README.md index 6593bf4e..1e30cef4 100644 --- a/packages/coding-agent/README.md +++ b/packages/coding-agent/README.md @@ -343,6 +343,7 @@ pi install https://github.com/user/repo@v1 # tag or commit pi install ssh://git@github.com/user/repo pi install ssh://git@github.com/user/repo@v1 # tag or commit pi remove npm:@foo/pi-tools +pi uninstall npm:@foo/pi-tools # alias for remove pi list pi update # skips pinned packages pi config # enable/disable extensions, skills, prompts, themes @@ -432,11 +433,12 @@ pi [options] [@files...] [messages...] ### Package Commands ```bash -pi install [-l] # Install package, -l for project-local -pi remove [-l] # Remove package -pi update [source] # Update packages (skips pinned) -pi list # List installed packages -pi config # Enable/disable package resources +pi install [-l] # Install package, -l for project-local +pi remove [-l] # Remove package +pi uninstall [-l] # Alias for remove +pi update [source] # Update packages (skips pinned) +pi list # List installed packages +pi config # Enable/disable package resources ``` ### Modes diff --git a/packages/coding-agent/src/cli/args.ts b/packages/coding-agent/src/cli/args.ts index 9edfb9b0..580ec8de 100644 --- a/packages/coding-agent/src/cli/args.ts +++ b/packages/coding-agent/src/cli/args.ts @@ -183,12 +183,13 @@ ${chalk.bold("Usage:")} ${APP_NAME} [options] [@files...] [messages...] ${chalk.bold("Commands:")} - ${APP_NAME} install [-l] Install extension source and add to settings - ${APP_NAME} remove [-l] Remove extension source from settings - ${APP_NAME} update [source] Update installed extensions (skips pinned sources) - ${APP_NAME} list List installed extensions from settings - ${APP_NAME} config Open TUI to enable/disable package resources - ${APP_NAME} --help Show help for install/remove/update/list + ${APP_NAME} install [-l] Install extension source and add to settings + ${APP_NAME} remove [-l] Remove extension source from settings + ${APP_NAME} uninstall [-l] Alias for remove + ${APP_NAME} update [source] Update installed extensions (skips pinned sources) + ${APP_NAME} list List installed extensions from settings + ${APP_NAME} config Open TUI to enable/disable package resources + ${APP_NAME} --help Show help for install/remove/uninstall/update/list ${chalk.bold("Options:")} --provider Provider name (default: google) diff --git a/packages/coding-agent/src/main.ts b/packages/coding-agent/src/main.ts index 6bb3d9a1..137e38f4 100644 --- a/packages/coding-agent/src/main.ts +++ b/packages/coding-agent/src/main.ts @@ -118,12 +118,14 @@ Examples: ${getPackageCommandUsage("remove")} Remove a package and its source from settings. +Alias: ${APP_NAME} uninstall [-l] Options: -l, --local Remove from project settings (.pi/settings.json) -Example: +Examples: ${APP_NAME} remove npm:@foo/bar + ${APP_NAME} uninstall npm:@foo/bar `); return; @@ -147,8 +149,14 @@ List installed packages from user and project settings. } function parsePackageCommand(args: string[]): PackageCommandOptions | undefined { - const [command, ...rest] = args; - if (command !== "install" && command !== "remove" && command !== "update" && command !== "list") { + const [rawCommand, ...rest] = args; + let command: PackageCommand | undefined; + if (rawCommand === "uninstall") { + command = "remove"; + } else if (rawCommand === "install" || rawCommand === "remove" || rawCommand === "update" || rawCommand === "list") { + command = rawCommand; + } + if (!command) { return undefined; }