Keyboard-driven TUI frontend for AiiDA verdi CLI
Project description
lazyverdi
A keyboard-driven TUI frontend for AiiDA verdi commands, manage AiiDA as elegantly as you use lazygit
Why this project
Pain points of verdi command line:
- Inefficient: Repeatedly typing
verdi process list→ filtering →verdi process kill PK→ checking logs - Stateless: Context is constantly lost between commands
- Difficult batch operations: Requires writing scripts
A TUI tool designed with reference to lazygit/lazydocker, achieving:
- Keyboard-driven, responsive operations
- Asynchronous execution, no workflow interruption
- Multi-selection and batch operations (vim keybindings)
Installation
lazyverdi depends on the aiida-core library, please install it in a virtual environment that contains it
uv pip install lazyverdi
lazyverdi
Development
uv pip install -e ".[dev]"
pre-commit install
pytest tests/ # Requires ≥70% coverage
Feature Status
- ✅ 7-panel UI layout + asynchronous command execution
- ✅ Vim-style keyboard navigation
- ✅ Configuration system (
~/.config/lazyverdi/config.yaml)
Limitation: Only supports query commands (list/show/status), does not support interactive commands
Configuration Rules
Configuration file location: ~/.config/lazyverdi/config.yaml, follows YAML syntax
| Parameter Name | Type | Default | Options | Description |
|---|---|---|---|---|
| theme | str | monokai | Any Textual theme | Color theme |
| auto_refresh_interval | float | 10 | ≥0.1 or ≤0 | Auto-refresh interval in seconds; supports floating point; set to 0 or negative to disable |
| auto_refresh_on_startup | bool | true | true/false | Whether to enable auto-refresh on application startup |
| left_panel_width_percent | int | 40 | 1-99 | Left panel width percentage (right panel automatically occupies remaining space) |
| results_panel_height_percent | int | 80 | 1-99 | Results panel (panel-0) height percentage |
| focused_panel_height_percent | int | 50 | 1-99 | Height percentage when panel gains focus |
| show_line_numbers | bool | false | true/false | Whether to show line numbers in text areas |
| soft_wrap | bool | true | true/false | Whether to enable soft wrapping for long lines |
| scrollbar_vertical_width | int | 1 | 1-3 | Vertical scrollbar width (in characters) |
| scrollbar_horizontal_height | int | 1 | 1-3 | Horizontal scrollbar height (in characters) |
| show_welcome_message | bool | true | true/false | Whether to show welcome message on startup |
| initial_focus_panel | int | 0 | 0-6 | Default focused panel on startup (0=details, 1-5=left panels, 6=status panel) |
License
MIT License
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 lazyverdi-1.0.1.tar.gz.
File metadata
- Download URL: lazyverdi-1.0.1.tar.gz
- Upload date:
- Size: 243.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
383b9b5c7190df5c1622310551d72b96cb59c7f9fd29b3755767d5122766be39
|
|
| MD5 |
754b5fedb044ea75e8bf9b288a181e4c
|
|
| BLAKE2b-256 |
c7e1ab8c76be43b6f8d56602bbfd8f207474f8c78c8c3e01cbe6fbf954bf6173
|
Provenance
The following attestation bundles were made for lazyverdi-1.0.1.tar.gz:
Publisher:
publish.yml on xbugs221/lazyverdi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazyverdi-1.0.1.tar.gz -
Subject digest:
383b9b5c7190df5c1622310551d72b96cb59c7f9fd29b3755767d5122766be39 - Sigstore transparency entry: 790127215
- Sigstore integration time:
-
Permalink:
xbugs221/lazyverdi@22415d0341cbac3de046765ad6cbc5b1b68dcb38 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/xbugs221
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@22415d0341cbac3de046765ad6cbc5b1b68dcb38 -
Trigger Event:
push
-
Statement type:
File details
Details for the file lazyverdi-1.0.1-py3-none-any.whl.
File metadata
- Download URL: lazyverdi-1.0.1-py3-none-any.whl
- Upload date:
- Size: 32.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b35ceae32e06a9b4188b44cbe907bad51790e4aee34a4321441fc1228445ef53
|
|
| MD5 |
05224652fcbd3ccb230b3b8d27117564
|
|
| BLAKE2b-256 |
c22e8ac7ffc2acc95260bf8a22ed16ae385d722eb98c6537634dabd4f2e69353
|
Provenance
The following attestation bundles were made for lazyverdi-1.0.1-py3-none-any.whl:
Publisher:
publish.yml on xbugs221/lazyverdi
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lazyverdi-1.0.1-py3-none-any.whl -
Subject digest:
b35ceae32e06a9b4188b44cbe907bad51790e4aee34a4321441fc1228445ef53 - Sigstore transparency entry: 790127216
- Sigstore integration time:
-
Permalink:
xbugs221/lazyverdi@22415d0341cbac3de046765ad6cbc5b1b68dcb38 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/xbugs221
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@22415d0341cbac3de046765ad6cbc5b1b68dcb38 -
Trigger Event:
push
-
Statement type: