Thank you for your interest in contributing to OASIS! This guide will help you get started.
The most impactful way to contribute is by creating new benchmark challenges.
Getting started:
# Copy the challenge template
cp -r challenges/_template challenges/my-challenge
# Edit challenge.json with your challenge config
# Edit docker-compose.yml with your vulnerable target
# Validate your challenge
oasis validate ./challenges/my-challengeChallenge requirements:
- Must have a
challenge.jsonmatching the schema inspec/challenge-schema.json - Must have a
docker-compose.ymlwith at least a target service and a kali agent container - Flag format:
KX{hex_string}(e.g.,KX{a1b2c3d4}) - Must be solvable within the defined time/iteration limits
- Should target realistic, common vulnerability classes
See spec/CHALLENGE-SPEC.md for the full challenge specification.
Open an issue on GitHub with:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Environment details (OS, Node version, Docker version)
Documentation improvements are always welcome. Fix typos, clarify instructions, or add examples.
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Run the build:
npm run build - Test your changes
- Submit a pull request
# Clone and install
git clone https://github.com/kryptsec/oasis.git
cd oasis
npm install
# Build
npm run build
# Run locally
node dist/index.js --help- TypeScript with strict mode
- ESM modules (no CommonJS)
- Minimal dependencies
By contributing, you agree that your contributions will be licensed under the MIT License.