Skip to content

TomYang-TZ/dagashi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

97 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Dagashi

D A G A S H I

Your keystrokes, digested into anime ASCII art.

macOS Tauri v2 Swift 300 anime


A desktop app that counts your keystrokes, then turns them into gacha pulls of animated ASCII art from 300 top anime. More popular anime = rarer pulls.

Includes a Dynamic Island overlay at the macOS notch β€” a pixel art dagashi shop with walking characters, that expands to show your latest pull.

Dagashi app demo

Kakashi pull

Quick Start

git clone https://github.com/TomYang-TZ/dagashi.git
cd dagashi && pnpm install
./scripts/install.sh
./scripts/start.sh

Requires: macOS 14+, Rust, pnpm, Claude Code CLI

How It Works

  1. A daemon counts keystrokes (never records what you type β€” only counts)
  2. Every hour, your stats trigger a gacha pull
  3. Claude picks a character matching your typing personality
  4. A GIF is fetched, converted to ASCII art, and rendered

The Gacha

300 anime from MAL, ranked by popularity.

Rarity Rank Examples
Legendary #1-10 Attack on Titan, Death Note
Epic #11-50 Steins;Gate, Gintama
Rare #51-150 Monster, Trigun
Uncommon #151-250 Mid-tier discoveries
Common #251-300 Edge of the top 300

Dynamic Island

A standalone Swift app that sits at the macOS notch.

Dynamic Island β€” crowd gathers when a new pull arrives

  • Collapsed: pixel art dagashi shop with walkers and bikers β€” live weather
  • Expanded: click to reveal latest pull as animated ASCII art
  • Auto-cycles: color clean β†’ color block β†’ mono clean β†’ mono block

Dynamic Island β€” sunny weather Dynamic Island β€” cloudy weather Dynamic Island at night β€” expanded pull view

Megumi pull demo

Scripts

./scripts/start.sh      # Start daemon + app + island
./scripts/stop.sh        # Stop everything
./scripts/dev.sh         # Build from source + launch
./scripts/rebuild.sh     # Full rebuild + install + start

Architecture

Three processes, shared filesystem (~/.dagashi/):

Component Stack Role
dagashi-daemon Rust Keystroke stats aggregation
Dagashi.app Tauri v2 (Rust + JS) UI, gacha pulls, gallery
DagashiIsland Swift/SwiftUI Dynamic Island overlay at notch

Why "Dagashi"?

Dagashi (駄菓子) are cheap Japanese candy from tiny neighborhood shops. You'd walk in after school with pocket change, spin a lottery wheel, and peel open a mystery wrapper. The candy was cheap. The moment wasn't.

You type thousands of keystrokes every day. You work hard. You deserve a mystery surprise every hour.

That's Dagashi. Your keystrokes are pocket change. Every hour, the shop cashes them in and hands you a gacha pull, a character from 300 anime, rendered as animated ASCII art. Common pulls come easy. Legendaries take real effort.

The Dynamic Island at your macOS notch is the shop itself, a pixel art dagashi-ya with live weather and foot traffic. Click to open it like unwrapping a candy. Your latest pull is inside.

Privacy

Only aggregate stats β€” character frequencies, hourly volume, key regions. No words, no sentences, no order. All processing happens locally on your machine β€” nothing is sent to any server. Deaf mode instantly pauses recording.

Credits

Press Start 2P | MyAnimeList via Jikan API | Klipy | Open Vibe Island

License

MIT

About

🍬 Your keystrokes β†’ anime ASCII art. A macOS gacha app with a Dynamic Island.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors