Xsistant

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.

loading… Ubuntu 22.04+ GNOME Shell 45+ MIT

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

coming up

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.

Stack

Python 3.12 asyncio asyncpg evdev pydbus PostgreSQL 16 Docker Compose GTK 4 libadwaita GNOME Shell ext. systemd --user AT-SPI / D-Bus dpkg-buildpackage GitHub Actions CalVer