mirror of
https://github.com/usestrix/strix.git
synced 2026-10-01 02:03:55 +00:00
Selectable via STRIX_RUNTIME_BACKEND=podman, with auto-detection of Podman sockets across Linux (rootless/rootful) and macOS (applehv/libkrun podman machine), correct host-gateway hostname (host.containers.internal), and multi-layer socket fallthrough: STRIX_RUNTIME_SOCKET -> DOCKER_HOST -> per-backend auto-detection -> docker.from_env() default. Adds backend-aware CLI/connection checks (check_docker_installed, check_docker_connection) and 28 unit tests covering backend registry, socket candidate generation, podman machine inspect JSON parsing, and socket fallthrough. Adds make test target wired into make check-all. Closes #106
113 lines
2.7 KiB
Text
113 lines
2.7 KiB
Text
---
|
|
title: "Contributing"
|
|
description: "Contribute to Strix development"
|
|
---
|
|
|
|
## Development Setup
|
|
|
|
### Prerequisites
|
|
|
|
- Python 3.12+
|
|
- Latest Go 1.24.x patch (only for Bubble Tea TUI development and release artifacts)
|
|
- Docker or Podman (running)
|
|
- [uv](https://docs.astral.sh/uv/)
|
|
- Git
|
|
|
|
### Local Development
|
|
|
|
<Steps>
|
|
<Step title="Clone the repository">
|
|
```bash
|
|
git clone https://github.com/usestrix/strix.git
|
|
cd strix
|
|
```
|
|
</Step>
|
|
<Step title="Install dependencies">
|
|
```bash
|
|
make setup-dev
|
|
|
|
# or manually:
|
|
uv sync
|
|
uv run pre-commit install
|
|
```
|
|
</Step>
|
|
<Step title="Configure LLM">
|
|
```bash
|
|
export STRIX_LLM="openrouter/z-ai/glm-5.3"
|
|
export LLM_API_KEY="your-api-key"
|
|
```
|
|
</Step>
|
|
<Step title="Run Strix">
|
|
```bash
|
|
uv run strix --target https://example.com
|
|
```
|
|
</Step>
|
|
</Steps>
|
|
|
|
## Contributing Skills
|
|
|
|
Skills are specialized knowledge packages that enhance agent capabilities. They live in `strix/skills/`
|
|
|
|
### Creating a Skill
|
|
|
|
1. Choose the right category
|
|
2. Create a `.md` file with YAML frontmatter (`name` and `description` fields)
|
|
3. Include practical examples—working payloads, commands, test cases
|
|
4. Provide validation methods to confirm findings
|
|
5. Submit via PR
|
|
|
|
## Contributing Code
|
|
|
|
### Pull Request Process
|
|
|
|
1. **Create an issue first** — Describe the problem or feature
|
|
2. **Fork and branch** — Work from `main`
|
|
3. **Make changes** — Follow existing code style
|
|
4. **Write tests** — Ensure coverage for new features
|
|
5. **Run checks** — `make check-all` should pass
|
|
6. **Submit PR** — Link to issue and provide context
|
|
|
|
### Code Style
|
|
|
|
- PEP 8 with 100-character line limit
|
|
- Type hints for all functions
|
|
- Docstrings for public methods
|
|
- Small, focused functions
|
|
- Meaningful variable names
|
|
|
|
## Package Builds
|
|
|
|
Editable installs do not require Go; they run the TUI from source (`go run`).
|
|
|
|
Wheels are intentionally strict: they always bundle the matching Go sidecar and
|
|
are platform-specific.
|
|
|
|
```bash
|
|
make wheel
|
|
```
|
|
|
|
The build hook (`scripts/tui_sidecar_hook.py`) requires Go 1.24.x or newer, embeds
|
|
the sidecar as `strix/bin/strix-tui`, and assigns the current platform tag.
|
|
Frozen releases built by `scripts/build.sh` and `strix.spec` also require the
|
|
sidecar.
|
|
|
|
## Reporting Issues
|
|
|
|
Include:
|
|
|
|
- Python version and OS
|
|
- Strix version (`strix --version`)
|
|
- LLM being used
|
|
- Full error traceback
|
|
- Steps to reproduce
|
|
|
|
## Community
|
|
|
|
<CardGroup cols={2}>
|
|
<Card title="Discord" icon="discord" href="https://discord.gg/strix-ai">
|
|
Join the community for help and discussion.
|
|
</Card>
|
|
<Card title="GitHub Issues" icon="github" href="https://github.com/usestrix/strix/issues">
|
|
Report bugs and request features.
|
|
</Card>
|
|
</CardGroup>
|