JSONL Viewer (VSCode Extension) — V1
Custom editor for .jsonl files focused on large-file performance.
Features
- Custom Editor for
*.jsonl
- Table view (columns sampled from first N object rows)
- Virtual scrolling (TanStack
react-virtual)
- Search
- substring match on raw line
key:value match on parsed object
- optional Filter mode (show only matches)
- Row expand
- JSON tree
- raw line
- inline raw editing
- Error marking: parse errors highlighted + error message
- Large file support
- builds a byte-offset line index (cached in VSCode
globalStorage)
- reads visible line ranges on-demand
- Tail -f / streaming append
- watches file growth
- incrementally extends the index
- auto-follow when you are near the bottom
- Open in jsonl.co (with UTM)
Editing & Saving
Edits are tracked as a patch-map (lineNumber → rawLine). The file is rewritten on save (streaming) to support length changes safely.
- Apply an edit inside an expanded row
- Press Save button or
Ctrl/Cmd+S
- Or press Discard to drop pending edits
Telemetry (optional)
- Default: off
- Settings:
jsonl.telemetry.enabled
jsonl.telemetry.level
If enabled, telemetry only sends anonymous usage events (no file content/path). See:
PRIVACY.md
FAQ.md
docs/telemetry/vscode-plugin.md (repo root)
To enable telemetry in a build, you must provide a connection string via env var:
export JSONL_VIEWER_CONNECTION_STRING="<app-insights-connection-string>"
Dev / Debug
From repo root:
bun install --cwd packages/vscode-plugin
bun run --cwd packages/vscode-plugin build
Then in VSCode:
- Open this repo
- Run Run Extension (use
launch.json below)
- In the Extension Development Host, open any
.jsonl file
Suggested .vscode/launch.json (repo root):
{
"version": "0.2.0",
"configurations": [
{
"name": "Run JSONL Viewer Extension",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}/packages/vscode-plugin"
],
"outFiles": [
"${workspaceFolder}/packages/vscode-plugin/dist/**/*.js"
]
}
]
}
Package VSIX
bun run --cwd packages/vscode-plugin package
# output: packages/vscode-plugin/big-jsonl-viewer.vsix
Install locally:
code --install-extension packages/vscode-plugin/big-jsonl-viewer.vsix
CI
GitHub Actions workflow: .github/workflows/vscode-plugin.yml
- Builds extension + webview
- Packages
big-jsonl-viewer.vsix
- Uploads VSIX as artifact
Marketplace publish step is included as commented-out template.