Prerequisites
Before you begin, ensure you have the following installed:- Python 3.12+ (supports 3.12, 3.13, 3.14)
- Docker (running) - Required for the pentest sandbox
- Poetry - Python dependency management
- Git - Version control
Installation Steps
Install development dependencies
The easiest way to set up your development environment is using the Makefile:This command will:
- Install all development dependencies via Poetry
- Set up pre-commit hooks automatically
- Verify your environment is ready
Manual installation (alternative)
Manual installation (alternative)
If you prefer to install manually:
Configure your LLM provider
Esprit requires an LLM provider for AI-powered testing. Set up your preferred provider:
For free tier access without API keys, use Antigravity:
Development Tools
Esprit uses a comprehensive suite of development tools configured inpyproject.toml:
Code Formatting
- Ruff (primary formatter) - Fast Python linter and formatter
- Black - Opinionated code formatter (100-character line length)
- isort - Import statement organizer
Type Checking
- mypy - Static type checker with strict mode enabled
- pyright - Alternative type checker from Microsoft
- Strict type checking enabled
- Python 3.12 target version
- Comprehensive type checking rules
Linting
- Ruff - Primary linter with 30+ rule sets enabled
- Pylint - Additional Python code analysis
- Bandit - Security-focused linting
- pycodestyle (E, W)
- Pyflakes (F)
- isort (I)
- flake8 plugins (security, bugbear, comprehensions, etc.)
- Pylint (PL)
- Security checks (S)
Testing
- pytest - Test framework with async support
- pytest-asyncio - Async test support
- pytest-cov - Code coverage reporting
- pytest-mock - Mocking utilities
Project Structure
Quick Start Commands
Optional Dependencies
Esprit supports several optional feature sets:Vertex AI (Google Cloud)
Sandbox Tools (for Docker sandbox)
GUI Dashboard
Environment Variables
Key environment variables for development:| Variable | Required | Description |
|---|---|---|
ESPRIT_LLM | No | LLM model identifier (e.g., anthropic/claude-sonnet-4-5) |
LLM_API_KEY | No* | API key for direct LLM access |
LLM_API_BASE | No | Custom API endpoint (for Ollama, etc.) |
ESPRIT_IMAGE | No | Custom Docker sandbox image |
PERPLEXITY_API_KEY | No | Enables web search during scans |
*Not required when using OAuth providers or Esprit Cloud
Troubleshooting
Docker Issues
If you encounter Docker-related errors:Poetry Issues
If Poetry installation fails:Type Checking Errors
If you see type checking errors during development:Next Steps
Running Tests
Learn how to run and write tests
Contributing
Read the contribution guidelines