No folder loaded

Open a folder from Files, or add photos, videos, audio, documents, or code directly — everything is read and displayed on this device only. Nothing is ever uploaded anywhere.

or drag a folder in from Files
Drop to browse

How LocalSheet works

LocalSheet is a contact sheet for a folder on your own machine. Files are read straight off your disk by the browser and shown here — nothing is uploaded, nothing is sent anywhere, and closing the tab leaves no copy behind.

Loading files

Open Folder
Pick a folder and everything supported inside it is loaded, including anything in its subfolders.
Add Media
Pick individual files instead of a whole folder. Like Open Folder, this replaces whatever is currently loaded rather than adding to it.
Drag & drop
Drop a folder or a selection of files anywhere on the window. Dropped folders are walked the same way Open Folder walks them. Drop several at once and each keeps its own name, so Group by Folder can still tell them apart.
Supported
Images, video, audio, PDFs, plain text and Markdown, and source code. Every extension that counts is listed under File type filters below; anything else in the folder is skipped rather than shown as a broken tile.

Layouts

Grid
Uniform square tiles, cropped to fit. This is the lightest of the three: every tile is a fixed size, so nothing has to be measured before the page can be drawn, and thumbnails simply fade in as they scroll into view.
Waterfall
Masonry columns that show each file at its real proportions. Every visible item's aspect ratio has to be read before anything is placed — otherwise tiles would resize as they load and shove the whole column layout around. That is the brief "Measuring frames…" pause, and it is why a PDF-heavy folder takes longer here, since each document has to be opened just to read its page size.
Justified
Full-width rows, each one sized to fill edge to edge. It needs the same aspect-ratio measurement as Waterfall and additionally re-packs every row from scratch whenever the window changes size, which makes it the most demanding of the three.

File type filters

Image
The lightest type to show. A thumbnail is loaded only once its tile scrolls near the viewport.
.jpg .jpeg .png .gif .webp .heic .heif .bmp .tif .tiff .avif .svg
Video
A moment of the video is decoded to produce a poster frame for the tile. Slightly heavier than a photo, and still done on demand.
.mp4 .webm .mov .m4v .avi .mkv .ogv .3gp
Audio
Nothing visual to render — the tile shows an icon and the track length.
.mp3 .wav .ogg .oga .m4a .flac .aac .opus .wma .weba
PDF
The most expensive type to show. Each document is parsed and its first page rendered to an image by an in-browser PDF engine, which is real CPU work, so no more than two run at once. Turning this filter off before opening a large folder skips that work entirely.
.pdf
Text
The first few lines of the file are read for the tile preview, which costs very little.
.txt .md .markdown
Code
The same cheap snippet preview as Text. Syntax highlighting runs only when you open a file in the viewer, never for every tile.
.js .jsx .mjs .cjs .ts .tsx .py .rb .go .rs .java .c .h .cpp .cc .cxx .hpp .hh .cs .php .swift .kt .kts .scala .sh .bash .zsh .fish .sql .json .jsonc .yaml .yml .xml .html .htm .css .scss .sass .less .vue .svelte .lua .r .pl .pm .graphql .gql .toml .ini .cfg .conf .gradle .properties .bat .ps1 .psm1 .vb .dart .elm .clj .cljs .cljc .ex .exs .erl .hrl .hs .jl .nim .zig .proto .cmakeplus these exact filenames, extension or not: Dockerfile, Makefile, Rakefile, Gemfile, Procfile, Vagrantfile

Finding things

Search
Matches on the name and on the folder path, so typing a subfolder's name narrows the sheet to that folder. Press / from anywhere to jump into the box.
Sort
Order by name, date modified, or file size. Random shuffles the sheet once and then holds that order while you search and filter, so nothing jumps around mid-browse; the button beside the menu deals a fresh shuffle whenever you want one.
Group
Appears only when the loaded files span more than one folder. It breaks the sheet into labelled sections by subfolder, with the chosen sort applied inside each one.
Density
The slider at the right sets how large tiles are, and therefore how many fit across. Frame numbers stay tied to the overall order, so the count in the toolbar always tells you how many files are showing out of how many are loaded.

The viewer

Opening
Click any tile to open it full size. Arrows, swipes, and the on-screen chevrons move through the sheet in the order currently displayed, filters included.
Each type
Images can be zoomed and panned, video and audio play with normal controls, PDFs open in the browser's own PDF viewer so you can page through the whole document, and Markdown renders as formatted text with a toggle to read the raw source instead.
Per file
Every tile carries buttons to open the file in a new tab or save a copy, and the viewer's title bar repeats both alongside a fullscreen toggle.

Keys & gestures

/
Focus the search box.
Previous and next file while the viewer is open — except while a video or audio track is playing, when they scrub five seconds through it instead. Swiping always moves between files.
Esc
Leave fullscreen, or close the viewer or this panel.
Double-tap
Zoom an image in the viewer, then drag to pan around it.

Layout and filter choices can be made before you open anything, and they carry over to whatever you load next. For the quickest browsing of a very large or PDF-heavy folder, stay in Grid and leave the PDF filter off until you actually need those pages.