Your files deserve better.

Phials turns the file manager into a real workspace: write like a modern notes app, organize like a personal database, preview anything, and search everything. Local-first, extensible, and built for native performance.

Explore features
Phials browsing the Downloads folder with date-grouped files and a macOS app installer preview

Open fewer apps.

Preview and edit in place.

Phials renders the file you clicked, not a stand-in for it. Read a PDF, scrub a video, fix a typo in a Markdown note, all without leaving the file manager.

Give a file the whole window.

Open files into their own tab, full size: edit documents and spreadsheets, annotate images, full sized previews of almost anything. Stop launching a second app to read or change what you clicked.

Her it is on a Markdown file, a format with an every-growing relevance deserves a modern powerful editor. More on that just below.

Unsaved changes
project-brief.md

Project brief

Editing the file itself, full size, in its own tab. The same block editor that powers notes, here on a plain .md file on disk.

  • Lock the launch date
  • Sign off on the hero copy
  • Final pass on the pricing page

Ship notes go here

Built-in editors for the small fixes.

Crop a screenshot before you ship it. Fix a comment in a TS file. Bump a CSV value. Light-touch editors save back to disk so one-line changes don't have to round-trip through a separate app. The deeper authoring surface is block-based notes attached to every file inside a Vial.

City skyline at dusk with lit buildings
Image editor Crop, resize, annotate, and convert formats. Save back to disk from the same toolbar.
utils.ts TS
import type { Pane } from './pane';
import type { ViewManager } from './view';

export async function saveActivePane(pane: Pane): Promise<void> {
  if (!pane.isDirty()) return;

  await pane.save();
  pane.markClean();
}

export function focusPaneAfterSave(view: ViewManager, pane: Pane): void {
  view.setActivePane(pane.id);
}
Code & Markdown Syntax highlighting for dozens of languages. The block editor saves plain .md on disk, no proprietary format.
inventory.csv
100%
SKUQtyStatus
1CAM-042128In stock
2LENS-1112Low
3BAT-0964In stock
4TRIP-038Low
5BAG-1741In stock
6CARD-88256In stock
7MIC-0419Low
CSV editing Edit cells in place. Save and revert from the preview toolbar without spinning up a spreadsheet app.

Thumbnails that look like the file.

Image and video frames cached on disk, sized to fit Grid tiles or a larger leading column in Details. No spinning placeholders for files Phials can already render.

City skyline at dusk with lit buildings
city-skyline.jpg

Introducing Vials

Turn any folder into a database.

A Vial supercharges your files with custom properties, ratings, tags, boards, saved views, and notes. Vials are local-first and portable, existing wherever your files are.

Custom properties & metadata

Index a directory as a Vial and attach ratings, tags, status, dates, and custom columns to every file. Filter, sort, group, and open board views while the originals stay on disk.

Custom Properties
Text, dates, selects, and checkboxes on any file
Tags
A global tag system for organization across all Vials
Boards
Kanban-style views over Vial properties and status
Portable
Vials are portable. Anywhere your folders are, your Vials are.
notes_db
6 properties
Name
Type
Modified
Tags
Status
meeting-notes.md Markdown May 24
Research
requirements.pdf PDF May 22
Reference
research-brief.docx Word May 20
Search tags…
Research
Draft
Reference
Client
timeline.md Markdown May 18
Client
4 documents in vial

Make notes on every file

Inside a Vial, every indexed file gets its own Markdown note in .phials/notes/, not only .md files. Attach research to a PDF, captions to a photo, or a brief to a spreadsheet without changing the file itself.

Block based markdown editor
A true no-compromises block-based markdown editor. Canonical to your .md files, not the cloud.
Wikilink local files
Link to your local files, with embedding support for images and other markdown.
Interactive blocks
No need to remember syntax, just slash command and build it.
Canonical Markdown
No exporting, no data layer. The file is the source of truth.
requirements.pdf
Block note
Website redesign requirements

Per-file note attached to requirements.pdf in your notes_db Vial. Block editor is where deep authoring lives: headings, lists, callouts, and slash inserts.

Portable with the Vial: Notes save as clean Markdown under .phials/notes/. Back up or sync the folder and the notes come along.

/
Insert block
Heading 2
Bulleted list
Code block
Callout

Every folder is a real table.

