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
Browse available tasks, search with /, inspect task details, and run tasks or saved configurations from the same screen.
Review task history on the left and inspect structured output on the right with vim-style motions, visual selection, yanking, and pane-focused navigation.
Launch tasks with custom CLI flags and environment variables, then save those inputs as reusable configurations.
The command palette includes a contextual keys guide that explains global controls plus tab- and pane-specific actions.
- 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
pip install lazygradleRun it with:
lazygradlegit 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- Python 3.13+
- A Gradle project
- Either a working
gradlewwrapper in the project orgradleavailable onPATH
- 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.
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
/focuses the task search inputEnterin search jumps to the first resultrruns the selected taskRruns the selected task with parametersF5refreshes the task list
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 is disabled by default.
Enable it by setting LAZYGRADLE_LOG_FILE:
LAZYGRADLE_LOG_FILE=1 lazygradleThat writes to lazygradleapp.log in the current directory. You can also provide an explicit path:
LAZYGRADLE_LOG_FILE=~/.local/state/lazygradle/app.log lazygradleLAZYGRADLE_LOG_LEVEL is also supported. When logging is enabled, it defaults to DEBUG.
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.
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
Distributed under the MIT License. See LICENSE.
