DAEMON turns your terminal into a sci-fi command center. A real shell sits in the middle, surrounded by live telemetry from your machine: CPU cores, memory, processes, network traffic and disks. A holographic globe spins in the corner, a demon eye watches from the top bar, and every keystroke makes a glitchy synthesized sound.
It is inspired by the legendary eDEX-UI, rebuilt from scratch in Rust as a lightweight native app.
|
Your actual shell (PowerShell, zsh, bashβ¦) running in a pseudo-terminal, with xterm-256color and truecolor support, 5000 lines of scrollback and live resizing. A rotating 3D Earth with dotted continents, pulsing network nodes, data packets moving along great-circle links, and a spinning HUD ring with a radar sweep. A fully shaded eye drawn in real time, with veins, a burning iris, a slit pupil, wet highlights and spiked lids. It opens at startup, blinks, and follows your mouse from the top bar. Bit-crushed keystroke glitches, distorted sub-bass drops on Enter, a growl as the eye opens, a detuned tritone power chord, and data chatter with whispers. Everything is synthesized in real time, and you can replace any sound with your own files. |
A full-screen report on the whole machine: identity, CPU model and every core, memory, every disk (file system, SSD/HDD), network adapters with MAC address and local IP, temperature sensors, user accounts, top memory users and display. A small translucent keyboard under the terminal. Keys glow as you type, and you can click them to type, with sticky Shift, Ctrl, Alt and Caps. CPU graph with a bar per core, memory grid, top processes, network up/down, storage, and a file
browser where you click a folder to A live ONLINE / OFFLINE indicator with connection latency and a latency graph. It checks every 5 seconds by opening a TCP connection to 1.1.1.1 or 8.8.8.8, without sending any data. Floating glass panels, glowing corner brackets, gradient graphs, a drifting dot-grid backdrop and seven color themes. |
Prerequisite: Rust (stable). The first build takes a few minutes.
git clone https://github.com/fcopensource/daemon.git
cd daemon
cargo run --releaseπͺ Windows
Install Rust with rustup-init.exe. Then choose one of:
- MSVC toolchain (default): also install Visual Studio C++ Build Tools when prompted.
- GNU toolchain (no admin rights needed):
rustup-init.exe --default-host x86_64-pc-windows-gnu winget install BrechtSanders.WinLibs.POSIX.UCRT
The built app is target\release\daemon.exe, with the D icon embedded.
π macOS
See the full step-by-step guide: RUNNING_ON_MAC.md. It covers Xcode
tools, building a DAEMON.app for your Dock, and troubleshooting.
π§ Linux
Install the system libraries for audio and windowing first (Debian/Ubuntu shown):
sudo apt install build-essential libasound2-dev libxkbcommon-dev libgl1-mesa-dev libx11-devThen cargo run --release.
| Key | Action |
|---|---|
| F5 | open / close the threat (malware) scan |
| F6 | open / close the camera feed (Esc also closes it) |
| F7 | open / close the multi-model AI analysis panel |
| F8 | show / hide the holo keyboard |
| F9 | open / close the deep scan (Esc also closes it) |
| F10 | sound on / off |
| F11 | fullscreen on / off |
| Mouse wheel over the terminal | scroll back through output |
| Ctrl + C | interrupt the running command |
| Ctrl + V (Cmd + V on Mac) | paste |
| Any key during boot | skip the boot sequence |
Every other key goes straight to your shell.
cargo run --release -- --theme neon| Theme | Look |
|---|---|
nova |
default: icy cyan and neon green on deep navy |
neon |
ultraviolet and electric cyan |
solar |
warm amber and teal |
ice |
frosted white and blue |
crimson |
red alert |
tron |
the classic eDEX-UI palette |
matrix |
retro phosphor green with CRT scanlines |
Drop audio files (.wav .ogg .mp3 .flac) into the sounds/ folder to override the
built-in effects:
| File | Plays on |
|---|---|
key.* |
every keystroke |
enter.* |
the Enter key |
awaken.* |
the eye opening at startup |
blink.* |
the eye blinking |
boot.* |
each boot log line |
granted.* |
boot complete |
scan.* |
opening the deep scan |
click.* |
clicking in the file browser |
chatter.* |
random ambient data bursts |
ambient.* |
looping background track |
Restart DAEMON, and CONTROLS β CUSTOM SOUNDS shows how many files it loaded. Details are in
sounds/README.md.
| Flag | Environment variable | Meaning |
|---|---|---|
--theme <name> |
DAEMON_THEME |
color theme |
--mute |
DAEMON_MUTE |
start with sound off |
--fullscreen |
start in fullscreen | |
DAEMON_SHELL |
shell to launch, e.g. pwsh, cmd.exe, /bin/zsh |
|
*_API_KEY, *_MODEL |
AI provider keys and model overrides for the AI panel (F7), see below |
Press F7, pick a model from the tabs and press ASK, or press ANALYZE ALL to send the same snapshot to every configured model at once and compare the answers (each tab shows β/β and the reply time). DAEMON sends a short summary of CPU, memory, swap and disk usage. It only sends data when you press a button, and never includes the host name, user name, files or camera images. DATA SENT shows exactly what was sent.
| Tab | API key variable | Model override (default) | Get a key |
|---|---|---|---|
| CLAUDE | ANTHROPIC_API_KEY |
ANTHROPIC_MODEL (claude-opus-5-5) |
console.anthropic.com |
| OPENAI | OPENAI_API_KEY |
OPENAI_MODEL (gpt-4o-mini) |
platform.openai.com |
| GEMINI | GEMINI_API_KEY |
GEMINI_MODEL (gemini-2.5-flash) |
aistudio.google.com |
| GROQ | GROQ_API_KEY |
GROQ_MODEL (llama-3.3-70b-versatile) |
console.groq.com |
| MISTRAL | MISTRAL_API_KEY |
MISTRAL_MODEL (mistral-small-latest) |
console.mistral.ai |
| DEEPSEEK | DEEPSEEK_API_KEY |
DEEPSEEK_MODEL (deepseek-chat) |
platform.deepseek.com |
| OPENROUTER | OPENROUTER_API_KEY |
OPENROUTER_MODEL (openrouter/auto) |
openrouter.ai |
| OLLAMA (local) | none | OLLAMA_MODEL (llama3.2), server at OLLAMA_HOST |
ollama.com |
Set keys in your environment (never put them in the code):
setx GEMINI_API_KEY "..." # Windows, then open a new terminal
export GEMINI_API_KEY="..." # macOS / Linux (add to ~/.zshrc to keep it)Ollama runs models on your own machine with no key and no data leaving it: install it, run
ollama pull llama3.2, and set OLLAMA_MODEL (or OLLAMA_HOST) so ANALYZE ALL includes it.
Requests to cloud providers are billed to your account with that provider.
On many laptops the top row sends media keys (volume, brightness) unless you hold Fn. Every panel can also be opened by clicking its label in the top bar.
Press F5 to see your antivirus status (real-time protection, signature date, last quick and full scan) and run a QUICK SCAN (a few minutes) or a FULL SYSTEM SCAN (every file on every drive, which can take an hour or more). The scan keeps running if you close the panel, and the top bar shows the elapsed time. The result is NO THREATS FOUND or a list of each threat with the file it was found in.
DAEMON uses the system's real antivirus engine and only reports what it finds:
Microsoft Defender (MpCmdRun.exe) on Windows, and ClamAV (clamscan) on macOS and Linux
(brew install clamav / sudo apt install clamav, then freshclam). Scans run with remediation
disabled, so DAEMON never deletes or quarantines files itself. Remove threats in Windows Security
or your antivirus.
Press F6 to open the OPTIC SENSOR panel with a live webcam feed and holographic HUD.
SNAPSHOT saves a PNG to ~/Pictures/DAEMON (or your home folder), NEXT CAMERA switches
between cameras, and MIRROR and FILTER change the view. The camera is only opened while the
panel is open, and the top bar shows a red CAM LIVE indicator while it is on. Video never
leaves your machine. On macOS, the first use asks for camera permission. If it was denied, allow
it in System Settings β Privacy & Security β Camera.
cargo testRuns the unit tests for key mapping, the on-screen keyboard, sound synthesis, the eye animation, network helpers and formatting. No window opens.
flowchart LR
subgraph threads [Background threads]
PTY["PTY reader<br/>(portable-pty)"]
STATS["Stats sampler<br/>(sysinfo Β· 1 Hz)"]
AUDIO["Audio engine<br/>(rodio)"]
end
SHELL[(Your shell)] <--> PTY
PTY -->|bytes| VT["vt100 parser<br/>screen grid"]
VT --> UI
STATS -->|snapshot| UI["egui UI thread<br/>~30 fps"]
UI -->|keystrokes| PTY
UI -->|sound events| AUDIO
| File | Responsibility |
|---|---|
src/main.rs |
CLI flags, window and icon setup |
src/app.rs |
Panel layout, boot sequence, input routing |
src/terminal.rs |
PTY, escape-sequence parsing, terminal rendering, key mapping |
src/globe.rs |
The 3D globe: projection, continents, arcs, HUD ring |
src/eye.rs |
The demon eye: shaded meshes, slit pupil, lids, blinking |
src/keyboard.rs |
The translucent on-screen keyboard |
src/sound.rs |
Sound synthesizer (distortion, bit-crush, echo) and custom-sound loader |
src/stats.rs |
System statistics sampler and deep-scan report |
src/ai.rs |
LLM providers (Claude, OpenAI-compatible APIs, Ollama) for the AI panel |
src/camera.rs |
Webcam capture thread (nokhwa) and snapshots |
src/scan.rs |
Malware scan via Microsoft Defender / ClamAV and result parsing |
src/files.rs |
File browser |
src/widgets.rs |
Graphs, bars, glass backdrop, corner brackets |
src/theme.rs |
Color themes |
The shell, the stats sampler and the audio player each run on their own thread, so slow I/O never stalls the 30 fps interface.
- On-screen keyboard
- Full system deep scan
- Multiple terminal tabs
- File browser that follows the shell's working directory
- Text selection and copy in the terminal
- Theme files (JSON)
- Prebuilt downloads for each platform
Contributions are welcome. Open an issue or a pull request.
Inspired by eDEX-UI by GitSquared. DAEMON is an independent Rust implementation and shares no code with it.
Released under the GNU GPL v3.0.
ββββββββββββββ NEURAL LINK ESTABLISHED ββββββββββββββ

