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 tooltips
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→LMSorLMS→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
AFscreen message, it appears in the hover so you can read it without counting pipe delimiters. - Checksum — if either side carries a bad
AZchecksum, 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/Nflags are coloured green/red for quick scanning. patronStatusandsummarybit-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.
Log format
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.