An **AI-GENERATED** tool to get a summarization of ones work for any day in the past.
Find a file
Antigravity 9e8d6042b9
feat: add desktop integration and portable bash installer
- Update GTK Application ID to dev.lemoonstar.Backview in main.rs
- Add high-resolution GNOME HIG compliant SVG app icon (dev.lemoonstar.Backview.svg) featuring a realistic daily binder journal
- Add high contrast symbolic icon (dev.lemoonstar.Backview-symbolic.svg)
- Add desktop launcher file (dev.lemoonstar.Backview.desktop) for system desktop menus
- Add highly compatible install.sh script for compiling, installing, and uninstalling the application on user-space or system-wide paths
- Update README.md with comprehensive installation guide
2026-05-22 22:56:13 +02:00
backview-cli feat: implement activity hiding and additional AI context guidance in GUI and CLI 2026-05-22 18:34:09 +02:00
backview-core feat: implement manual note activity creation and editing from GUI with timezone-safe time-of-day validation 2026-05-22 22:44:47 +02:00
backview-gui feat: add desktop integration and portable bash installer 2026-05-22 22:56:13 +02:00
.gitignore Initial commit: Backview activity tracker with GTK4/Libadwaita GUI, CLI, and AI summarization 2026-05-20 20:20:15 +02:00
Cargo.lock Implement dynamic JSON Schema preferences & granular per-calendar ICS config 2026-05-22 18:17:10 +02:00
Cargo.toml Initial commit: Backview activity tracker with GTK4/Libadwaita GUI, CLI, and AI summarization 2026-05-20 20:20:15 +02:00
dev.lemoonstar.Backview-symbolic.svg feat: add desktop integration and portable bash installer 2026-05-22 22:56:13 +02:00
dev.lemoonstar.Backview.desktop feat: add desktop integration and portable bash installer 2026-05-22 22:56:13 +02:00
dev.lemoonstar.Backview.svg feat: add desktop integration and portable bash installer 2026-05-22 22:56:13 +02:00
install.sh feat: add desktop integration and portable bash installer 2026-05-22 22:56:13 +02:00
README.md feat: add desktop integration and portable bash installer 2026-05-22 22:56:13 +02:00

Backview

Backview is a personal activity tracker that collects what you did each day from multiple sources, stores it locally, and optionally uses a local AI to produce a clean human-readable daily summary.

It is built in Rust with a reusable library core, a GTK4 + Libadwaita desktop GUI, and a standalone CLI.


Features

  • Multi-source activity collection — local Git commits, GitLab events, and daily markdown notes
  • Glob pattern support — point to an entire projects directory and all git repos inside are discovered automatically
  • Local SQLite storage — everything stays on your machine, no cloud required
  • AI summarisation (optional) — send raw activity logs to any OpenAI-compatible endpoint (Ollama, LM Studio, OpenWebUI, etc.) and get back a structured breakdown of tasks and time spent
  • GTK4 / Libadwaita GUI — native GNOME desktop app with a calendar, activity list, preferences panel, and toast notifications
  • CLI — scriptable sync, list, and summarize commands

Architecture

backview/
├── backview-core/     # Reusable library: sources, DB, config, AI
├── backview-gui/      # GTK4 + Libadwaita desktop application
└── backview-cli/      # Command-line interface
backview-gui  ──┐
backview-cli  ──┤── backview-core ──┬── Local Git  (git2)
                │                   ├── GitLab API  (reqwest)
                │                   ├── Notes       (filesystem)
                │                   ├── SQLite DB   (rusqlite)
                └── ~/.config/backview/config.toml
                    ~/.local/share/backview/backview.db

Getting Started

Prerequisites

  • Rust (stable or nightly) — rustup.rs
  • GTK4 and Libadwaita development libraries (for the GUI only)

On Fedora / RHEL:

sudo dnf install gtk4-devel libadwaita-devel

On Debian / Ubuntu:

sudo apt install libgtk-4-dev libadwaita-1-dev

Build & Install

