Skip to content

arran4/kjules

Repository files navigation

kjules

A powerful KDE6/Qt6 native desktop client written in C++ for tracking and managing Jules tasks and background processing sessions. kjules gives you a fast, native desktop experience for interacting with your Jules workflow.

When you click on a notification or open the application, it presents you with a comprehensive desktop-native version of:

  • Drafts (unsubmitted)
  • Queue (processing)
  • Errors (failed, pending retry)
  • Following (active managed sessions)
  • Archive (history)
  • Templates

Features

  • Robust Session Management: Manage tasks across an explicit state-based workflow including Drafts (unsubmitted), Queue (processing), Errors (failed, pending retry), Following (active managed sessions), and Archive (history).
  • Detailed Session Views: Dive deep into session details, view PR statuses and labels, track diffs, and read the JSON activity feed.
  • Advanced Filtering: Powerful built-in filtering using a drag-and-drop AST (Abstract Syntax Tree) visual filter editor.
  • System Tray Integration: Runs efficiently in the background, utilizing KDE's KNotification to deliver non-intrusive alerts for queue errors and completion events.
  • Mock API Support: Includes an interactive Go-based mock API server for local testing and realistic state simulation without consuming real Jules API quotas.

Screenshots

All Sessions

All Sessions

Session Selection

Session Selection

Session Details

Session Details

Activity Feed

Activity Feed

Additional Views

Click to view more screenshots

Screenshot 5 Screenshot 6 Screenshot 7 Screenshot 8 Screenshot 9

Features

  • Robust Session Management: Manage tasks across an explicit state-based workflow including Drafts (unsubmitted), Queue (processing), Errors (failed, pending retry), Following (active managed sessions), and Archive (history).
  • Detailed Session Views: Dive deep into session details, view PR statuses and labels, track diffs, and read the JSON activity feed.
  • Advanced Filtering: Powerful built-in filtering using a drag-and-drop AST (Abstract Syntax Tree) visual filter editor.
  • System Tray Integration: Runs efficiently in the background, utilizing KDE's KNotification to deliver non-intrusive alerts for queue errors and completion events.
  • Mock API Support: Includes an interactive Go-based mock API server for local testing and realistic state simulation without consuming real GitHub API quotas.

Build Instructions

Prerequisites

  • C++ Compiler (C++17 support required)
  • CMake (version 3.16 or higher)
  • Qt 6 & KDE Frameworks 6 libraries

On Ubuntu/Debian, install the required dependencies:

sudo apt-get update && sudo apt-get install -y extra-cmake-modules qt6-base-dev qt6-tools-dev libkf6coreaddons-dev libkf6i18n-dev libkf6wallet-dev libkf6notifications-dev libkf6xmlgui-dev libkf6config-dev libkf6widgetsaddons-dev libkf6globalaccel-dev libkf6archive-dev

Building

  1. Clone the repository:

    git clone https://github.com/yourusername/kjules.git
    cd kjules
  2. Create a build directory:

    mkdir build
    cd build
  3. Configure and build the project:

    cmake ..
    cmake --build .

    Optional: If you are doing local development, you can use the -DDEV_MODE=ON flag (e.g., cmake .. -DDEV_MODE=ON). This will automatically sandbox the application's runtime data (XDG dirs, AppData) within the project directory as .jules-dev-data/, preventing it from interfering with your normal system-wide configuration. This is highly recommended for IDE usage.

  4. Run the application:

    ./kjules

License

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.

About

A C++ application built with KDE Frameworks that provides a desktop interface for interacting with the Google Jules API

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors