Thank you for your interest in contributing to NVIDIA CLI! This document provides guidelines and instructions for contributing.
- Code of Conduct
- Getting Started
- Development Setup
- How to Contribute
- Pull Request Process
- Code Style
- Reporting Bugs
- Suggesting Features
This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior by opening an issue.
- Fork the repository on GitHub
- Clone your fork locally
- Create a branch for your changes
- Make your changes and test them
- Submit a pull request
# Clone your fork
git clone https://github.com/<your-username>/Nvidia-CLI.git
cd Nvidia-CLI
# Create a virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install with dev dependencies
pip install -e ".[dev]"
# Verify installation
nv --help- Python 3.9+
- An NVIDIA API key (get one at build.nvidia.com)
pytest
pytest --cov=nv_cli # With coverageblack nv_cli/ # Format code
mypy nv_cli/ --ignore-missing-imports # Type check
python -m py_compile nv.py # Syntax check legacy file- Bug fixes — Find and fix issues
- New features — Add new commands, tools, skills, or agent capabilities
- Documentation — Improve docs, add examples, fix typos
- Tests — Increase test coverage
- Skills — Create new installable skills for the skills system
- Models — Add support for new NVIDIA-hosted models
Look for issues labeled good first issue — these are specifically curated for new contributors.
-
Branch naming: Use descriptive branch names
feature/agent-collaborationfix/memory-search-crashdocs/improve-readme
-
Commit messages: Write clear, concise commit messages
feat: add multi-agent collaboration support fix: resolve memory search crash on empty database docs: add examples for skill installation -
Before submitting:
- Ensure your code follows the project's style conventions
- Add or update tests if applicable
- Update documentation if you changed public APIs
- Run the linter and type checker
- Make sure all existing tests pass
-
PR description: Include:
- What the change does and why
- How to test it
- Screenshots or terminal output if relevant
- Any breaking changes
-
Review: A maintainer will review your PR. Be responsive to feedback and make requested changes promptly.
- Formatter: Black with 100 character line length
- Type hints: Use type annotations for function signatures
- Docstrings: Use docstrings for public functions and classes
- Imports: Group imports in order: stdlib, third-party, local
When adding new features, follow the existing modular structure:
nv_cli/
├── agents/ # Agent logic and orchestration
├── config/ # Configuration management
├── heartbeat/ # Periodic task system
├── memory/ # Persistent memory and search
├── skills/ # Skill discovery and management
├── soul/ # Identity and personality system
├── tools/ # Tool registry and implementations
└── utils/ # Shared utilities
Each module should:
- Have an
__init__.pywith clean public exports - Contain focused, single-responsibility files
- Avoid circular imports between modules
When filing a bug report, include:
- Python version:
python3 --version - OS and version: macOS, Linux distro, etc.
- CLI version:
nv --help(shown in header) - Steps to reproduce: Exact commands you ran
- Expected behavior: What you expected to happen
- Actual behavior: What actually happened
- Error output: Full traceback if applicable
Use the bug report template if available.
Feature requests are welcome! Please:
- Check existing issues first to avoid duplicates
- Describe the use case — what problem does it solve?
- Propose an interface — what would the commands look like?
- Consider backwards compatibility
Use the feature request template if available.
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for helping make NVIDIA CLI better!