XSISTANT
ACTIVITY INTELLIGENCE
An activity-aware agent for Ubuntu/GNOME. Turns keyboard, mouse and window focus into per-project time — automatically, without a manual timer.
What it does
Raw input capture
Reads keyboard and mouse events straight from /dev/input/event* via evdev. Honest, app-agnostic counts.
Focused-window tracking
AT-SPI over D-Bus with switchamba fallback. Knows exactly which window owns your attention, not just which app.
Project attribution
Walks /proc/<pid>/cwd for the focused process and its children. Titles lie — working directories don't.
PostgreSQL storage
Dockerized Postgres 16 as the backing store. Second-level resolution, SQL-queryable, never leaves your box.
GNOME top-bar indicator
Live activity badge, pause/resume, stats panel, and full-quit — all from the Shell panel.
Native .deb
Built via dpkg-buildpackage on every push to master. CalVer versioning. One apt install away.
Install
From the .deb
sudo apt install ./aisisstant_*.deb
gnome-extensions enable aisisstant-tracker@vovkes
Download the package above, then run these two commands.
From source
git clone https://github.com/overthelex/aisisstant.git
cd aisisstant
./scripts/install.sh
gnome-extensions enable aisisstant-tracker@vovkes
Installs Python deps, starts Postgres via Docker Compose, registers the systemd user service, copies the GNOME extension.
What's next
Plane integration — worklog without a stopwatch
Xsistant already knows which project you're in. The next layer matches the active
task — by branch name (feature/PROJ-123-…), IDE window title, or an explicit
pick in the top-bar indicator — and writes minutes back to Plane via its API.
No manual time entry. Honest numbers at the end of the sprint.