File metadata and Vial properties on the same row. Filters you can stack, sorts you can layer, groups by any column you add. Up to four independent panes per tab so two folders are always one glance apart.

Real columns. Per folder.

Files render as a Details table you can shape per directory. Pull in resolution, modified, and other extracted metadata. Add ratings, tags, status, and any custom property from a Vial. Reorder, resize, and hide columns without touching what is on disk.

  • File metadata, Vial properties, same row
    Resolution and modified date next to ratings, tags, and status.
  • Sort, resize, reorder
    Click a header to sort. Drag to resize. Reorder to fit the task.
  • Per-folder column visibility
    Hide what you do not need. Files on disk stay untouched.
Brand Refresh
~/Projects/2026
Name
Type
Modified
Tags
Status
design-brief.pdf PDF May 24
Research
launch-deck.key Keynote May 22
Client
copy-v3.md Markdown May 20
Search tags…
Research
Draft
Reference
Client
assets-final.zip Archive May 18
Reference
Status Review or Done AND Tags has Client
Modified then Name
Status
Name
Type
Modified
Tags
Status
In Review 2
launch-deck.key Keynote May 22
Client
copy-v3.md Markdown May 20
Draft
Done 2
design-brief.pdf PDF May 24
Research
assets-final.zip Archive May 18
Reference

Stack filters. Layer sorts. Group by anything.

Combine filter groups with AND and OR logic. Sort on multiple levels. Group by status, tags, dates, or any column you have added to a folder database.

The same arrange controls work in every view mode. Each pane keeps its own state, so split browsing stays predictable.

Split a tab into four.

Two, three, or four independent panes in a single tab. Compare a source and an export folder, keep a reference path always open, or stage files before you move them. Drag between panes without ever leaving the table.

  • Independent panes
    Each pane keeps its own folder, view mode, sort, and filters.
  • Drag across panes
    Move or copy files between panes without leaving the tab.
  • Layout shortcuts
    Cmd+Shift+1 through 4 to switch pane layouts mid-flow.
Photos/ Raw
IMG_001.jpg
IMG_002.jpg
IMG_003.jpg
Photos/ Edited
final_001.jpg
final_002.jpg
Reference
moodboard.pdf
color-ref.jpg
Staging
to-export
pick_004.jpg

Five ways to look at a folder.

Details for the table. Grid, Column, and Tree for familiar browsing. Boards maps Vial properties to columns when status is the story.

Details
Grid
Column
Tree
Boards

Save what you built.

Arrange a folder once, name it, and switch back in a click. Saved views are how you look at a folder, the way a database keeps named views. That same memory carries the rest: your tabs, saved searches, and whole-tab workspaces.

Name how a folder is arranged.

A saved view bundles view mode, sort, filters, grouping, and columns. Switch between views and the listing rearranges instantly, Table, Grid, or Board on the same folder. Any folder can hold views; inside a Vial they save next to the folder, so they travel with it.

Photo Library RAW
6 properties
To Do 2
city-skyline.jpg
city-night.png
In Review 1
portrait-01.jpg
Done 1
landscape.jpg
View mode, sort, filter, columns
Bundle the whole arrange setup into one named preset.
Vial presets travel on disk
Vial-root views live in .phials/ next to the folder database.
Each pane remembers
Return to a folder and the last view loads back in.

Tabs hold the context.

Browse multiple folders at once. Splits stay inside the tab you set up, and module tabs like Settings or Search sit beside folder tabs in the same row.

  • Pinned tabs survive a restart
    Pin the ones worth keeping. Everything else clears on quit.
  • Module tabs sit beside folder tabs
    Open Search, Terminal, or Settings without leaving the window.
  • Drag to reorder, drop to jump
    Rearrange tabs, or drop files onto an inactive tab to send them there.
  • Keyboard-first switching
    Cmd+T to open, Cmd+1 through 9 to jump, Ctrl+Tab to cycle.
Documents/ Notes
meeting-notes.md
requirements.pdf
timeline.md

A query you can name.

Save a Search query and reload it from a dropdown. Scope, target, mode, filters, and Vial tags all travel with the name.

Pin the ones you reach for daily. Reorder, rename, or drop the others without losing what the query was looking at.

  1. RAW in library filename · glob
    *.cr2 OR *.nef
  2. Client deliverables tags · path
    tag:client path:exports
  3. Roadmap mentions content · simple
    roadmap
  4. Untracked TODOs content · regex
    TODO:?\s+\w+
