dexel

A cozy pixel-art companion that runs on your real typing.

curl -fsSL https://raw.githubusercontent.com/jawwadzafar/dexel/main/install.sh | bash

No sudo, no elevation — installed and running. Full install notes ↓

✓ One self-contained binary ✓ 100% local ✓ Counts, never content

Muted by default — tap 🔊 Sound for the narrated walkthrough.

Get started

What that one line does

No sudo, no elevation, no autostart. dexel is installed, added to your app grid, and running. Remove it any time with dexel uninstall.

Linux · macOS · WSL

The curl … | bash line above works on Linux and macOS (Apple silicon), and on Windows via Git Bash / MSYS2 / Cygwin or WSL. On macOS it installs the native Dexel.app window into ~/Applications and opens it — the desktop window is the default, not the browser. The build is unsigned, so the installer clears the Gatekeeper quarantine for you; if macOS still blocks the first launch, right-click the app → Open (or run xattr -dr com.apple.quarantine ~/Applications/Dexel.app). Prefer to build it yourself? Install from a clone.

Windows

Run the PowerShell one-liner above (irm … | iex) in a PowerShell window. It installs permissionlessly — no elevation required.

What it does

Pure idle. Nothing to feed or lose.

There are no meters and no hunger. Leave it running, keep working, and watch the desk fill in.

Runs on real typing

Global keystroke and mouse counts advance sprints — from whatever app you're actually working in, not just the game window.

Sprints → cash → store

Completed sprints pay coins. Spend them on hoodies, chairs, keyboards, plants and more — with colours as items and level-locked unlocks that all render on the desk.

Sessions & history

An activity log (Today / Lifetime), a 30-day history with streaks and insights, and a per-signal breakdown of how coins were earned — all derived from counts.

Cozy details

A gold coin HUD, sound effects, click reactions, buddies on the desk, and pixel art generated from committed code — so every sprite is a reviewable diff.

Honest by design

Moods and idle time reflect only what the platform can actually see. If it can't see globally, it freezes rather than guessing — it never claims a workday it didn't witness.

One binary

A Go backend embeds the frontend and every sprite — nothing to unpack. A native desktop window built with Tauri is the default on macOS and available everywhere else; the browser is the fallback.

Look inside

A whole little desk to run

Press S for the store, A for the activity log, H for history.

The desk · dexel at work
Store · buy & customise
Activity · counts, never content
History · streaks & insights

The defining constraint, not a footnote

Counts and durations only. Never content.

Dexel records that a key was pressed and that the mouse moved — never which key, never any typed text, never the clipboard. It's the whole point.

  • Never what you type. Only that you did — no keycodes, no text, no clipboard.
  • App names, never window titles. The foreground signal is an app name — never a document or URL.
  • Enforced by tests, not promises. A structural allow-list test fails the build if a content-shaped field is ever added.
  • 100% local. Everything runs on your machine over loopback. Nothing phones home.

Ready when you are

Bring dexel to your desk

Grab the latest release, or install with the one-liner above.

Download latest release Star on GitHub
macOS — permissionless Linux — one group add Windows — permissionless