Tenets Viz Deps Command Cheat Sheet¶
Installation¶
Basic Commands¶
Simple Usage¶
Bash
tenets viz deps # Auto-detect project, show ASCII tree
tenets viz deps . # Analyze current directory
tenets viz deps src/ # Analyze specific directory
Output Formats¶
Bash
tenets viz deps --format ascii # Terminal tree (default)
tenets viz deps --format svg --output arch.svg # Scalable vector graphics
tenets viz deps --format png --output arch.png # PNG image
tenets viz deps --format html --output deps.html # Interactive HTML
tenets viz deps --format dot --output graph.dot # Graphviz DOT
tenets viz deps --format json --output data.json # Raw JSON data
Aggregation Levels¶
Bash
tenets viz deps --level file # Individual file dependencies (detailed)
tenets viz deps --level module # Module-level aggregation (recommended)
tenets viz deps --level package # Package-level view (high-level)
Clustering Options¶
Bash
tenets viz deps --cluster-by directory # Group by directory structure
tenets viz deps --cluster-by module # Group by module
tenets viz deps --cluster-by package # Group by package
Layout Algorithms¶
Bash
tenets viz deps --layout hierarchical # Tree-like layout (default)
tenets viz deps --layout circular # Circular/radial layout
tenets viz deps --layout shell # Concentric circles
tenets viz deps --layout kamada # Force-directed layout
Filtering¶
Bash
# Include specific patterns
tenets viz deps --include "*.py" # Only Python files
tenets viz deps --include "*.js,*.jsx" # JavaScript files
tenets viz deps --include "src/**/*.py" # Python in src/
# Exclude patterns
tenets viz deps --exclude "*test*" # No test files
tenets viz deps --exclude "*.min.js,node_modules" # Skip minified and deps
# Combined
tenets viz deps --include "*.py" --exclude "*test*"
Node Limiting¶
Bash
tenets viz deps --max-nodes 50 # Show only top 50 most connected nodes
tenets viz deps --max-nodes 100 # Useful for large projects
Real-World Examples¶
For Documentation¶
Bash
# Clean architecture diagram for docs
tenets viz deps . --level package --format svg --output docs/architecture.svg
# Module overview with clustering
tenets viz deps . --level module --cluster-by directory --format png --output modules.png
For Code Review¶
Bash
# Interactive exploration
tenets viz deps . --level module --format html --output review.html
# Focused on specific subsystem
tenets viz deps src/api --include "*.py" --format svg --output api_deps.svg
For Refactoring¶
Bash
# Find circular dependencies
tenets viz deps . --layout circular --format html --output circular_deps.html
# Identify tightly coupled modules
tenets viz deps . --level module --layout circular --max-nodes 50 --output coupling.svg
For Large Projects¶
Bash
# Top-level overview
tenets viz deps . --level package --max-nodes 20 --format svg --output overview.svg
# Most connected files
tenets viz deps . --max-nodes 100 --format html --output top100.html
# Specific subsystem deep dive
tenets viz deps backend/ --level module --cluster-by module --format html -o backend.html
Project Type Auto-Detection¶
The command automatically detects: - Python: Packages, Django, Flask, FastAPI - JavaScript/TypeScript: Node.js, React, Vue, Angular - Java: Maven, Gradle, Spring - Go: Go modules - Rust: Cargo projects - Ruby: Rails, Gems - PHP: Laravel, Composer - And more...
Tips¶
- Start Simple: Use
tenets viz depsfirst to see what's detected - Use Levels: Start with
--level packagefor overview, drill down tomoduleorfile - Interactive HTML: Best for exploration, use
--format html - Filter Noise: Use
--exclude "*test*,*mock*"to focus on core code - Save Time: Use
--max-nodesfor large codebases - Documentation: SVG format scales well for docs
- Clustering: Helps organize complex graphs visually
Troubleshooting¶
Bash
# Check if dependencies are installed
python -c "import networkx, matplotlib, graphviz, plotly" 2>/dev/null && echo "All deps OK" || echo "Run: pip install tenets[viz]"
# Debug mode
TENETS_LOG_LEVEL=DEBUG tenets viz deps . 2>&1 | grep -E "(Detected|Found|Analyzing)"
# If graph is too large
tenets viz deps . --max-nodes 50 --level module # Reduce nodes and aggregate
Output Examples¶
ASCII Tree (default)¶
Text Only
Dependency Graph:
==================================================
main.py
└─> utils.py
└─> config.py
└─> models.py
utils.py
└─> config.py
models.py
└─> utils.py
What You Get¶
- Project Info: Auto-detected type, languages, frameworks
- Entry Points: Identified main files (main.py, index.js, etc.)
- Dependency Graph: Visual representation of code relationships
- Multiple Views: File, module, or package level perspectives