Browser-based ROSbag analyzer that runs entirely in the browser using WebAssembly. No installation, no server, no WSL required - just open in any modern browser!
- 🌐 100% Browser-based - No server or backend required
- 📦 Drag & Drop - Simply drag your .bag file to analyze
- 🔍 Advanced Filtering - Filter by nodes, severity, keywords, or regex patterns
- 📊 Statistics - Visual statistics and top node analysis
- 💾 Export - Export filtered results to CSV, JSON, TXT, or Parquet
- 🎨 Modern UI - Clean, responsive interface with dark mode support
- ⚡ Fast - Powered by WebAssembly for native-like performance
- 🔁 Supported ROS versions - ROS1 (
.bag) and ROS2 MCAP (.mcap,.mcap.zstd). Both indexed and non-indexed (streaming) MCAP files are supported.
Open the live demo at: https://rosbag-analyzer.tiryoh.com
Download the latest release from Releases, extract the zip, and open the HTML file in your browser. Works completely offline — no internet connection required.
cd rosbag-analyzer-web
npm install
npm run devThen open http://localhost:3000 in your browser.
cd rosbag-analyzer-web
npm install
npm run buildThe built files will be in dist/ folder. You can serve them with any static web server, or just open dist/index.html directly in your browser.
-
Upload ROSbag File
- Click the upload area or drag & drop your
.bag,.mcap, or.mcap.zstdfile - The tool will automatically detect rosout and diagnostics topics
- Click the upload area or drag & drop your
-
Apply Filters
- Select filter mode (OR/AND)
- Choose severity levels (DEBUG, INFO, WARN, ERROR, FATAL)
- Select specific nodes
- Add keywords or regex patterns
- Click "Apply Filters"
-
View Results
- Browse filtered messages in the table
- Toggle statistics view for insights
- Messages are color-coded by severity
-
Export Results
- Choose format: CSV (Excel compatible), JSON, TXT, or Parquet
- Parquet exports can be queried with DuckDB, pandas, Polars, or any Parquet-compatible tool
duckdb -c "SELECT * FROM 'rosout_export.parquet' WHERE severity = 'ERROR';" - Download filtered results instantly
- React + TypeScript - Modern UI framework with type safety
- Vite - Lightning-fast build tool
- @foxglove/rosbag - ROSbag parser compiled to WebAssembly
- @mcap/core - MCAP file reader (indexed & streaming)
- fzstd - Zstandard decompression for
.mcap.zstdfiles - Tailwind CSS - Utility-first styling
- Lucide Icons - Beautiful icon set
ROS 2 workflows around rosout and diagnostics:
- whill-labs/ros2-diag-monitor - Terminal UI for monitoring ROS 2 diagnostics over SSH.
- araitaiga/rosout_mcp - MCP server for querying
/rosoutlogs from ROS 2 bag files. - ros-visualization/rqt_console - ROS 2
rqtplugin for viewing and filteringrosoutmessages. - ros-visualization/rqt_robot_monitor - ROS 2
rqtplugin for viewing aggregated diagnostics.
- Node.js 22+ and npm
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLintnpm run test:e2e- Run Playwright end-to-end tests
This repository is released under the MIT License, see LICENSE. Unless attributed otherwise, everything in this repository is under the MIT License.
Contributions welcome! Please feel free to submit a Pull Request.

