A keyboard-driven TUI frontend for AiiDA verdi commands, manage AiiDA as elegantly as you use lazygit
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)
lazyverdi depends on the aiida-core library, please install it in a virtual environment that contains it
uv pip install lazyverdi
lazyverdiuv pip install -e ".[dev]"
pre-commit install
pytest tests/ # Requires ≥70% coverage- ✅ 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 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) |
MIT License