---
name: strix-local-setup
title: Strix with Local Models
description: Install, configure, and run Strix penetration testing with local LLM models via llama-swap. Covers pipx installation, local-model wrapper scripts, config flags, Caido noise, and troubleshooting the Docker sandbox.
---

# Strix Local Model Setup

## Installation
```bash
pipx install strix-agent
# Verify
strix --version
```

## Local-Model Wrapper Scripts
Create convenience scripts under `~/.strix/` for each local model:

```bash
#!/bin/bash
# ~/.strix/strix-local-mymodel
export STRIX_LLM="openai/<model-id>"
export LLM_API_BASE="http://127.0.0.1:9292/v1"
export STRIX_REASONING_EFFORT="medium"
export STRIX_TELEMETRY="0"
exec strix "$@"
```

Make executable: `chmod +x ~/.strix/strix-local-mymodel`

Run via full path: `~/.strix/strix-local-mymodel -t <target>`

**Reasoning effort by model tier:**
| Model tier | Reasoning effort | Use case |
|---|---|---|
| 35B class (ornith, qwen) | `medium` | Daily driver — best quality/speed |
| 9B fast (qwythos) | `low` | Quick-fix tasks, fast passes |
| Deep reasoning (gemma) | `high` | Complex analysis (slow) |

## Config
Default config file: `~/.strix/cli-config.json`
```json
{
  "env": {
    "STRIX_LLM": "openai/<model>",
    "LLM_API_KEY": "sk-...",
    "LLM_API_BASE": "https://api.deepseek.com/v1",
    "STRIX_REASONING_EFFORT": "high",
    "STRIX_TELEMETRY": "0",
    "STRIX_SANDBOX_EXECUTION_TIMEOUT": "300"
  }
}
```

Custom config per run: `strix --config ~/.strix/custom-config.json ...`

## CLI Reference
```
strix -t <target> [--instruction "custom prompt"] [-m quick|standard|deep] [-n]
```
- `-t` — target: URL, domain, IP, local directory, GitHub repo
- `--instruction` — custom pentest focus (XSS, SQLi, auth, etc.)
- `-m` — scan mode: quick (fast CI), standard, deep (thorough)
- `-n` — non-interactive (headless, no TUI)
- `--resume <run-name>` — resume a previous scan from `~/strix_runs/`

## Target Types
| Target | Example |
|---|---|
| URL | `-t https://example.com` |
| Domain | `-t example.com` |
| IP | `-t 192.168.1.42` |
| Local code | `-t ./my-project` |
| GitHub repo | `-t https://github.com/user/repo` |
| Multi-target | `-t ./code -t https://staging.app.com` |

## Scan Output
```
~/strix_runs/<run-name>/
├── run.json       # Scan metadata, LLM usage, status
├── strix.log      # Full execution log
└── .state/
    ├── agents.json  # Agent topology and statuses
    └── agents.db    # Agent state SQLite
```

## Known Issues

### Caido Connection Errors (Harmless)
Startup errors like `scope_rules failed: Cannot connect to host 127.0.0.1:10XX` are normal noise. Strix bundles two Caido integrations:
- **In-container Caido sidecar** (port 48080) — works automatically, proxies all HTTP traffic
- **Host-side Caido SDK tools** — connect via `STRIX_CAIDO_URL` env var; they fail briefly before the sandbox resolves its exposed Docker port. Once the sandbox is up, subsequent calls succeed. The scan continues working through these errors.

### Docker Container Crash (exit code 1)
If the container exits immediately with `sudo: The "no new privileges" flag is set`, see the `strix-sandbox-container-crash-fix` skill for the fix.

### Sandbox Image
- Image: `ghcr.io/usestrix/strix-sandbox:1.0.0` (~7.4GB)
- Override via `STRIX_IMAGE` env var
- Strix auto-pulls on first run
