Package manager
A package manager is a program that downloads, installs, updates, and removes software and the ready-made code components required for their operation with a single command.
In plain terms
Imagine assembling furniture, where a warehouse worker hands you every screw, hinge, and panel in the exact size needed based on the blueprint. A package manager does the same with software: you state your needs, and it finds, retrieves, and installs the components.
Most of today's programs are not made from scratch but consist of reusable code parts written by others, so-called packages. A package often relies on further packages, which in turn rely on others. It is almost impossible to follow this chain by hand, but the package manager automatically goes through it.
You will encounter two types of package managers. One installs programs across the entire machine, roughly like your phone's app store but via commands. The other belongs to a specific programming language and manages the building blocks of individual projects.
In the AI era, it became more important because coding agents themselves use package managers. If an agent writes a program for you, it installs packages along the way, meaning it decides on your behalf what foreign code gets onto your machine.
How it works
- You state your wish: you enter a command (for example, to install a specific package), or the project records what it needs in a list.
- The package manager contacts the repository, a large online warehouse where different versions of packages are available.
- It calculates dependencies: it checks which additional packages the requested package requires and which versions are compatible with each other.
- It downloads and places the necessary files in their correct location, often using verification code to check whether the downloaded package is corrupted or has been swapped.
- It records what was added, so updates and removals proceed in an orderly manner. Many language package managers (for example, npm) additionally record the exact versions in a so-called lock file, ensuring the same configuration can be created on another machine.
An everyday example
You ask a coding agent to build a small website for your business. On the screen, you see it run a command starting with "npm install" or "pip install", and depending on settings, it requests permission: in this case, the package manager downloads dozens of ready-made building blocks from the internet. It is worth checking at least the names of the packages before you agree.
Who is affected
A common misconception
Limits and risks
- Supply chain attack: if malicious code enters a popular package, it can reach countless machines and programs via the package manager.
- AI models sometimes invent non-existent package names, and attackers can upload malicious packages under such names, so verify any unknown name suggested by an agent.
- A misspelled name can easily lead to installing a deceptive, similarly named fake package.
- Versions can conflict: two packages may require different releases of the same third package, and after an update, a program that previously worked may break.
Similar, but not the same
- app store – The app store offers end users ready-made programs that the store operator has reviewed. The package manager mainly supplies programs and building blocks to developers and operators, and in the case of language package managers, typically without prior review.
- package registry – A repository is the online storage where packages are kept, while a package manager is the program that downloads them and arranges them on your machine.
- Version control – Version control (e.g., Git) tracks changes to your own code, while package management acquires and maintains code written by others that you use.
Related concepts
software development, developer tools, software supply chain
npm, pip, lock file, Package registry
dependency, open source, coding agent, Version control, supply chain attack
A brief history
Package managers spread with Linux distributions in the 1990s: Debian's dpkg tool appeared in 1994, and the APT built on it in 1998. Among package managers tied to programming languages, JavaScript's npm started in 2010, and today one of the world's largest package repositories belongs to it.
Where things stand
By the end of 2026, practically all software development relies on package managers, and coding agents use them routinely. The focus has shifted to security: defending against infected packages and packages with made-up names is one of the main topics.
Also known as
Package manager · package management system · csomagmenedzser · dependency manager · package manager · package management system · dependency manager
Sources
This entry was machine-edited and has undergone machine expert review; the “In the news” section updates automatically from Agent Age stories.