Contributing to VISTA
Help make VISTA better — bug reports, features, documentation, and code.
Table of contents
Ways to Contribute
| Type | Description | Difficulty |
|---|---|---|
| 🐛 Bug Reports | Report issues you find | Easy |
| 💡 Feature Requests | Suggest new capabilities | Easy |
| 📝 Documentation | Improve docs, fix typos | Easy |
| 🎯 Payload Contributions | Add new payloads | Medium |
| 📝 Template Contributions | Create expert templates | Medium |
| 🔧 Code Contributions | Fix bugs, add features | Advanced |
Development Setup
Prerequisites
- Java 17+ — Download OpenJDK
- Maven 3.6+ — Download Maven
- Burp Suite — Download Burp
- Git — Download Git
Clone & Build
# Fork the repository on GitHub first, then:
git clone https://github.com/YOUR_USERNAME/VISTA.git
cd VISTA
# Build
mvn clean package -DskipTests
# Output JAR: target/vista-2.10.24.jar
Testing Your Changes
- Build the JAR:
mvn clean package -DskipTests - Open Burp Suite
- Go to Extensions → Add → Java → select
target/vista-2.10.24.jar - Test your changes in VISTA
Quick Compile Check
# Verify code compiles without full packaging
mvn compile -q
Code Structure
See Architecture Overview for the full project structure.
Key directories:
| Directory | Contents |
|---|---|
src/main/java/burp/ |
Extension entry point |
src/main/java/com/vista/security/core/ |
Core business logic |
src/main/java/com/vista/security/model/ |
Data models |
src/main/java/com/vista/security/service/ |
AI provider integrations |
src/main/java/com/vista/security/ui/ |
Swing UI components |
docs/ |
GitHub Pages documentation |
Contribution Guidelines
Code Standards
- Java 17+ features are welcome (records, text blocks, sealed classes)
- No external dependencies — VISTA must remain zero-dependency
- Thread safety — Use synchronized collections for shared state
- Follow existing patterns — Match the code style of surrounding code
Adding a New Template
- Open
src/main/java/com/vista/security/core/PromptTemplateManager.java - Add a new creator method following the existing pattern:
private PromptTemplate createMyNewExpert() {
PromptTemplate template = new PromptTemplate(
"My Vulnerability (Expert)",
"Exploitation",
"@vista",
"Description of what this template covers",
"""
System prompt with expertise, methodology, techniques...
""",
"""
User prompt with ...
""",
TemplateMode.EXPERT
);
template.addTag("tag1");
template.addTag("expert");
template.addTag("bug-bounty");
return template;
}
- Register it in
loadBuiltInTemplates():
PromptTemplate myTemplate = createMyNewExpert();
markAsBuiltIn(myTemplate);
templates.add(myTemplate);
Adding New Payloads
- Open
src/main/java/com/vista/security/core/PayloadLibraryManager.java - Add payloads to the appropriate built-in library
- Follow the existing payload format with description and tags
Submitting Changes
- Fork the repository
- Create a branch for your changes:
git checkout -b feature/my-improvement - Make your changes and verify they compile:
mvn compile -q - Commit with a clear message:
git commit -m "Add CORS misconfiguration expert template" - Push to your fork:
git push origin feature/my-improvement - Open a Pull Request on GitHub
Reporting Issues
Bug Reports
Open an issue with:
- VISTA version (check status bar)
- Burp Suite version
- Java version (
java -version) - Steps to reproduce
- Expected vs actual behavior
- Error logs (if any, from Burp Extensions → Errors tab)
Feature Requests
Open a discussion with:
- What you want VISTA to do
- Why it would be useful
- How you envision it working
Community
- 💬 GitHub Discussions — Questions, ideas, show & tell
- 🐛 GitHub Issues — Bug reports
- 📧 @Adw0rm-sec — Maintainer
License
VISTA is released under the MIT License. By contributing, you agree that your contributions will be licensed under the same license.