GEYMA · OLD NORSE: TO KEEP, TO GUARD

The file manager that remembers.

Files have history.

Working Sets follow them wherever they move.

Local and remote storage feel like one filesystem.

Your workspace adapts to how you work.

Star on GitHub Download (early access) Read the docs Get started →
MIT license Available for Linux Android companion app v0.7 · early access React + Tauri 2 Rust fs core

Geyma 0.7 is available for early testing. The core file-management features work, but it’s still pre-1.0 software — keep backups, report anything strange, and don’t make it your only tool for irreplaceable files just yet.

Geyma's main window: file grid, working sets, and details panel
01 · MEMORY

Files remember.

Every move, rename, star, and restore is logged — and that memory surfaces everywhere. A per-file activity timeline in the Details panel. A disk-wide Timeline module. And ghost trails: faint, dashed markers left behind in a folder showing where a file that just left actually went. Click one and Geyma takes you straight there.

No more “it was right here yesterday.” It was — and Geyma will show you where it went.

report.pdf → ~/Archive
report.pdf
WHAT THIS FILE REMEMBERS
Moved here from ~/Downloads09:12
Renamed from draft-v3.pdfTue
StarredMay 9
CreatedMay 2
WORKING SETS +
Fresh this week
smart · fills itself
13
Client hand-off
“send before Friday”
7
Starred images
smart · fills itself
21
GYSET.eyJuYW1lIjoiQ2xpZW50IGhhbmQtb2ZmIiwibm90ZSI6InNlbmQgYmVmb3JlIEZyaWRheSJ9… copied
02 · WORKING SETS

Playlists for files.

A Working Set is a playlist-like collection of file references — never copies. Files stay exactly where they live on disk; the set just follows them through moves, renames, trashing, and restoring. Attach a note, or make a set smart — a rule like starred, kind: image, or modified since… that fills itself live from the whole disk.

Share any set with anyone as a single GYSET. code. Items, rule, note — the whole thing round-trips.

03 · YOUR CHROME

Reshape everything.

There is no fixed layout. Every piece of UI — nav, search, sidebar panels, even the file grid itself — is a module you can drag between six layout zones, hide, or bring back. Eight full color skins, each overridable token by token: accent, font, radius, density, glow, background pattern.

Parchment
THE KEEPER
Obsidian
MIDNIGHT
Phosphor
TERMINAL
Synthwave
OUTRUN
+ NORD · AMBER CRT · PLASMA · PAPER — EDIT MODE SHOWN BELOW
Edit mode showing the modular layout and all eight color skins
04 · NETWORK PLACES

Servers are just folders.

sftp:// and smb:// paths flow through the exact same tabs, history — even working sets — as local ones. Discover nearby SMB devices, browse a NAS like it's Home, drag files between local and remote panes. Passwords live only in the OS keyring, strictly opt-in.

sftp://chris@nas:22/home smb://nas/Media/photos
05 · LOCAL AI

AI that never phones home.

Entirely optional, entirely local, via Ollama — no cloud calls, no API keys. Natural-language search (“starred photos from last week” becomes real filters), batch-rename suggestions, and on-demand folder summaries. Three features, each individually toggleable — and all of them off by default.

no cloud no API keys off by default

A closer look

Obsidian dark skin with a selected image file
Eight skins, light or dark — here, Obsidian
List view with sortable Kind, Size, and Modified columns
List view with sortable columns
Quick Look overlay previewing a PDF, with step arrows
Quick Look — Space to preview, arrow keys to step through the folder
Journal
TODAY
report.pdf
Moved here · from Downloads
09:12
invoice-04.png
Just arrived
NEW
notes.md
Renamed · from draft.md
08:40
YESTERDAY
old-build.zip
Moved to Trash
17:05
06 · ANDROID

Geyma goes mobile.

The same memory, in your pocket. Geyma Mobile is a native Kotlin + Jetpack Compose app that carries the desktop's core idea — files that remember — onto Android. Every move, rename, and fresh arrival lands in a searchable journal; tap any file for its full biography.

Cleanup ranked by what you’ve neglected, a duplicate spotter, a two-week activity summary, reminders to revisit files, and shareable collections that export as portable bundles. All eight desktop skins ship too — and, like the desktop, everything stays on your device: no network, no telemetry.

Kotlin + Jetpack Compose On-device only 8 skins Early v0.1

v0.1, early access — CI builds a debug APK on every push (the geyma-mobile-debug artifact); there’s no Play Store or F-Droid listing yet. Archive preview and SFTP/SMB haven’t been ported from the desktop.

Everything you'd expect, too

Real file management, backed by Rust — and working-set references stay correct across every one of these operations.

Core operations
Cut, copy, paste, duplicate, recursive copy, symlinks, drag-and-drop moves — never a silent overwrite.
Recoverable Trash
Restore puts things back exactly where they came from. Permanent delete needs a double confirm. 20-deep undo.
Archives
Preview without extracting; extract ZIP, TAR, 7z; compress to ZIP — with zip-slip and zip-bomb guards.
Batch rename
Pattern + numbering with live preview of every resulting name. Fully undoable.
Quick Look
Space to preview images, video, audio, PDF, code, archives — arrows step through the folder.
Find anything
Search-as-you-type, recursive scope, kind and starred filter chips, a duplicates spotter, stars on anything.

The short version

OTHER FILE MANAGERSGEYMA
FilesFiles + their history
FoldersWorking Sets that follow files
Fixed layoutsModular chrome — drag every panel
Local disksLocal + SFTP + SMB, one path space
Cloud AIOptional, fully local AI
Desktop onlyDesktop + a native Android app

Get started in a browser.
Ship it as a desktop app.

A mock in-memory filesystem kicks in automatically outside the Tauri shell, so the full UI runs in a plain browser with no Rust toolchain. The real thing is a Tauri 2 desktop app — filesystem operations are Rust commands with unit test coverage.

Packaged early-access builds (.deb / .rpm / Arch / Flatpak / Snap) are on the releases page. It’s pre-1.0: keep backups, and file a bug if anything surprises you.

React 18 + TypeScript + Vite
Tauri 2 shell, Rust fs commands
Zustand state
.deb / .rpm / Arch / Flatpak / Snap
# grab it
git clone https://github.com/MadsenDev/geyma-file-manager
cd geyma-file-manager && npm install

# browser demo — mock fs, no Rust needed
npm run dev

# full desktop app
npm run tauri dev