microsoft / microsoft/apm

[FEATURE] Interactive selection of installed plugins for removal

Open
#2,948 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status/deferred triage/recommended type/feature
Dominant language
Python
Stars
3.8k
Forks
362
Avg merge
1d 17h
Merged PRs (30d)
132

Description

Is your feature request related to a problem? Please describe.

Managing plugins currently requires browsing a static table, copying or typing a package identifier, and running a separate command. Removal is particularly awkward when installed identities include a host, repository, and package subpath. Users should be able to select installed plugins by their recognizable names without reconstructing those identifiers.

#2749 already proposes interactive package selection for installation/search. This request covers the complementary removal workflow so adding and removing plugins can share a consistent interaction.

Describe the solution you'd like

Provide an opt-in interactive removal picker, for example apm uninstall --interactive and apm uninstall --interactive --global (exact command shape subject to maintainer preference).

  • List installed plugins in the selected project or user scope, showing their name, source, and scope.
  • Support filtering and selecting one or more plugins.
  • Resolve selections directly to their installed dependency identities, including marketplace packages, rather than asking users to type aliases or full paths.
  • Show the removal plan and ask for confirmation before applying it through the existing uninstall implementation. Cancellation must leave the installation unchanged.
  • Keep scripted/non-interactive commands available; do not hang waiting for input in CI or without a suitable terminal.

Align the picker with the installation UX proposed in #2749. Reuse existing dependency ownership and removal rules rather than adding a separate cleanup mechanism.

Describe alternatives you've considered

Use apm deps list, then copy the installed dependency into apm uninstall. This works as a command-line workflow, but long identifiers and truncated terminal tables make it inconvenient. A shell wrapper with an external picker would duplicate scope and identity handling outside APM.

Additional context

Requested after exercising marketplace registration, global installation, updates, and removal with APM 0.30.0. The goal is a small, consistent interactive workflow for adding and removing plugins, not a full-screen package-management application.

Related installation proposal: #2749.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the existing uninstall implementation and the interactive installation proposal in #2749; compare how apm deps list exposes installed identities and scope. Define the picker flow around filtering, multi-selection, confirmation, and cancellation while preserving scripted behavior. Done means selected plugins resolve through existing removal rules without changing the installation on cancellation or waiting for input in unsuitable terminals.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.