Watches your application logs, notices crashes and errors on its own, and explains the root cause with a small self-hosted model (via Ollama). It runs in the background and reports — you never invoke it against an incident by hand.
Linux or macOS — no Go toolchain, compiler, or build step:
curl -fsSL https://github.com/shaheeranser/watcher/releases/latest/download/install.sh | sudo shThe installer verifies the download against the published checksum and puts
watcher in /usr/local/bin. Set WATCHER_INSTALL_DIR="$HOME/.local/bin" for a
per-user install that needs no root. To remove it:
curl -fsSL https://github.com/shaheeranser/watcher/releases/latest/download/install.sh | sudo sh -s -- --uninstallWatcher names no model of its own, so point it at a local Ollama and one log source:
ollama serve
ollama pull qwen2.5:1.5b
watcher run --model qwen2.5:1.5b --file /var/log/app.logUse watcher --version to report the binary's build version when filing a bug
report.
--model is required. Results render for a terminal, or as one JSON object per
line when redirected:
watcher run --model qwen2.5:1.5b --file /var/log/app.log > incidents.jsonltail -f app.log | watcher run --model qwen2.5:1.5b # stdin
watcher run --model qwen2.5:1.5b --file /var/log/app.log # one file
watcher run --model qwen2.5:1.5b \
--source api=/var/log/api.log \
--source worker=/var/log/worker.log # several, labelledInside Docker Compose, watcher run with no source attaches to the project's
sibling containers over the Docker socket; --containers project=NAME scopes it
explicitly and --containers none disables it.
A live terminal UI over the running daemon is available with watcher attach.
watcher onboard writes a config file and can install the systemd unit:
watcher onboard
systemctl enable --now watcherIt prompts for the Ollama URL — verifying it is reachable before writing
anything — a model, and one or more sources, then writes
~/.config/watcher/config.toml. Settings resolve as
flag > environment > config file > default, and every flag has a WATCHER_*
equivalent. Watcher never self-daemonizes: it runs in the foreground and leaves
backgrounding to your supervisor.
Runs Watcher alongside its own Ollama, pulling the model on first boot:
WATCHER_MODEL=qwen2.5:1.5b docker compose up --buildgo build -o bin/watcher ./cmd/watcherSee CONTRIBUTING.md; AI coding agents should start at AGENTS.md.
MIT — see LICENSE.
Design rationale and per-milestone specs live in specs/.