wish
AI-Powered Penetration Testing Command Center
Overview
wish is a workflow-aware AI command center designed to accelerate penetration testers' thinking and reduce context-switching costs.
Installation
pip install wish-sh
Setup
OpenAI API Key Configuration
wish requires an OpenAI API key for AI functionality. Configure it using one of these methods:
Option 1: Configuration File (Recommended)
# Initialize configuration file
wish-ai-validate --init-config
# Set your API key
wish-ai-validate --set-api-key "your-openai-api-key-here"
Option 2: Environment Variable
export OPENAI_API_KEY="your-openai-api-key-here"
Option 3: Manual Configuration
Edit ~/.wish/config.toml:
[llm]
api_key = "your-openai-api-key-here"
model = "gpt-4o"
Getting an OpenAI API Key
- Visit OpenAI API Platform
- Sign in or create an account
- Go to "API Keys" section
- Click "Create new secret key"
- Copy the generated key and set it as shown above
⚠️ Important: Keep your API key secure and never commit it to version control.
Usage
wish
Note: On first launch, wish will download and index the HackTricks knowledge base. This may take a few minutes but only happens once.
Verifying Setup
To verify your API key is configured correctly:
Option 1: Using wish-ai validation tool
# Install wish-ai package and run validation
pip install ./packages/wish-ai
wish-ai-validate
Option 2: Using main application
# The application will validate the API key on startup
wish --version
If you see authentication errors, double-check your OPENAI_API_KEY environment variable.
Development
Quick Start (Development Environment)
# 1. Clone and navigate to the project
git clone <repository-url>
cd wish
# 2. Install dependencies
uv sync --all-packages --dev
# 3. Set up OpenAI API key
export OPENAI_API_KEY="your-openai-api-key-here"
# 4. Run wish-cli directly
uv run wish
Development Commands
# Setup development environment
make dev-setup
# Run tests
make test
# Format code
make format
# Run linting
make lint
# Run specific package tests
cd packages/wish-cli && uv run pytest
# Run E2E tests
uv run pytest e2e-tests/
Package Development
# Work on specific package
cd packages/wish-cli
# Install package in development mode
uv sync --dev
# Run package-specific tests
uv run pytest tests/
# Build package
uv build
Troubleshooting
Common Issues
"No module named 'wish_cli'" in Development
# Solution: Use uv run instead of direct execution
uv run wish
# Or install in development mode
pip install -e .
OpenAI API Authentication Errors
# Check your API key is set
echo $OPENAI_API_KEY
# Verify API key configuration
wish-ai-validate --check-env
# Re-initialize configuration
wish-ai-validate --init-config
wish-ai-validate --set-api-key "your-key-here"
Import or Dependency Issues
# Reinstall all dependencies
uv sync --reinstall --all-packages --dev
# Clear uv cache
uv cache clean
# Check Python version (requires 3.11+)
python --version
Development Environment Setup
# Ensure you're in the correct directory
cd wish
# Install all workspace packages
uv sync --all-packages --dev
# Verify installation
uv run python -c "import wish_cli; print('✅ Installation successful')"
Performance Issues
Slow Startup
- Cause: OpenAI API key validation
- Solution: Use cached configuration or environment variables
High Memory Usage
- Cause: Rich console history retention
- Solution: Limit history size in configuration
UI Responsiveness
- Cause: Blocking operations in main thread
- Solution: All operations are async by design
Getting Help
- GitHub Issues: Report bugs
- Documentation: Check
docs/directory for detailed guides - Community: Join our development discussions
Sliver C2 Integration (Optional)
wish supports integration with Sliver C2 framework for post-exploitation workflows.
Prerequisites
- Sliver server installed and running
- Valid operator configuration file
- Active implants/beacons (for command execution)
See Sliver Setup Guide for detailed instructions.
Packages
- wish-models: Core data models and validation
- wish-core: Business logic and state management
- wish-ai: LLM integration and plan generation
- wish-tools: Tool integrations and parsers
- wish-knowledge: RAG and knowledge base integration
- wish-c2: C2 framework connectors
- wish-cli: Main CLI application
Contributing
We welcome contributions! Please see our Contributing Guide for details.
License
This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.
Metadata
Release files for wish-sh 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wish_sh-0.7.0.tar.gz | 269.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wish_sh-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 287.6 kB
Release files / wish_sh-0.7.0.tar.gz
| Download URL | wish_sh-0.7.0.tar.gz |
|---|---|
| Size | 269.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f5a0551150c5e1568fdbd306e9ba9f0e4462b17f465d8915560136e3d5b5417
|
|
BLAKE2b-256 checksum How to use checksums |
f9cdc70b8d6ea082ba05c9fb98db9ea79fc13a74e8468d03b900632306dd24e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.11
|
Release files / wish_sh-0.7.0-py3-none-any.whl
| Download URL | wish_sh-0.7.0-py3-none-any.whl |
|---|---|
| Size | 18.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e90f7144828e5181ea783ab15c8dfafcd4d0ec184469497e475ad02ae4dcd47a
|
|
BLAKE2b-256 checksum How to use checksums |
c0958597835dccc41b0600296df9752338c1499e539887d29d8e1f4e0e5d822c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.11
|