A Terminal User Interface for managing dstack YAML configurations
Project description
dstack Management Tool
A powerful Terminal User Interface (TUI) for managing dstack YAML configurations with virtual file storage, note-taking, and intelligent state restoration.
Features
🌳 Virtual File Tree - Organize dstack YAML files by type (Task, Service, Fleet, Server) and custom groups
📝 Note Taking - Add markdown notes to any file with auto-save functionality
💾 SQLite Storage - All files and metadata stored in a local database
🔄 State Restoration - Automatically restore your session when switching between directories
⚡ Fast Navigation - Keyboard shortcuts for all operations
📋 Smart Clipboard - Copy file paths and dstack commands with Ctrl+A
🎯 File Management - Add, delete, and organize files with confirmation dialogs
Installation
Install via pip:
pip install dstack-yaml-manager
Or install from source:
git clone <repository-url>
cd dstack-mgmt-tool
pip install -e .
Configuration
On first run, the tool automatically creates a configuration file at ~/.dstack-mgmt/config.yml:
database:
path: ~/.dstack-mgmt/dstack_manager.db
auto_backup: true
backup_count: 5
ui:
auto_save_notes: true
auto_save_delay: 1.0
restore_state: true
paths:
default_workspace: ~/
scan_hidden_dirs: false
Usage
Basic Usage
# Launch in current directory
dstack-yaml-manager
# Launch in specific directory
dstack-yaml-manager ~/my-dstack-project
# Show configuration
dstack-yaml-manager --config
# Reset configuration to defaults
dstack-yaml-manager --reset-config
Keyboard Shortcuts
| Key | Action |
|---|---|
Ctrl+X |
Smart quit (saves state and exits) |
Ctrl+N |
Add new file to database |
Ctrl+G |
Create new custom group |
Ctrl+R |
Refresh file tree |
Ctrl+A |
Navigate to file (copy paths/commands) |
Ctrl+S |
Save current note |
Delete / Ctrl+D |
Delete selected file/group |
Escape |
Exit note editing mode |
Tab |
Auto-complete file paths |
↑↓←→ |
Navigate tree and scroll preview |
File Organization
Files are automatically grouped by type:
- Task -
*.task.dstack.yml - Service -
*.service.dstack.yml - Fleet -
*.fleet.dstack.yml - Server -
*.server.dstack.yml - Unknown - Other
.dstack.ymlfiles
You can also create custom groups and assign files to them.
Note Taking
Click on the Note tab to add markdown notes to any selected file. Notes are:
- Auto-saved as you type (1-second delay)
- Manually saved with
Ctrl+S - Stored in the SQLite database
- Persistent across sessions
State Restoration
The tool automatically saves and restores your session state including:
- Selected file and active tab
- Expanded tree nodes
- Last working directory
Database Location
By default, the database is stored at ~/.dstack-mgmt/dstack_manager.db. You can change this in the configuration file.
Development
Install development dependencies:
pip install -e ".[dev]"
Run tests:
pytest
Format code:
black dstack_mgmt/
License
MIT License - see LICENSE file for details.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
Requirements
- Python 3.8+
- textual >= 0.38.0
- rich >= 13.0.0
- PyYAML >= 6.0
Project details
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 dstack_yaml_manager-0.1.1.tar.gz.
File metadata
- Download URL: dstack_yaml_manager-0.1.1.tar.gz
- Upload date:
- Size: 32.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41108b7228e4864fd8f3bd52a69e2c7f9c754a8aaa476fdda5f5c55b8a61178e
|
|
| MD5 |
37e3aca6229103ff16046390e5c2f9cc
|
|
| BLAKE2b-256 |
505ba1901cce6f3132a5f56b8782435d851579f2ef68acb2bd6e1c04827e2540
|
File details
Details for the file dstack_yaml_manager-0.1.1-py3-none-any.whl.
File metadata
- Download URL: dstack_yaml_manager-0.1.1-py3-none-any.whl
- Upload date:
- Size: 30.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3000578d2b1ebafab96d41e3b6f4f2a3733d6fd8a1119652ee2665c9f981721
|
|
| MD5 |
fa369139a8c85a7e419e629b93358a7f
|
|
| BLAKE2b-256 |
5185b31ae2befde526119f1b11883eb7f658ff9e9d1d1663b1d783ada6636ed7
|