Self-hosted WMS built for the floor.
Lightweight, opinionated warehouse management for multi-channel sellers shipping 50–500 orders a day.
If you're outgrowing spreadsheets but the enterprise players feel like overkill, that's exactly the gap PickOps fills.
AGPL-3.0 self-hosted. Commercial license available for hosted deployments.
Screenshot: the floor pick walk on a phone — location FH-04-C-03, item 2 of 2 picked, with scan-to-confirm and a skip-order option.
Built for warehouses, not boardrooms
Most WMS tools are built by software people who've read about warehouses. PickOps starts from the workflow on the floor and works back.
Pick lists sorted by aisle
Workers traverse the warehouse in a single pass. Location-grouped pick lists honor the building → aisle → bay hierarchy you actually walk.
Scanner-native receive + pick + pack
Scan-each flows on touch-first kiosks. Idempotent on the wire so a flaky network never double-posts. Manual entry always works as a fallback — scanners enhance, never required.
Transaction-journaled inventory
Every movement is a transaction record — inbound, outbound, transfer, cycle count. Inventory levels are projections of the journal, not the source of truth. Audit trail comes free.
Full identifier support
EAN, ISBN, UPC, SKU, internal codes — any product can carry any number of identifiers. Imports resolve against all of them, not just one.
Flexibility first
No expensive capital investment up front. Start with the equipment and process you already have, and add scanners, kiosks, and bin locations as you need them.
Self-hosted, Docker-native
Spin up locally or on your own infrastructure with Docker Compose. Intentionally minimal system requirements. Grows with you.
One product, three surfaces
Floor workers tap. Pack stations scan. Admins type. Three UIs each tuned to the input mode that role actually uses.
Screenshot: the floor pick walk on a phone — location FH-04-C-03, item 2 of 2 picked, with scan-to-confirm and a skip-order option.
Floor
Big tap targets, single-pass aisle traversal, scan-each picking that auto-advances.
Screenshot: the admin orders table on a desktop — a dense, filterable list of orders with per-package actions.
Admin
Dense tables, keyboard-driven filters, bulk imports. Same auth, role-gated routes.
Screenshot: the pack station on a tablet — items scanned one by one against the order, with a running packed count.
Pack station
One scan per item, Enter seals the box. Idempotent on the wire so a flaky network never double-posts.
Screenshot: the floor pick walk on a phone — location FH-04-C-03, item 2 of 2 picked, with scan-to-confirm and a skip-order option. Screenshot: the admin orders table on a desktop — a dense, filterable list of orders with per-package actions. Screenshot: the pack station on a tablet — items scanned one by one against the order, with a running packed count.
Floor
Big tap targets, single-pass aisle traversal, scan-each picking that auto-advances.
Admin
Dense tables, keyboard-driven filters, bulk imports. Same auth, role-gated routes.
Pack station
One scan per item, Enter seals the box. Idempotent on the wire so a flaky network never double-posts.
Quickstart
Three lines to get a local instance running. Then run migrations and bootstrap a first admin from the install docs.
- Needs
- Docker + Docker Compose. Docker Desktop on Mac and Windows, Docker Engine on Linux.
- Disk
- ~2 GB free for the database and container images.
- Hardware
- Any machine that runs Docker. Barcode scanners and label printers are optional — every flow works without them.
git clone https://github.com/pickops/pickops.git && cd pickops
cp .env.example .env
docker compose up --buildOpen core, in the open
There is no crippled free tier. Everything described on this page is in the open-source repository.
AGPL-3.0 — the whole product
No feature gating, no seat limits, no per-order fees, no upsell wall. Self-host it, read it, modify it, and run your warehouse on it for as long as you like. Your data stays in your own Postgres instance.
Commercial license
For organizations that can't accept AGPL terms, or that want to offer PickOps to others as a hosted service. A managed hosted tier doesn't exist yet — if you need one, say so in a discussion and it'll shape what gets built.
Start a discussionCommon questions
What is PickOps?
PickOps is an open-source, self-hosted warehouse management system (WMS) for multi-channel sellers shipping roughly 50-500 orders a day. It handles receiving, picking, packing, and inventory on hardware you control.
Do I need barcode scanners to use it?
No. Scanners make every flow faster, but none of them require one — manual entry works everywhere, including for items that have no barcode at all. A dead scanner battery slows the floor down; it doesn't stop it.
Does it print shipping labels?
Not yet. Packing slips print today through the browser print pipeline, and there's a ZPL endpoint for Zebra thermal printers, so location and badge labels work now. Carrier labels are the next integration on the roadmap.
Does it connect to Amazon, eBay, or Shopify?
Not yet. Orders come in today via TSV and CSV import with flexible column mapping. Marketplace connectors are designed as plugins rather than core, so they can be added without reshaping the product.
How do I get my data out?
It's your PostgreSQL database, running on your own server — connect to it directly and query it however you like. There's no export request to file and nobody to ask.
What happens if the project stops being maintained?
The AGPL licence means you keep a running copy and the source it was built from, forever. Nothing phones home, nothing expires, and no vendor can switch it off.
Open source. Self-hosted. Yours.
Star the repo if PickOps is useful to you. Contributions welcome, read the contributing guide to get started.