Skip to content

[Feature]: Add first-class pip install support #238

@Drswith

Description

@Drswith

Problem or opportunity

Quantex can currently model managed installs for bun, npm, brew, cargo, and winget, but Python package installs are not first-class managed install methods. Python-based agent CLIs therefore have to be represented as unmanaged command hints, for example vibe currently exposes binaryInstall('pip install mistral-vibe') instead of a managed pip lifecycle method.

That makes pip-based agents less agent-friendly than npm/cargo/brew agents:

  • installMethods cannot distinguish a pip package from a generic binary/manual command.
  • capabilities and doctor do not report pip availability.
  • install/update/uninstall flows cannot use a shared pip provider.
  • structured output and schema cannot expose pip as a stable managed installer contract.

Desired outcome

Users and agents should be able to install, inspect, update, and uninstall supported Python-distributed agent CLIs through Quantex using a first-class pip managed install method when upstream documentation verifies pip as a supported distribution channel.

Expected direction:

  • Add pip as a managed install type and package metadata target.
  • Add a catalog helper such as pipInstall(...) for agent definitions.
  • Add pip availability to qtx capabilities and qtx doctor output.
  • Add a pip package-manager provider for install/update/uninstall behavior where the operation is reliable.
  • Update structured schema/spec coverage so pip is part of the stable machine-readable contract.
  • Migrate verified pip-based agent definitions, starting with Mistral Vibe if its pip install remains an upstream-supported path.

Scope and non-goals

In scope:

  • Modeling pip as a managed installer for agent lifecycle operations.
  • Cross-platform command planning for Windows, macOS, and Linux.
  • Detection of an available pip entry point, with a deliberate fallback strategy if pip vs python -m pip needs to differ by platform.
  • State recording, command rendering, structured output, and validation updates needed for the new install type.
  • OpenSpec coverage for the behavior contract before implementation.

Non-goals:

  • Publishing Quantex itself to PyPI.
  • Managing arbitrary Python environments, virtualenv creation, pyenv/asdf policy, or uv tool installs as part of this issue.
  • Expanding Quantex into a workflow orchestration platform.
  • Changing the default Bun/npm self-upgrade behavior for Quantex.

Linked discussion or prior context

No prior GitHub discussion link. Local context observed during intake:

  • src/agents/types.ts currently defines ManagedInstallType = 'bun' | 'npm' | 'brew' | 'cargo' | 'winget'.
  • src/agents/definitions/vibe.ts currently represents pip install mistral-vibe as an unmanaged binaryInstall(...) command.
  • openspec/specs/agent-catalog/spec.md and related update/capability specs will likely need a new OpenSpec delta.

Which durable artifacts should this likely create or update?

  • OpenSpec

Done when

  • An OpenSpec change captures the pip managed-install contract before implementation starts.
  • pip is represented in agent package metadata, managed install types, install method helpers, installer capabilities, command rendering, and structured schema where applicable.
  • qtx capabilities and qtx doctor report pip availability consistently with other managed installers.
  • Install, update, uninstall, inspect/resolve guidance, and recorded install state handle pip-installed agents consistently with the existing lifecycle model.
  • At least one verified pip-distributed agent definition is migrated from unmanaged command hints to the new managed pip method.
  • Tests cover the new managed installer behavior, structured output/schema changes, and representative catalog usage.
  • User-facing docs/specs are updated if the observable install surface changes.

Guardrails

  • I understand this issue should promote durable outcomes into repo-native docs instead of adding new ad hoc root markdown files.
  • I understand this issue should stay within Quantex's lifecycle CLI scope unless an explicit decision changes that scope.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions