Lineman is a CLI collection runner for WebSocket requests.
It’s inspired by Postman Newman—Postman’s CLI runner for Postman collections—which primarily targets REST / request-response workflows. Lineman takes the same “run a collection from the terminal” approach, but is designed specifically for WebSocket interactions (connect, send, receive, and assert on messages).
Lineman/
├─ src/
│ ├─ cli/
│ │ ├─ index.ts
│ │ ├─ types.ts
│ │ ├─ commands/
│ │ │ └─ run.ts
│ │ ├─ format/
│ │ │ └─ output.ts
│ │ └─ utils/
│ │ ├─ colors.ts
│ │ └─ errors.ts
│ ├─ runner/
│ │ ├─ index.ts
│ │ ├─ executor.ts
│ │ ├─ connection.ts
│ │ ├─ message-buffer.ts
│ │ ├─ assertions.ts
│ │ └─ types.ts
├─ collections/
│ └─ sample.json
└─ package.json
Build and link locally:
npm run build
npm linkRun a collection:
lineman run ./collections/sample.jsonIf file argument is missing:
Error: collection file required
Usage: lineman run <file>
Sample success output:
Running collection: Lineman Sample Collection
→ Test Request
Connecting to wss://ws.postman-echo.com/raw
SEND: Hello, WebSocket!
RECEIVE: Hello, WebSocket! ✓
✓ Test Request passed
Summary:
1 passed, 0 failed