# replit/upm

⠕ Universal Package Manager - Python, Node.js, Ruby, Emacs Lisp.

Repository: https://github.com/replit/upm
Canonical: https://ross.abutalabs.com/products/upm
Homepage: https://repl.it
Language: Go
License: NOASSERTION
License Family: other
Last push: 2026-06-25T21:08:04+00:00

## Health v2 (maintenance only)
Score: 74/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 89, release rhythm 40, longevity 100
- inputs: {"age_days": 2644, "days_push": 69, "days_rel": 602, "gap_med": 10.5, "n_releases_24m": 11}
- flags: no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1162, forks 113 (observed 2026-08-28T04:03:49.618151+00:00)

## What it is
UPM is a universal package manager written in Go that provides a single consistent interface for managing packages across many programming languages by wrapping their native package managers. It supports Python, Node.js, Ruby, Rust, Java, PHP, Dart, R, .NET, and Emacs Lisp, with features like dependency guessing and machine-parseable specfile/lockfile listing.

## Use cases
- add and remove packages across languages with one command
- avoid remembering pip vs poetry vs pipenv quirks
- search package indexes from the command line
- guess dependencies from project source files
- generate lockfiles uniformly across languages
- list installed packages in a machine-parseable format

## When to choose
- you work across multiple languages and want one package management interface
- you build tooling or IDEs that need programmatic package manager integration
- you want dependency guessing and parseable lockfile output

## When to avoid
- you only use one language and are happy with its native package manager
- you need advanced features specific to a single package manager
- your language or package manager is not in the supported list

## Facets
- artifact type: cli-tool
- maturity: active
- function: package-manager, cli, developer-tools
- domain: developer-tools, programming-languages
- platform: windows, cli, go
- tags: universal-package-manager, dependency-management, multi-language, replit, command-line, linux, macos

## Member repositories
- replit/upm (main) score 74

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:49.618151+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:31:39.446096+00:00, confidence not recorded.
  - readme: https://github.com/replit/upm (fetched 2026-08-28T04:03:49.618151+00:00, sha 89412b1e3e9f)
  - homepage: https://repl.it (fetched 2026-08-29T12:36:00.782322+00:00, sha 5e8360a0e535)
  - site_page: https://docs.replit.com/getting-started/intro-replit (fetched 2026-08-29T12:36:00.788356+00:00, sha 5a22a76a532d)
  - site_page: https://docs.replit.com (fetched 2026-08-29T12:36:00.789917+00:00, sha 5a22a76a532d)
  - site_page: https://replit.com/integrations (fetched 2026-08-29T12:36:00.785101+00:00, sha e44f0d5383c7)
  - site_page: https://replit.com/pricing (fetched 2026-08-29T12:36:00.786755+00:00, sha 633b8d2dd610)
- Data as of 2026-08-30T08:39:29.467469+00:00.
