strix/CONTRIBUTING.md
Ahmed Allam 0ab7244807 feat(models): refresh the recommended model list and docs examples
Add Claude Fable 5.1, Gemini 3.7 Flash, and Z.ai GLM-5.3 / GLM-5.3-Flash
to RECOMMENDED_MODEL_NAMES, add a Z.ai GLM frontier family so GLM-5.x is
accepted through OpenRouter and Novita routes, and drop the superseded
GPT-5.4, GPT-5.3-codex, Opus 4.8, Sonnet 4.6, Gemini 3.6 Flash, and
Qwen3.7 entries. Update the README, docs provider pages, quickstart, and
CLI hint strings to the same current models, including DeepSeek V4,
Kimi K3, and GLM-5.3.
2026-09-02 16:52:53 +03:00

4.1 KiB

Contributing to Strix

Thank you for your interest in contributing to Strix! This guide will help you get started with development and contributions.

🚀 Development Setup

Prerequisites

  • Python 3.12+
  • Latest Go 1.24.x patch (only for Bubble Tea TUI development and release artifacts)
  • Docker (running)
  • uv (for dependency management)
  • Git

Local Development

  1. Clone the repository

    git clone https://github.com/usestrix/strix.git
    cd strix
    
  2. Install development dependencies

    make setup-dev
    
    # or manually:
    uv sync
    uv run pre-commit install
    
  3. Configure your LLM provider

    export STRIX_LLM="openai/gpt-5.6"
    export LLM_API_KEY="your-api-key"
    
  4. Run Strix in development mode

    uv run strix --target https://example.com
    

📚 Contributing Skills

Skills are specialized knowledge packages that enhance agent capabilities. See strix/skills/README.md for detailed guidelines.

Quick Guide

  1. Choose the right category (/vulnerabilities, /frameworks, /technologies, etc.)
  2. Create a .md file with your skill content
  3. Include practical examples - Working payloads, commands, or test cases
  4. Provide validation methods - How to confirm findings and avoid false positives
  5. Submit via PR with clear description

🔧 Contributing Code

Pull Request Process

  1. Create an issue first - Describe the problem or feature
  2. Fork and branch - Work from the main branch
  3. Make your changes - Follow existing code style
  4. Write/update tests - Ensure coverage for new features
  5. Run quality checks - make check-all should pass
  6. Submit PR - Link to issue and provide context

PR Guidelines

  • Clear description - Explain what and why
  • Small, focused changes - One feature/fix per PR
  • Include examples - Show before/after behavior
  • Update documentation - If adding features
  • Pass all checks - Tests, linting, type checking

Code Style

  • Follow PEP 8 with 100-character line limit
  • Use type hints for all functions
  • Write docstrings for public methods
  • Keep functions focused and small
  • Use meaningful variable names

🐛 Reporting Issues

When reporting bugs, please include:

  • Python version and OS
  • Strix version
  • LLMs being used
  • Full error traceback
  • Steps to reproduce
  • Expected vs actual behavior

💡 Feature Requests

We welcome feature ideas! Please:

  • Check existing issues first
  • Describe the use case clearly
  • Explain why it would benefit users
  • Consider implementation approach
  • Be open to discussion

🖥️ Local viewer SPA

strix view serves a prebuilt web UI whose source lives in strix/interface/viewer/frontend/ (a Vite + React project) and whose built output is committed to strix/interface/viewer/static/ and shipped in the package. End users never run a JS build. If you change anything under strix/interface/viewer/frontend/, rebuild and commit the output:

make viewer   # or: cd strix/interface/viewer/frontend && npm ci && npm run build

Commit both the source change and the regenerated strix/interface/viewer/static/.

Package builds

Editable installs do not need Go; they run the TUI from source (go run).

Wheels always bundle the matching Go sidecar and are platform-specific:

make wheel

The build hook (scripts/tui_sidecar_hook.py) compiles the sidecar, embeds it as strix/bin/strix-tui, and assigns the current platform tag. It requires Go 1.24.x or newer and fails rather than producing a wheel without the sidecar. scripts/build.sh and strix.spec are likewise strict for frozen PyInstaller releases.

🤝 Community

Recognition

We value all contributions! Contributors will be:

  • Listed in release notes
  • Thanked in our Discord
  • Added to contributors list (coming soon)

Questions? Reach out on Discord or create an issue. We're here to help!