Kotlin Multiplatform · Compose Desktop · Rust

A process explorer built to compare desktop stacks.

Glasir is a Kotlin Multiplatform and Compose Desktop process explorer with a Rust telemetry core. It recreates the product goals of Yggdrasil (Swift) and Mimameidr (Flutter) in a KMP desktop stack, so the three implementations can be compared honestly. Local by default — no analytics, no accounts.

Built for macOS 14 or later · Apple Silicon & Intel · No build published yet

ProcessCPUMem
launchd 0.1%18 MB
WindowServer 3.4%382 MB
Glasir 1.2%96 MB
rust-analyzer 12.1%1.2 GB
node 0.8%214 MB
esbuild 0.0%42 MB
zsh <defunct> 0 KB

Glasir

PID830 StatusRunning Usermlamers Path/Applications/Glasir.app
CPU
1.2%

Built for honest comparison

🌳

A tree that holds still

Tree Lock keeps every row where it is while the numbers keep updating. Processes that start or stop are marked in place, so the list never reshuffles under your cursor.

🔎

Branch-preserving search

Search matches names, PIDs, bundle identifiers, and paths, and keeps matching branches visible. Structured tokens like pid:, user:, path:, and status: narrow things down further.

🧩

Inspector tabs

Overview, files, network, security, and threads, each with explicit pending capability states so it is clear what is supported today and what is still being wired up.

📊

Snapshots and compare

Capture the tree as a JSON snapshot, reload it later, and compare live against a snapshot. Saved filters and pinned branches stick around between sessions.

⚙️

KMP desktop core

Shared business logic lives in commonMain, desktop chrome lives in desktopMain, and a Rust process sampler owns native telemetry behind a versioned boundary. Compose UI never touches raw native interop.

🔒

Local by default

Process data is read on demand from your Mac and discarded when no longer needed. No analytics, no crash reporting, no accounts, no advertising.

Architecture

Compose UI Presentation state / view models Domain use cases Repository interfaces Rust core

UI depends on presentation state, presentation depends on domain use cases, domain depends on repository interfaces, and data owns persistence and native bridge details. Koin wires it together.

Frequently asked questions

What is Glasir?

It is a process explorer for macOS, written in Kotlin Multiplatform with a Compose Desktop UI and a Rust telemetry core. It is one of three sibling implementations — alongside Yggdrasil (Swift/AppKit) and Mimameidr (Flutter) — that explore the same product from different desktop stacks.

How does it relate to Yggdrasil and Mimameidr?

Yggdrasil is the behavior and product reference. Mimameidr tests a Flutter + Rust path. Glasir tests a Kotlin Multiplatform + Compose Desktop path. The goal is to compare the trade-offs of each stack honestly — windowing, rendering, native integration, accessibility, and developer ergonomics — rather than to pick a winner.

What is the current state?

Glasir is in active development. The process tree, tree lock, branch-preserving search, sorting, inspector tabs, snapshots, and saved filters are implemented. There is no signed release on this site yet — check the releases page for the current status.

What are the system requirements?

The target is macOS 14 (Sonoma) or later, as a universal build for Apple Silicon and Intel. Because it runs on the JVM, it also needs a current Java runtime bundled into the package.

Does it collect any of my data?

No. Process and system data is read locally and discarded when no longer needed. There is no analytics, crash reporting, advertising, or account. See the Privacy Policy for details.

How do I install it?

There is no signed DMG published yet. When one is available, download it from the releases page, drag Glasir into your Applications folder, and open it. In-app updates are not wired up at this stage.

I found a bug or have a question. Where do I go?

Send us an email. You can find the contact details in the Legal Notice.