
## What is bulker?

Bulker manages multi-container computing environments that are both **modular** and **interactive**. A bulker environment consists of an individual container image for each command. Bulker creates shimlinks — symlinks to the bulker binary that dispatch to the right container based on the command name. Commands appear on your PATH as if natively installed.

Bulker is a single static binary with zero dependencies. No Python, no pip, no virtualenvs — one `curl` command and you're done.

## What makes bulker useful?

1. **It simplifies using containers**. If you activate `samtools` with bulker, you invoke it by typing `samtools`; bulker handles `docker run --volume ...` behind the scenes. It spans container engines (Docker and Apptainer), providing a single interface. You'll be using containers without knowing it.

2. **It distributes multiple tools at once**. Distribute a *set* of images — all the tools for a workflow — with one command: `bulker activate namespace/toolset`. Bulker loads multiple independent tools with a single command.

3. **It makes workflows automatically containerized**. Since bulker commands act like native commands, activating a crate immediately containerizes any workflow. Workflow authors need only provide a manifest listing the required commands.

4. **It makes environments portable and interactive**. Bulker environments decouple tool settings from environment settings. Move environments between servers, cloud, and your laptop. Activate and deactivate interactively.

## Is bulker a package manager?

Bulker is not a package manager, but it can replace some package manager tasks. Instead of installing software natively with pip or conda, you can activate it through bulker. The differences:

- **Bulker uses containers**. Package managers install tools natively. Bulker runs containerized software.
- **Bulker is collection-first**. Most package managers operate on individual tools (`pip install tool`). Bulker operates on collections: `bulker activate toolset`.

## Is bulker a workflow manager?

Bulker is not a workflow manager. But bulker can take over the container-management aspect of an existing workflow. The key difference:

- **Bulker environments are independent**. They are not tied to workflows. Bulker only cares about the computing environment.

Write your workflow without containers, activate a bulker crate, and you get portability, interactivity, and efficiency.

