# Retentioneering > Open-source Python library for user-behaviour analysis: it turns raw event logs into interactive maps of how users move through a product — the paths they take, the loops they get stuck in, the step where they leave. Everything runs locally in a notebook, on a DuckDB-backed Eventstream. The complete documentation as a single file: https://retentioneering.com/llms-full.txt ## Guides - [Introduction](https://retentioneering.com/docs): What retentioneering is, what it is for, and how its pieces fit together. - [Quick Start](https://retentioneering.com/docs/quick-start): This guide walks you through a complete example — from installation to your first interactive visualization — in under five minutes. - [Installation](https://retentioneering.com/docs/installation): Requirements, pip/uv install, optional dependencies, and Jupyter setup. - [Path Analysis](https://retentioneering.com/docs/path-analysis): The three aggregated representations of user paths — by step, by transition, by milestone — and how to choose between them. - [Eventstream](https://retentioneering.com/docs/eventstream): Eventstream is the central object in retentioneering. - [Widgets](https://retentioneering.com/docs/widgets): Widgets are interactive visualizations that run directly in your notebook. - [Data Processors](https://retentioneering.com/docs/data-processors): Data processors transform an Eventstream and return a new one. - [Segments](https://retentioneering.com/docs/segments): Segmentation is how you slice an eventstream into comparable groups: mobile vs desktop, paying vs free, during an incident vs before it. - [Path Metrics](https://retentioneering.com/docs/path-metrics): Path metrics are scalar values computed per path (see Key concepts for what counts as a path). - [MCP Server](https://retentioneering.com/docs/mcp-server): retentioneering ships a built-in Model Context Protocol (MCP) server that exposes your eventstream to any MCP-compatible AI agent. - [Agent Skills](https://retentioneering.com/docs/agent-skills): retentioneering ships two Agent Skills — task-oriented instruction packages that coding agents (Claude Code, Codex, Cursor, and other compatible tools) load automatically when a task matches, so the agent follows a tested workflow instead of improvising one from scratch each time. - [Recipes](https://retentioneering.com/docs/recipes): Short recipes that map common product questions to retentioneering tools. - [Migrating from 3.x](https://retentioneering.com/docs/migration-from-3x): retentioneering 5.0 is a ground-up rewrite, not an incremental release. - [Tracking](https://retentioneering.com/docs/tracking): retentioneering collects anonymous usage analytics to help improve the library. ## Widgets - [Transition Graph](https://retentioneering.com/docs/widgets/transition-graph): Displays an interactive directed graph where nodes are unique events and edges represent transitions between them. - [Step Matrix](https://retentioneering.com/docs/widgets/step-matrix): Heatmap of what users are doing at each step of their path: cell [event, step] is the share of paths on that event at that step, so every column sums to 1 (to 0 in diff mode). - [Step Sankey](https://retentioneering.com/docs/widgets/step-sankey): Flow diagram of what users are doing at each step of their path: block height is the share of paths on that event at that step (columns sum to 1, or to 0 in diff mode), and ribbons show how volume moves between two adjacent steps. - [Funnel](https://retentioneering.com/docs/widgets/funnel): Interactive conversion funnel for Jupyter notebooks. - [Segment Overview](https://retentioneering.com/docs/widgets/segment-overview): Interactive segment comparison heatmap for Jupyter notebooks. - [Cluster Analysis](https://retentioneering.com/docs/widgets/cluster-analysis): An interactive tool for finding an optimal splitting of paths by behavioral metrics. ## Data processors - [Filter Events](https://retentioneering.com/docs/data-processors/filter-events): Keep only rows that match a column filter, a Python predicate, or a SQL query. - [Filter Paths](https://retentioneering.com/docs/data-processors/filter-paths): Keep only paths that satisfy a metric condition. - [Add Events](https://retentioneering.com/docs/data-processors/add-events): Insert synthetic events derived from existing events or a SQL query. - [Add Segment](https://retentioneering.com/docs/data-processors/add-segment): Add a new categorical segment column to the eventstream. - [Add Clusters](https://retentioneering.com/docs/data-processors/add-clusters): Cluster paths using ML and add a new segment column with cluster_0, cluster_1, etc. - [Add Start End Events](https://retentioneering.com/docs/data-processors/add-start-end-events): Prepend a path_start and append a path_end synthetic event to each path. - [Collapse Events](https://retentioneering.com/docs/data-processors/collapse-events): Merge consecutive or grouped events into a single representative event. - [To Daily States](https://retentioneering.com/docs/data-processors/to-daily-states): Convert the eventstream into daily lifecycle-state events. - [Drop Segment](https://retentioneering.com/docs/data-processors/drop-segment): Remove a segment column from the eventstream. - [Drop Events](https://retentioneering.com/docs/data-processors/drop-events): Remove events from the eventstream by name. - [Edit Events](https://retentioneering.com/docs/data-processors/edit-events): Rename and/or delete events in a single operation. - [Rename Events](https://retentioneering.com/docs/data-processors/rename-events): Rename events using a mapping dict. - [Rename Segment Levels](https://retentioneering.com/docs/data-processors/rename-segment-levels): Rename levels of a segment column using a mapping dict. - [Sample Paths](https://retentioneering.com/docs/data-processors/sample-paths): Randomly sample paths (and all their events). - [Split Sessions](https://retentioneering.com/docs/data-processors/split-sessions): Split each path into sub-sessions and add session ID and index columns. - [Truncate Paths](https://retentioneering.com/docs/data-processors/truncate-paths): Trim each path to the window between two anchor events (inclusive). - [URLs to Events](https://retentioneering.com/docs/data-processors/urls-to-events): Turn a raw URL column into structured event names using a URL path tree. ## Optional - [Legacy documentation (v2.0, v3.3)](https://doc.retentioneering.com/3.3/doc/): reference for the older, no-longer-developed releases. Only useful for reading code written against one of those versions — the 5.x API differs throughout.