A lightweight, browser-based tool for visualizing folder structures, JSON data, and public GitHub repositories as an interactive tree β with optional advanced file-type icons, inline annotations, color highlights, and PNG export.
Built to be fast, privacy-friendly, and dependency-light.
Runs entirely in the browser. No uploads. No servers.
- Pick a local folder using the File System Access API
- Lazy-loads subfolders for performance
- Expand / collapse individual nodes or the entire tree
- Alphabetical ordering (folders first)
Requires Chromium-based browsers (Chrome, Edge)
- Load and explore
.zipfiles without extracting them - Displays the complete folder structure instantly
- View nested directories and all contained files
- Works in all modern browsers
- Perfect for inspecting archives before extraction
- Load any
.jsonfile locally - Smart labeling for array items using priority fields:
name,username,title,id
- Clean, readable tree structure
- Handles deeply nested data safely
- Load the folder structure of public GitHub repositories
- Enter
owner/repo(optionally a branch name) - Uses the GitHub REST API to fetch the repository tree
- Fully read-only β no authentication required
Notes:
- Only public repositories are supported
- Very large repositories may load slowly
- GitHub API rate limits may apply
This mode is useful for quickly inspecting project layouts without cloning anything locally.
- Hover any node and click π¬ to add a short inline annotation
- Comment appears next to the label as
β your note - Click π¬ again to edit or close the editor
- Press
Enterto save,Escapeto cancel - Comments are included in PNG exports
- Persisted in
localStorageβ survive page reloads - Clear all comments at once with the π Comments button in the tree panel header
- Hover any node and click π¨ to open the color palette
- Choose from 6 colors to highlight the row with a tinted background and left border
- For folder nodes, use the π button inside the palette to extend the highlight to all folder contents
- Changing a folder's color while the folder highlight is active automatically updates both the row and its contents
- Highlights are included in PNG exports
- Persisted in
localStorageβ survive page reloads - Clear all highlights at once with the π Colors button in the tree panel header
- Once a node is colored, hover it and click π to attach a text label to that color
- Labels are shared across all nodes using the same color β set once, applies everywhere
- Each label must be unique across colors (duplicates are blocked with a validation error)
- The legend renders live below the tree as a colored-dot reference panel β hidden when no data is loaded
- The legend is included as a separate section in PNG exports
- Persisted in
localStorageβ survives page reloads - Use π Legend to clear only the labels while keeping color highlights visible
- Use π Colors to clear both highlights and legend labels at once
Three dedicated buttons sit in the tree panel header:
| Button | What it clears | Keeps |
|---|---|---|
| π Colors | All color highlights + all legend labels | Comments |
| π Legend | All legend labels only | Colors, comments |
| π Comments | All inline comments | Colors, legend |
All three actions also wipe the corresponding localStorage entries β cleared data does not come back on reload.
| Dark theme | Light theme |
|---|---|
![]() |
![]() |
Both images show comments, color highlights, folder highlights, and the legend panel together.
| π¬ Comments | π¨ Color highlights | π Legend |
|---|---|---|
![]() |
![]() |
![]() |
- System, Dark, and Light themes
- Theme-aware PNG export
- Theme preference stored locally
- Export View β exports exactly what's expanded
- Export Full β auto-expands everything before export
- Optional background (transparent or theme-colored)
- Export width auto-fits to content
- Icons are rasterized safely for reliable exports
- Action buttons, input boxes, and palettes are never included in exports
- Legend section is appended automatically if labels are defined
The tool supports exporting the tree view to PNG with different themes and icon modes.
Below are example exports showing the available combinations.
| Dark theme | Light theme |
|---|---|
![]() |
![]() |
| Dark theme | Light theme |
|---|---|
![]() |
![]() |
- Export width automatically fits the visible content
- Icons are rasterized for reliable, crisp output
- Export View captures only expanded nodes
- Export Full temporarily expands the entire tree
- Color highlights, comments, and legend are all included in exports
- Toggleable "Advanced Icons" mode
- Loads official file-type icons (based on VS Code icon set)
- Supports many formats:
- Code:
.js,.ts,.cs,.java,.py,.cpp, β¦ - Media:
.mp3,.mp4,.png,.svg, β¦ - Docs:
.pdf,.docx,.pptx,.xlsx, β¦ - Archives, fonts, binaries, configs, and more
- Code:
- Icons are cached locally for performance
- Falls back gracefully to emojis if unavailable
- Nothing is uploaded
- Files and folders are accessed only via browser APIs
- No data leaves your machine
- No analytics, tracking, or background requests (except optional icon fetching)
This tool is safe to use with sensitive local data.
| Feature | Support |
|---|---|
| Folder picker | Chrome, Edge |
| ZIP viewer | All modern browsers |
| JSON viewer | All modern browsers |
| PNG export | All modern browsers |
| Advanced icons | All modern browsers |
| Comments | All modern browsers |
| Highlights | All modern browsers |
| Legend | All modern browsers |
- Open the hosted page
- Click Pick Folder, Pick JSON, or load a ZIP / GitHub repo
- Explore the tree
- Optionally annotate with comments, colors, and legend labels
- Export if needed
git clone <repo-url>
cd structure-viewer
open index.htmlNo build step required.
- Vanilla HTML / CSS / JavaScript
- html2canvas for PNG export
- File System Access API (Chromium)
- Bootstrap Icons (UI chrome)
- Zero frameworks
Designed to run well even on older or low-powered machines.
This project was built with a strong focus on:
- Simplicity
- Performance
- Correct exports
- Predictable behavior
If something looks boring in the code β it's probably intentional π
- File-type icons inspired by the VS Code icon ecosystem
- Thanks to browser vendors for finally making local file access usable
β If this tool saves you time, consider supporting on Ko-fi
Enjoy exploring your data π²








