DEV Community

Cover image for Native Jules: A Polished Flutter Client for the Jules API
Mike CK
Mike CK

Posted on

Native Jules: A Polished Flutter Client for the Jules API

Hey everyone!

I'm excited to share Native Jules, an open-source Flutter app that gives the Jules API a native desktop/mobile experience.

If you're using Jules to review code sessions, chat with the agent, or inspect generated changes, Native Jules makes that workflow faster and more enjoyable — with multi-account support, offline caching, and a clean, responsive UI.

Highlights

  • Multi-account API key support with fast account switching
  • Session history grouped by repository, with built-in search
  • Chat timeline showing prompts, plans, progress updates, and agent responses
  • Resizable diff panel for reviewing code changes produced by Jules
  • Local caching with background sync and offline-state awareness
  • Light & dark themes with responsive layouts for smaller screens

Native Jules is built to feel like a first-class native app, not just a wrapper around the API.

Tech Stack

Layer Technology
Framework Flutter
State management Provider
Local persistence Hive
HTTP client http
Desktop shell (macOS) window_manager
Supported platforms macOS, iOS, Android, Web, Windows, Linux

The project is organized into jules_flutter/ for the Flutter app and scripts/ for platform-specific launch helpers.

Getting Started

  1. Clone the repo
   git clone https://github.com/CkCreative/jules.git
   cd jules
Enter fullscreen mode Exit fullscreen mode
  1. Install dependencies
   cd jules_flutter
   flutter pub get
   cd ..
Enter fullscreen mode Exit fullscreen mode
  1. Launch the app
   npm run dev   # runs the macOS app by default
Enter fullscreen mode Exit fullscreen mode
  1. On first launch, add an account name and your Jules API key (you'll need access to https://jules.googleapis.com/v1alpha).

The Flutter project also targets iOS, Android, web, Windows, and Linux. See the Available Commands table for all platform-specific commands.

Screenshots

Light mode Dark mode
light mode dark mode

(Click the images to view them full size — they give a quick sense of the UI.)

What's Next?

Native Jules is still young — the current flow is text-prompt based (attachments aren't supported by the Jules API yet), and new sessions are created against repositories returned by the Jules sources API.

I'd love to hear what the community thinks! Ideas, bug reports, and contributions are all welcome.

🔗 Links


If you find Native Jules useful, a ⭐ on GitHub means a lot — and feel free to drop a comment below with any feedback or questions. Happy coding! 🚀


Jules

A polished Flutter client for the Jules API, built for reviewing sessions, chatting with the agent, and inspecting generated code changes in a native app experience.

Screenshots

Jules in light mode Jules in dark mode

Click either screenshot to view it full size

Highlights

  • Multi-account API key support with fast account switching
  • Session history grouped by repository with built-in search
  • Chat timeline for prompts, plans, progress updates, and agent responses
  • Resizable diff panel for reviewing code changes produced by Jules
  • Local caching with background sync and offline-state awareness
  • Light and dark themes with responsive layouts for smaller screens

Tech Stack

  • Flutter
  • Provider for state management
  • Hive for local persistence
  • http for Jules API requests
  • window_manager for a desktop-style macOS shell

Requirements

  • Flutter SDK
  • Xcode for macOS and iOS builds
  • Android Studio and Android SDK for Android builds
  • A Jules API key with access to https://jules.googleapis.com/v1alpha

Getting Started

From the repository root:

cd jules_flutter
flutter pub get
cd
Enter fullscreen mode Exit fullscreen mode

Top comments (0)