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
Metadata
Release files for lazyverdi 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lazyverdi-1.0.1.tar.gz | 243.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lazyverdi-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 276.4 kB
Release files / lazyverdi-1.0.1.tar.gz
| Download URL | lazyverdi-1.0.1.tar.gz |
|---|---|
| Size | 243.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
383b9b5c7190df5c1622310551d72b96cb59c7f9fd29b3755767d5122766be39
|
|
BLAKE2b-256 checksum How to use checksums |
c7e1ab8c76be43b6f8d56602bbfd8f207474f8c78c8c3e01cbe6fbf954bf6173
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 4, 2026.
Transparency logRelease files / lazyverdi-1.0.1-py3-none-any.whl
| Download URL | lazyverdi-1.0.1-py3-none-any.whl |
|---|---|
| Size | 32.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b35ceae32e06a9b4188b44cbe907bad51790e4aee34a4321441fc1228445ef53
|
|
BLAKE2b-256 checksum How to use checksums |
c22e8ac7ffc2acc95260bf8a22ed16ae385d722eb98c6537634dabd4f2e69353
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 4, 2026.
Transparency log