Native Shell
Native Shell: AI-generated UI, native in your app, on every platform. Apps on iOS, Android, macOS, Windows and Linux, GPUI apps and web pages load signed, sandboxed TSX modules at run time and draw th
A Linux system monitor for homelabs: a terminal UI with live and historical charts, SMART and hardware health, alerts, and SQL queries over your own metrics.
Developer toolsGo · ShellGitHub @dugganOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Linux server monitoring daemon with TUI
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗bewitch monitors homelab servers, Raspberry Pis and VPSes. It has two binaries:
bewitchd, a daemon that collects metrics from /proc, /sys and the hardware, stores them in
a local DuckDB database, and evaluates alert rules.bewitch, a client with a terminal UI (live views, history charts, hardware health, alerts), a
SQL console, and maintenance commands.Each machine runs its own daemon; there is no central server. The packaged daemon runs as an unprivileged, sandboxed systemd service and caps DuckDB's memory use at 512 MB by default.
curl -fsSL https://bewitch.dev/install.sh | sudo sh
On Debian and Ubuntu this adds the signed APT repository, so updates arrive with apt upgrade.
On other distributions it installs a prebuilt binary and a systemd service. Builds are available
for amd64 and arm64. See Installation for the manual
APT setup, the dev channel, and tarballs.
bewitch # the TUI: 1–9 switch views, < > change the time range
bewitch repl # SQL over your own metrics
bewitch -addr myhost:9119 # a remote daemon, over TLS with fingerprint pinning
/metrics endpoint.| Processes | Hardware |
|---|---|
| Alerts | Services |
| CPU | Disk |
Full documentation is at bewitch.dev/docs:
bewitch targets Linux, but builds and runs on macOS too: mock mode generates synthetic data for
every view, so you can work on the TUI anywhere. You need Go (see go.mod) and a C toolchain,
because DuckDB is linked through cgo.
make build # bin/bewitchd and bin/bewitch
make test # unit tests (make test-integration for the DuckDB ones)
To run against mock data, use a config like this:
[daemon]
mock = true
socket = "/tmp/bewitch.sock"
db_path = "/tmp/bewitch.duckdb"
bin/bewitchd -config dev.toml &
bin/bewitch -config dev.toml
CLAUDE.md has detailed architecture notes for contributors.