go-session/README.md
Snider 53d3bd978d
All checks were successful
Security Scan / security (push) Successful in 10s
Test / test (push) Successful in 37s
chore: add Go repo norms (badges, contributing, lint, taskfile, editorconfig)
Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-23 06:45:48 +00:00

45 lines
1.8 KiB
Markdown

[![Go Reference](https://pkg.go.dev/badge/forge.lthn.ai/core/go-session.svg)](https://pkg.go.dev/forge.lthn.ai/core/go-session)
[![License: EUPL-1.2](https://img.shields.io/badge/License-EUPL--1.2-blue.svg)](LICENSE.md)
[![Go Version](https://img.shields.io/badge/Go-1.26-00ADD8?style=flat&logo=go)](go.mod)
# go-session
Claude Code JSONL transcript parser, analytics engine, and HTML timeline renderer. Parses Claude Code session files into structured event arrays (tool calls with round-trip durations, user and assistant messages), computes per-tool analytics (call counts, error rates, average and peak latency, estimated token usage), renders self-contained HTML timelines with collapsible panels and client-side search, and generates VHS tape scripts for MP4 video output. No external runtime dependencies — stdlib only.
**Module**: `forge.lthn.ai/core/go-session`
**Licence**: EUPL-1.2
**Language**: Go 1.25
## Quick Start
```go
import "forge.lthn.ai/core/go-session"
sess, stats, err := session.ParseTranscript("/path/to/session.jsonl")
analytics := session.Analyse(sess)
fmt.Println(session.FormatAnalytics(analytics))
// Render interactive HTML timeline
err = session.RenderHTML(sess, "timeline.html")
// Search across all sessions in a directory
results, err := session.Search("~/.claude/projects/my-project", "git commit")
```
## Documentation
- [Architecture](docs/architecture.md) — JSONL format, parsing pipeline, event types, analytics, HTML rendering, XSS protection
- [Development Guide](docs/development.md) — prerequisites, build, test patterns, coding standards
- [Project History](docs/history.md) — completed phases, known limitations, future considerations
## Build & Test
```bash
go test ./...
go vet ./...
go build ./...
```
## Licence
European Union Public Licence 1.2 — see [LICENCE](LICENCE) for details.