Getting Started¶
Prerequisites¶
- Python 3.11+ (recommended)
uvpackage manager (required)- Docker (for sandbox execution)
- CodeQL (optional, for CodeQL analysis)
Installation¶
Step 1: Install uv¶
Step 2: Clone and Setup¶
# Clone the repository
git clone https://github.com/OpenSage-ADK/OpenSage.git
cd OpenSage
# Create virtual environment
uv venv --python "python3.11" ".venv"
source .venv/bin/activate
# Install dependencies
uv sync
# Install pre-commit hooks
uv run pre-commit install
Step 3: Additional Setup¶
CodeQL Setup (Optional):
Verify Installation¶
Next Steps¶
- Project Structure - Understand the codebase structure
- Core Concepts - Learn the core concepts
- Development Guides - Start developing
Sandbox Images (Docker)¶
OpenSage uses Docker-based sandboxes. Some sandboxes require Python tooling inside their images (for initializers and Python-based helper scripts).
uv inside sandbox images¶
Sandbox Dockerfiles install uv using:
Python in sandbox images¶
For sandboxes that need Python, the Dockerfile creates a venv at /app/.venv:
and installs Python dependencies into that venv:
Because sandbox command execution is non-persistent (each command is a fresh process), prefer calling the venv Python explicitly:
/app/.venv/bin/python .../app/.venv/bin/pip ...
Per-sandbox requirements (defaults)¶
- main sandbox
- Requires
python3and the Python packageneo4j -
Image built from
src/<package>/templates/dockerfiles/main/Dockerfile -
joern sandbox
- Requires
python3and Python packageshttpx+websockets - Image built from
src/<package>/templates/dockerfiles/joern/Dockerfile
See Also¶
- Introduction - Project overview
- Configuration - Configuration guide