Skip to main content

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
Ctrl+U Rename selected file or group
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.yml files

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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. 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

dstack_yaml_manager-0.1.3.tar.gz (44.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dstack_yaml_manager-0.1.3-py3-none-any.whl (44.5 kB view details)

Uploaded Python 3

File details

Details for the file dstack_yaml_manager-0.1.3.tar.gz.

File metadata

  • Download URL: dstack_yaml_manager-0.1.3.tar.gz
  • Upload date:
  • Size: 44.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for dstack_yaml_manager-0.1.3.tar.gz
Algorithm Hash digest
SHA256 e84ca8a9009bed1c93216b28682cb412f6fb0a19dbcbb0e6f97940fb4aead74e
MD5 3b9be96362041ef596f799cfa76b982e
BLAKE2b-256 0dc310ad7d1d961e22071455e00a0bc92addf5f8211d82162d8261f8bf157f60

See more details on using hashes here.

File details

Details for the file dstack_yaml_manager-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for dstack_yaml_manager-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b7066a3885b0934bdfd43f6380dc9ba8fbf19633c1a4e6da261e04d292cbfa4e
MD5 0e3a818b50369a3e2bf4bc82e33d8d65
BLAKE2b-256 83b70fd28467b10a430d4f9a7bdf926b1a443fd9eecfcf1111093344b568e5d1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page