A terminal mascot sprite for Alpine Linux. Mika lives in the corner of your screen and reacts to what you're doing in the terminal.
Early development. The project compiles and runs, but is full of bugs. Treat it as a proof-of-concept.
Mika is a small Rust program that spawns a PTY, watches for commands, and displays an animated sprite overlay using X11. The goal is a lightweight, stateful terminal companion — no Electron, no web stack, just a native binary that stays out of the way.
Current state:
- PTY spawning works
- Basic command detection works
- Emotional state tracking is wired up
- Sprite rendering is not yet implemented
- Expect crashes, weird behaviour, and incomplete features
- Alpine Linux (x86_64)
- X11 display required
- Compiled against
x86_64-unknown-linux-musl— fully static binary
git clone https://github.com/ms4x-dev/mika
cd mika
cargo build --release --target x86_64-unknown-linux-muslRequires a musl-targeting Rust toolchain:
rustup target add x86_64-unknown-linux-musl./target/x86_64-unknown-linux-musl/release/mikaMika wraps your shell session via PTY. Your $DISPLAY must be set for the X11 overlay.
| Component | Description |
|---|---|
| PTY layer | Spawns a shell and proxies I/O |
| Command detector | Parses output to detect what the user is running |
| Affective state | Internal emotional state machine driving sprite selection |
| X11 overlay | Renders the sprite as a floating window (WIP) |
- Sprite rendering (X11 overlay)
- Sprite sheet + animation support
- More command reactions
- Config file for shell path, sprite, personality tuning
- Stability pass (many known crash paths)
MIT