Commit graph

19 commits

Author SHA1 Message Date
bb18a5c070
Add tool update management with hybrid PDTM/go install approach
Implemented comprehensive tool update system with 4 options:
1. Check versions only (show installed vs latest)
2. Update all ProjectDiscovery tools (pdtm -ua) - FAST
3. Update all Go tools (go install @latest for each)
4. Select individual tools to update (gum multi-select)

Features:
- New main menu option "5) Check for Tool Updates"
- Hybrid approach: pdtm for PD tools, go install for all tools
- Auto-installs pdtm if not present
- Interactive gum multi-select for selective updates
- Progress indicators with success/fail counts
- Confirmation prompts before bulk updates
- Comprehensive logging of update operations

Implementation:
- Added update_tools_menu() with 4-option submenu
- check_tool_versions() - displays installed tool versions
- update_pd_tools_bulk() - fast PDTM update for PD tools
- update_all_go_tools() - comprehensive update for all Go tools
- update_selected_tools() - gum multi-select for individual updates
- Updated README with update strategies and usage examples
- Marked feature as complete in TODO.md

This gives users maximum flexibility:
- Power users: Quick pdtm update for all PD tools
- Comprehensive: Update everything including non-PD tools
- Selective: Cherry-pick specific tools to update
- Check-only: See what's outdated without updating

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-01 00:03:32 -06:00
5bc00b9643
Fix Python tools category crash in multi-select
Fixed AttributeError when selecting Python tools individually.

Problem:
- config.PYTHON_TOOLS is defined as a list, not a dict
- Code was calling .keys() on a list object
- Error: AttributeError: 'list' object has no attribute 'keys'

Solution:
- Removed .keys() call for Python tools since it's already a list
- Python tools now work correctly in multi-select menu

Note: Scripts category intentionally only allows "Install All"
since scripts are downloaded as a collection set.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 23:53:45 -06:00
a210803453
Fix gum multi-select TTY access issue
Fixed subprocess call to allow gum direct terminal access for interactive UI.

Problem:
- capture_output=True was preventing gum from accessing the TTY
- Gum needs stdin/stderr connected to terminal for interactive display
- Error: "could not open a new TTY: open /dev/tty"

Solution:
- Changed from capture_output=True to explicit stdout=PIPE
- Set stdin=None and stderr=None to allow direct terminal access
- Gum can now properly display interactive selection menu

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 23:50:12 -06:00
52f654dd32
Add interactive tool selection with gum multi-select
Implemented comprehensive gum-based interactive tool selection for Level 3 menu.

Features:
- Added gum_multi_select() function to utils.py with proper type hints
- Implemented install_category_selected() in toolbelt.py
- Interactive multi-select for APT, Go, /opt, Python, and Docker categories
- Graceful fallback when gum is not installed
- Confirmation prompt before installation
- Updated README with gum usage examples
- Added PYTHON_STANDARDS.md for type hint requirements
- Created TODO.md with v2.1+ enhancement roadmap
- Added project branding images

User can now:
1. Browse categories and see tool counts
2. Use SPACE to toggle tools, ENTER when done
3. Review selected tools before installing
4. Get helpful prompts if gum is missing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 23:47:33 -06:00
fd0659d70c
Toolbelt v2.0 - Complete refactor with interactive menus and profiles
Major rewrite from single-file script to modular architecture with comprehensive features:

## New Features
- Interactive 3-level menu system (Main → Categories → Tools)
- Pre-built profiles: Bug Bounty, CTF, Web App, Network, Full Pentest
- Distro detection with appropriate tool sets (Kali, Debian, Ubuntu)
- NO root requirement - runs as user, uses sudo selectively
- Comprehensive logging (console + ~/toolbelt-install.log)
- Fresh CLI tool integration and detection
- Smart tool detection (skips already-installed tools)

## Architecture Changes
- Modular design: utils.py, config.py, installer.py, toolbelt.py
- utils.py: Distro detection, logging setup, helper functions
- config.py: Tool definitions, profiles, category metadata
- installer.py: Installation logic for all tool categories
- toolbelt.py: Interactive menu system and main flow

## Improvements
- Fixed $HOME path resolution bug (no more /root issues)
- Added comprehensive error handling and reporting
- Category-based tool organization (APT, Go, /opt, Python, Docker, Scripts)
- Parallel Go tool installation with ThreadPoolExecutor
- Shell alias setup for Docker tools

## Documentation
- Complete README rewrite with usage examples
- Architecture diagrams and file structure
- Integration guide for fresh ecosystem
- Version history and changelog

## Archived Files
- toolbelt.sh → toolbelt.sh.old (legacy bash version)
- toolbelt.py → toolbelt_old.py (original Python v1.0)

Part of the Djedi security tooling ecosystem integration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 23:17:41 -06:00
rpriven
848216cc8c
Update README.md
update apt-fast install commands
update notes update
2023-12-01 00:17:08 -07:00
rpriven
299dc74d95
Update README.md
quick apt-fast fix
2023-12-01 00:01:15 -07:00
rpriven
582e9b2c77
Update README.md
updates:
fixed python installer
added instructions for updates
2023-11-30 23:59:50 -07:00
rpriven
4c29e411d3
Update README.md
Note about error with go tools and scripts installing into /root due to being run as sudo
2023-03-01 22:57:33 -07:00
rpriven
75d4fc56bf
Update README.md
Update: Python version added
2023-01-26 02:29:24 -07:00
rpriven
250e2284f6
Create toolbelt.py
Updated to python version of toolbelt
2023-01-26 02:27:31 -07:00
rpriven
04543a5eef
Update README.md 2022-10-12 23:09:45 -06:00
rpriven
5b0a1e3cff
Update README.md 2022-10-12 23:08:44 -06:00
rpriven
99188d97fb
Update README.md 2022-10-12 23:07:18 -06:00
rpriven
797bc869fb
Update README.md
Expanded description, to do list
2022-10-12 23:04:45 -06:00
rpriven
2c50858893
Update toolbelt.sh 2022-10-12 22:50:00 -06:00
rpriven
fc5026442f
Update toolbelt.sh 2022-10-12 22:45:47 -06:00
rpriven
13aa19a673
Create README.md 2022-10-12 22:42:20 -06:00
rpriven
3beadde129
Create toolbelt.sh 2022-10-12 22:22:21 -06:00