Favorites
Workspaces
Documents/ Notes/ Research
Workspace snapshot 3 folders · 2 panes saved
meeting-notes.md
competitor-analysis.pdf
project-brief.md

Restore the whole tab.

A workspace is a named snapshot from any tab. It remembers split layout, pane paths, navigation history, and the saved view that was active. The Navigator lists every workspace beside favorites, so the next session opens already arranged.

  • Named snapshot of a tab
    Splits, pane paths, navigation history, and the active view, in one save.
  • Workspace-linked tabs
    Linked tabs show the workspace name and an amber star, not the folder path.
  • Update or rename in place
    Edit the layout, overwrite the snapshot when it settles.
  • Restore from the Navigator
    Listed beside favorites. One click opens, or focuses if already open.

A workspace in your colors.

Choose from 17 built-in themes, or build one with the same provider API used by Phials.

Default Dark

Live application preview

Launch Assets
Favorites
Vials
Projects/ Phials/ Launch Assets
Name
Type
Modified
Size
Tag
hero-composite.psd Image Today 42 MB
Edit
release-notes.md Markdown Yesterday 18 KB
Draft
walkthrough.mov Video Mar 12 128 MB
Favorite
press-kit Folder Mar 10 16 items
4 files · 1 selected
Included Dark and light palettes
Custom Theme provider support
Applied Every app surface

Native performance, local first.

Rust and Tauri deliver native performance for search, metadata, and disk work. A Svelte UI runs in your system webview. Local-first by design: your files stay on disk, and the heavy lifting never waits on page JavaScript.

Interface Svelte 5Tabs, previews, and editors in your system webview
Shell Tauri v2Compact desktop app. No Electron, no bundled Chromium
Engine RustFiles, search, metadata, thumbnails, and disk caches
  • Rust handles the heavy work

    Browsing, search, metadata, and thumbnails run in compiled code on background threads, not in page JavaScript.

  • Tauri, not Electron

    Your system webview drives the UI. A smaller install than apps that ship their own browser.

  • Caches that keep up

    Thumbnails, metadata, and RAW proxies save to disk so big folders and camera files stay responsive.

  • Local-first by default

    Files stay on your machine. Folder databases live in SQLite beside them. Browse, preview, and organize in one app instead of juggling separate tools.

Built to be extended.

Built-in previews, themes, and views run on the same provider API.

Phials itself is largely built on that API. Register your own providers for previews, commands, metadata, views, modules, and themes when you need more. Community builds ship from GitHub with declared permissions.

The provider toolkit

Each provider wires into a specific surface, the same ones built-ins use. Commands are context-aware with when clauses. Previews match by extension, MIME type, or custom logic.

Command command
One action for toolbar, palette, shortcuts, and context menus. Users remap keys and placements.
Preview preview
Thumbnails, pane viewers, and fullscreen editors. Previews can be interactive, not read-only.
Metadata metadata
Extract EXIF, ID3 tags, or frontmatter. Data becomes sortable columns and filter fields.
View view
Reinvent the file browser: calendar, Kanban, gallery, or graph layouts in the view switcher.
Module module
Dockable tools in the sidebar, bottom panel, or center area that stay open while you browse.
Theme theme
Light and dark palettes via CSS variables, ready for the app theme picker.
markdown-plugin.ts
export const plugin: PhialsPlugin = {
  id: 'markdown',
  name: 'Markdown',
  version: '1.0.0',
  providers: [
    {
      type: 'command',
      id: 'md.cmds',
      name: 'Markdown',
      commands: [{
        id: 'md.new',
        label: 'New markdown file',
        action: (ctx) => { /* … */ },
        defaultPlacements: [{ area: 'toolbar', priority: 10 }],
      }],
    },
  ],
};
TypeScriptSvelte 5Hot reloadDeclared permissions

Types and manifest tooling live in phials-plugin-example under sdk/.

About me

Eli Wimmer

My name is Eli Wimmer. I'm a 34yo software developer and computerphile who's been building stuff since my OG Runescape fansite I made when I was 12 years old. Phials is a passion project I've been building solo for the better part of four years out of a desire to have a file manager that doesn't suck. I also build Flylighter, a powerful web clipper for Notion.