Backview comes with a simple, robust install.sh script to build and integrate the application into your Linux desktop environment.

By default, it performs a local user-space installation under ~/.local (requiring no root/sudo privileges). It compiles both CLI and GUI binaries, registers the application in your desktop launchers (dev.lemoonstar.Backview.desktop), and installs the custom high-res and symbolic SVG icons:

# Clone the repository
git clone https://github.com/LeMoonStar/backview
cd backview

# Run the installer (compiles in release mode and integrates desktop assets)
./install.sh

Installation Options

  • System-wide Installation (installs to /usr/local, requires root):

    sudo ./install.sh --system
    
  • Direct Run (Without Installing):

    cargo run -p backview-gui            # Launch Desktop GUI
    cargo run -p backview-cli -- --help  # Run CLI helper
    
  • Uninstallation: To cleanly remove all compiled binaries, desktop entries, and icon assets:

    ./install.sh --uninstall             # For default user-space installs
    sudo ./install.sh --system --uninstall  # For system-wide installs
    

Configuration

Config is stored at ~/.config/backview/config.toml and is created with sensible defaults on first run.

[git]
# Direct paths or glob patterns — all matching .git directories are discovered
repos = [
    "/home/user/projects/*",
    "/home/user/work/special-repo",
]
# Filter commits by author email. Leave empty to include all authors.
author_emails = ["you@example.com"]

[gitlab]
url = "https://gitlab.com"
token = "glpat-xxxxxxxxxxxxxxxxxxxx"
username = "your-username"

[notes]
# Directory containing your daily markdown notes
notes_dir = "/home/user/notes"

[ai]
base_url = "http://localhost:11434/v1"
model_name = "llama3"
api_key = ""                    # Optional, for authenticated endpoints
prompt_style = "professional"   # professional | concise | creative | detailed

The GUI preferences panel lets you edit all of these settings without touching the file.


Notes Format

Backview reads daily markdown note files from the configured notes_dir. Two formats are supported:

Per-day files (YYYY-MM-DD.md)

# 2026-05-20
- 2h: Implemented new authentication flow
- 1h 30m: Code review and PR comments
- 45m Fixed flaky CI pipeline
- Checked emails

Single global file (notes.md) with date headings

## 2026-05-20
- 2h: Implemented new authentication flow
- 1h 30m: Code review and PR comments

## 2026-05-19
- 3h: Wrote unit tests

Duration formats

Format Parsed as
2h 120 minutes
1.5h 90 minutes
45m 45 minutes
1h 30m 90 minutes
30min 30 minutes
(no duration) unknown

Lines starting with # (headings) are ignored. Bullet points (-, *, +) and markdown checkboxes (- [ ], - [x]) are all supported.


CLI Usage

# Sync all sources for today
cargo run -p backview-cli -- sync

# Sync for a specific date
cargo run -p backview-cli -- sync --date 2026-05-19

# List stored activities
cargo run -p backview-cli -- list
cargo run -p backview-cli -- list --date 2026-05-19

# Generate an AI summary (requires AI configured)
cargo run -p backview-cli -- summarize
cargo run -p backview-cli -- summarize --force   # Re-generate even if cached

AI Summarisation

AI summarisation is entirely optional. When triggered, raw activity logs are sent to your configured OpenAI-compatible endpoint. The model is asked to return a structured JSON response with:

  • A list of high-level tasks with estimated time spent
  • Bullet-point details for each task
  • Which sources contributed (git, gitlab, notes)
  • An overall written summary of the day

The result is cached in the local SQLite database. Subsequent calls to summarize for the same day return the cached result unless --force is passed.

Any OpenAI-compatible server works: Ollama, LM Studio, OpenWebUI, vLLM, and others.

Note: Local model inference can be slow. Backview uses a 5-minute request timeout to accommodate this.


Data Storage

Path Contents
~/.config/backview/config.toml Application configuration
~/.local/share/backview/backview.db Activities and AI summaries (SQLite)

No data is sent anywhere except to your configured AI endpoint when you explicitly request a summary.