A TUI for managing and running your Gradle tasks
Project description
lazygradle
lazygradle is a Textual-based TUI for browsing Gradle tasks, running them quickly, and reviewing task output without leaving the terminal.
It is built for the workflow of:
- keeping multiple Gradle projects cached and switchable
- searching a large task list quickly
- running tasks with or without saved parameter sets
- reviewing recent task history and output in a dedicated task manager tab
- staying mostly keyboard-driven
Screenshots
Current Setup
Browse available tasks, search with /, inspect task details, and run tasks or saved configurations from the same screen.
Task Manager
Review task history on the left and inspect structured output on the right with vim-style motions, visual selection, yanking, and pane-focused navigation.
Run With Parameters
Launch tasks with custom CLI flags and environment variables, then save those inputs as reusable configurations.
Keys Guide
The command palette includes a contextual keys guide that explains global controls plus tab- and pane-specific actions.
Highlights
- Multi-project support with cached Gradle metadata
- Fast task search and keyboard-first task execution
- Saved task configurations with parameters and environment variables
- Recent task history with re-run support
- Dedicated Task Manager tab for output review
- Vim-style Task Output navigation, visual selection, and yank support
- Contextual key guide from the command palette
- Optional file logging via environment variable
Installation
pip
pip install lazygradle
Run it with:
lazygradle
From Source
git clone https://github.com/jacob-sabella/lazygradle.git
cd lazygradle
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python app.py
Requirements
- Python 3.13+
- A Gradle project
- Either a working
gradlewwrapper in the project orgradleavailable onPATH
Quick Start
- Launch
lazygradle. - Press
pto open the project chooser. - Add or select a Gradle project.
- Use
/to focus task search on the Current Setup tab. - Press
rto run the highlighted task orRto run it with parameters. - Press
2to open Task Manager and inspect recent runs and output.
Keyboard Workflow
Global
1/2switch between tabspopens the project chooserCtrl+h/j/k/lmoves between panes in the active tabCtrl+Arrowkeys do the same pane movement if you prefer arrows
Current Setup
/focuses the task search inputEnterin search jumps to the first resultrruns the selected taskRruns the selected task with parametersF5refreshes the task list
Task Output
j/kor arrow up/down move the cursor lineh/lor arrow left/right scroll horizontallygg,G,Ctrl+d,Ctrl+u,0,$work as expectedvtoggles visual mode- mouse drag also enters visual selection
yyanks the current visual selectionyyyanks the current line+/-adjusts readability zoom for the output pane
Logging
Logging is disabled by default.
Enable it by setting LAZYGRADLE_LOG_FILE:
LAZYGRADLE_LOG_FILE=1 lazygradle
That writes to lazygradleapp.log in the current directory. You can also provide an explicit path:
LAZYGRADLE_LOG_FILE=~/.local/state/lazygradle/app.log lazygradle
LAZYGRADLE_LOG_LEVEL is also supported. When logging is enabled, it defaults to DEBUG.
Configuration
Project state is stored in:
~/.config/lazygradle/gradle_cache.json
That cache includes saved projects, recent task history, saved run configurations, theme selection, and Task Output settings.
Contributing
Issues and pull requests are welcome.
If you want to contribute:
- Fork the repository
- Create a feature branch
- Make the change
- Open a pull request
License
Distributed under the MIT License. See LICENSE.
Acknowledgments
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lazygradle-1.1.10.tar.gz.
File metadata
- Download URL: lazygradle-1.1.10.tar.gz
- Upload date:
- Size: 46.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87db407d9868f1805edf8e9607b7f020acb3317ca6daa2f7f0ab44805e8312bd
|
|
| MD5 |
e396ade445790c60dc17a5fb7fa3c5a0
|
|
| BLAKE2b-256 |
991a68ef69b83b1cc9790ba6088b6573717cae4142a58ad0fa85b05caee35687
|
Provenance
The following attestation bundles were made for lazygradle-1.1.10.tar.gz:
Publisher:
python-publish.yml on jacob-sabella/lazygradle
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazygradle-1.1.10.tar.gz -
Subject digest:
87db407d9868f1805edf8e9607b7f020acb3317ca6daa2f7f0ab44805e8312bd - Sigstore transparency entry: 1248635517
- Sigstore integration time:
-
Permalink:
jacob-sabella/lazygradle@d818f770e7098434e1e4d1b1e994ff63f8c987d8 -
Branch / Tag:
refs/tags/v1.1.10 - Owner: https://github.com/jacob-sabella
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@d818f770e7098434e1e4d1b1e994ff63f8c987d8 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lazygradle-1.1.10-py3-none-any.whl.
File metadata
- Download URL: lazygradle-1.1.10-py3-none-any.whl
- Upload date:
- Size: 53.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3961255f564c5182829d122e3ff6280ff4d252a7222e0e87b325e874a197187c
|
|
| MD5 |
1f921f7f445a03dfd9919e168c21cd9f
|
|
| BLAKE2b-256 |
642047c7315297bb174eab676e11d0db0992dd770289264de1edb9dc20daf69b
|
Provenance
The following attestation bundles were made for lazygradle-1.1.10-py3-none-any.whl:
Publisher:
python-publish.yml on jacob-sabella/lazygradle
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazygradle-1.1.10-py3-none-any.whl -
Subject digest:
3961255f564c5182829d122e3ff6280ff4d252a7222e0e87b325e874a197187c - Sigstore transparency entry: 1248635568
- Sigstore integration time:
-
Permalink:
jacob-sabella/lazygradle@d818f770e7098434e1e4d1b1e994ff63f8c987d8 -
Branch / Tag:
refs/tags/v1.1.10 - Owner: https://github.com/jacob-sabella
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@d818f770e7098434e1e4d1b1e994ff63f8c987d8 -
Trigger Event:
release
-
Statement type: