SIP2 Log Reader
Makes SIP2 library protocol log files human-readable in VS Code. Built for library support technicians and engineers who spend time diagnosing self-check kiosk and LMS communication issues.
Features
Syntax highlighting
Opens .sip2.log and *.sip2.*.log files with automatic syntax colouring: timestamps, session IDs, actor labels (SC / LMS), direction arrows, and message codes are each given a distinct colour so you can scan a log at a glance.
Message category colour bands
Every message line receives a subtle background tint based on what it does. Paired requests and responses share the same hue; consecutive pairs alternate between two shades so the log reads like a banded table.
| Category |
Covers |
| Auth |
Login, SC Status / ACS Status |
| Patron |
Patron Status, Patron Info, End Session, Block Patron |
| Checkout |
Checkout, Renew, Renew All |
| Checkin |
Checkin |
| Item |
Item Information, Item Status Update |
| Hold |
Hold |
| Fee |
Fee Paid |
| Error |
Request Resend messages |
Hover over any part of a SIP2 message line to get contextual information:
- Timestamp — hover shows the exact date/time with milliseconds.
- Message code — shows the message name, direction (
SC→LMS or LMS→SC), and a description of what it does.
- Fixed fields — a table of all fixed-position fields for that message type with their parsed values.
- Variable fields (
AA, AB, AO, …) — shows the field name and description alongside the current value.
- Exchange summary — any hover on a message line shows the full request → response pair: both message names, round-trip time in milliseconds, and whether the exchange succeeded or failed.
- Screen message — if the response includes an
AF screen message, it appears in the hover so you can read it without counting pipe delimiters.
- Checksum — if either side carries a bad
AZ checksum, a warning appears in the hover.
Click-to-inspect details panel
Click anywhere on the payload portion of a message line (or press Alt+Enter) to open a side panel showing a full field-by-field breakdown of the request and response together:
- Each message appears as a card with a colour-coded left border matching its category.
- The card header shows the message name, direction badge (
REQUEST / RESPONSE), line number, and timestamp.
- For response cards, the elapsed time since the matching request is shown.
- Every field is listed with its value;
Y/N flags are coloured green/red for quick scanning.
patronStatus and summary bit-fields are expanded into labelled rows.
- The raw payload is shown at the bottom with syntax highlighting (message code, field IDs, checksum).
The panel opens beside the log file at a 75/25 split and updates whenever you click a different message.
AZ checksum validation
The 2's-complement checksum is validated for every message that contains an AZ field. Invalid checksums are flagged in the hover tooltip with the actual and expected values.
Request / response timing
The extension indexes the full file in the background, matching each request to its response by session ID and sequence number. Once indexed, every hover shows the round-trip time in milliseconds. Responses with no matching request (possible timeout) are flagged once indexing is complete.
The extension expects log files in the following format, one message per line:
2026-05-21 10:18:54,086 ( 1) SC -> 9300CN|CO|CP|AY0AZFAA5\r
│ │ │ │ │
│ timestamp │ │ │ └─ SIP2 payload
│ │ │ └───── direction -> SC→LMS <- LMS→SC
│ │ └────────── actor: SC, LMS, or -- (system)
│ └──────────────── session ID
└────────────────────────────────────────── YYYY-MM-DD HH:MM:SS,mmm
System/connection events use -- for both actor and direction:
2026-05-21 10:18:54,079 ( 1) -- Connected to LMS (localhost:5001)
Usage
| Action |
Result |
Open a .sip2.log file |
Syntax highlighting and colour bands activate automatically |
| Hover over any message field |
Tooltip with field name, description, and value |
| Hover anywhere on a message line |
Exchange summary with timing and outcome |
| Click on the payload area of a message |
Opens the details panel beside the log |
Alt+Enter |
Toggles the details panel for the message at the cursor |
| Click the details panel's × |
Closes the panel and clears the selection |
Requirements
VS Code 1.85 or later. No other dependencies.
SIP2 protocol reference
SIP2 (3M Standard Interchange Protocol version 2) is the protocol used between self-check kiosks (SC) and library management systems (LMS, also called ACS in the spec). Messages begin with a two-digit command code followed by fixed-length fields and pipe-delimited variable fields (AA, AB, AZ, …).
Full message code and field identifier tables are built into the extension and surfaced in hover tooltips — no need to keep the spec open alongside the log.