A terminal-based command reference tool built with Textual. This dashboard provides categorized command snippets for various technologies, aiming to be a quick-access resource for developers.
- Categorized Commands: Organized by technology (e.g., Linux, Python, SQL).
- Modular Structure: Each category is a separate module for scalability.
- Nerd Font Icons: Visual enhancements using Nerd Fonts.
- Clipboard Integration: Easily copy commands to your clipboard.
- Keyboard Navigation: Navigate through categories and commands using keys.
-
Clone the Repository
git clone https://github.com/dcazrael/command-dashboard.git cd command-dashboard -
Install Dependencies
poetry install
-
Run the Application
poetry run dev
To display icons correctly:
- Download a Nerd Font: Nerd Fonts Downloads
- Install the Font:
- Linux: Place the font in
~/.local/share/fontsand runfc-cache -fv. - Windows: Right-click the font file and select "Install".
- Linux: Place the font in
- Configure Terminal: Set your terminal's font to the installed Nerd Font.
command-dashboard/
├── assets/ # Assets like fonts and images
├── src/ # Main application code
│ ├── commands/ # Command modules per category
│ ├── utils/ # Utility functions
│ ├── views/ # UI components
│ └── widgets/ # Custom widgets
├── tests/ # Test cases
├── poetry.lock # Poetry lock file
├── pyproject.toml # Project metadata
└── README.md # This file
-
Create a New Module: Add a new
.pyfile insrc/commands/(e.g.,docker.py). -
Define Commands: Structure your commands as a nested dictionary:
commands = { "Category Name": { "Command Name": { "command": "actual command", "explanation": "description" }, ... }, ... }
-
Avoid Loading Drafts: Prefix draft modules with
_or__to exclude them from loading.
- Cycle Focus:
Tabto cycle through panels - Jump to Panel: Use displayed shortcut keys
- Select Command: Press
Enterto view command details - Copy Command: Press
yto copy the command to the clipboard
This project uses pytest for testing.
Make sure the development dependencies are installed:
poetry install --with devpoetry run pytestpoetry run pytest tests/test_main.pyimport pytest
from src.main import CommandDashboard
@pytest.mark.asyncio
async def test_app_starts():
app = CommandDashboard()
async with app.run_test() as pilot:
assert app.title == "CommandDashboard"You can find additional tests under the tests/ directory.
- Implement search functionality.
- Add support for user-defined commands.
- Enhance UI with more customization options.
Contributions are welcome! Please open issues or submit pull requests for enhancements or bug fixes.
This project is licensed under the MIT License.

