Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 40 additions & 5 deletions docs/advanced/configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,29 @@ Configure Strix using environment variables or a config file.
## LLM Configuration

<ParamField path="STRIX_LLM" type="string" required>
Model name in LiteLLM format (e.g., `openai/gpt-5.4`, `anthropic/claude-sonnet-4-6`).
Model name in LiteLLM format (e.g., `openai/gpt-5.4`, `anthropic/claude-sonnet-4-6`, `bedrock/anthropic.claude-sonnet-4-6`).
</ParamField>

<ParamField path="LLM_API_KEY" type="string">
API key for your LLM provider. Not required for local models or cloud provider auth (Vertex AI, AWS Bedrock).
</ParamField>

<ParamField path="AWS_PROFILE" type="string">
AWS CLI profile name for Bedrock authentication. Used with AWS SSO or named profiles.
</ParamField>

<ParamField path="AWS_REGION_NAME" type="string">
AWS region where Bedrock models are enabled. Required for AWS Bedrock. Note: Use `AWS_REGION_NAME` (not `AWS_REGION`) for LiteLLM compatibility.
</ParamField>

<ParamField path="AWS_ACCESS_KEY_ID" type="string">
AWS access key ID for Bedrock authentication. Alternative to `AWS_PROFILE`.
</ParamField>

<ParamField path="AWS_SECRET_ACCESS_KEY" type="string">
AWS secret access key for Bedrock authentication. Used with `AWS_ACCESS_KEY_ID`.
</ParamField>

<ParamField path="LLM_API_BASE" type="string">
Custom API base URL. Also accepts `OPENAI_API_BASE`, `LITELLM_BASE_URL`, or `OLLAMA_API_BASE`.
</ParamField>
Expand Down Expand Up @@ -115,16 +131,35 @@ strix --target ./app --config /path/to/config.json

## Example Setup

### OpenAI

```bash
# Required
export STRIX_LLM="openai/gpt-5.4"
export LLM_API_KEY="sk-..."
```

### Anthropic Direct

# Optional: Enable web search
```bash
export STRIX_LLM="anthropic/claude-sonnet-4-6"
export LLM_API_KEY="sk-ant-..."
```

### AWS Bedrock

```bash
export STRIX_LLM="bedrock/anthropic.claude-sonnet-4-6"
export AWS_PROFILE="your-sso-profile"
export AWS_REGION_NAME="us-east-1"
```

### Optional Features

```bash
# Enable web search
export PERPLEXITY_API_KEY="pplx-..."

# Optional: Custom timeouts
# Custom timeouts
export LLM_TIMEOUT="600"
export STRIX_SANDBOX_EXECUTION_TIMEOUT="300"

```
101 changes: 92 additions & 9 deletions docs/llm-providers/bedrock.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,42 +6,125 @@ description: "Configure Strix with models via AWS Bedrock"
## Setup

```bash
export STRIX_LLM="bedrock/anthropic.claude-4-5-sonnet-20251022-v1:0"
export STRIX_LLM="bedrock/anthropic.claude-sonnet-4-6"
export AWS_REGION_NAME="us-east-1" # Region where Bedrock is enabled
```

No API key required—uses AWS credentials from environment.

**Note:** Strix includes `boto3` as a dependency. If you installed via the binary installer and encounter issues, consider installing from source: `uv tool install git+https://github.com/usestrix/strix.git`

## Authentication

### Option 1: AWS CLI Profile
### Option 1: AWS SSO Profile (Recommended for Developers)

```bash
export AWS_PROFILE="your-sso-profile"
export AWS_REGION_NAME="us-east-1"

# Ensure SSO session is active
aws sso login --profile your-sso-profile

# Verify credentials
aws sts get-caller-identity --profile your-sso-profile
```

**Important:** Use `AWS_REGION_NAME` (not `AWS_REGION` or `AWS_DEFAULT_REGION`) for LiteLLM compatibility.

### Option 2: AWS CLI Profile

```bash
export AWS_PROFILE="your-profile"
export AWS_REGION="us-east-1"
export AWS_REGION_NAME="us-east-1"
```

### Option 2: Access Keys
### Option 3: Access Keys

```bash
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_REGION="us-east-1"
export AWS_REGION_NAME="us-east-1"
```

### Option 3: IAM Role (EC2/ECS)
### Option 4: IAM Role (EC2/ECS)

Automatically uses instance role credentials.

## Available Models

| Model | Description |
|-------|-------------|
| `bedrock/anthropic.claude-4-5-sonnet-20251022-v1:0` | Claude 4.5 Sonnet |
| `bedrock/anthropic.claude-4-5-opus-20251022-v1:0` | Claude 4.5 Opus |
| `bedrock/anthropic.claude-4-5-haiku-20251022-v1:0` | Claude 4.5 Haiku |
| `bedrock/anthropic.claude-sonnet-4-6` | Claude 4.6 Sonnet (recommended) |
| `bedrock/anthropic.claude-opus-4-6` | Claude 4.6 Opus |
| `bedrock/anthropic.claude-4-5-sonnet-20251022-v1:0` | Claude 4.5 Sonnet (versioned) |
| `bedrock/anthropic.claude-4-5-opus-20251022-v1:0` | Claude 4.5 Opus (versioned) |
| `bedrock/anthropic.claude-4-5-haiku-20251022-v1:0` | Claude 4.5 Haiku (versioned) |
| `bedrock/amazon.titan-text-premier-v2:0` | Amazon Titan Premier v2 |

**Note:** Use the simplified model IDs (e.g., `claude-sonnet-4-6`) rather than cross-region inference IDs (e.g., `eu.anthropic.claude-sonnet-4-6-v1`).

## Prerequisites

1. Enable model access in the AWS Bedrock console
2. Ensure your IAM role/user has `bedrock:InvokeModel` permission
3. `boto3` package (included as dependency in Strix 1.0.5+)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 The version number in this note doesn't match the current pyproject.toml version, which is still 1.0.4. This will mislead users checking whether their installed version includes boto3.

Suggested change
3. `boto3` package (included as dependency in Strix 1.0.5+)
3. `boto3` package (included as dependency in Strix 1.0.4+)
Prompt To Fix With AI
This is a comment left during a code review.
Path: docs/llm-providers/bedrock.mdx
Line: 70

Comment:
The version number in this note doesn't match the current `pyproject.toml` version, which is still `1.0.4`. This will mislead users checking whether their installed version includes boto3.

```suggestion
3. `boto3` package (included as dependency in Strix 1.0.4+)
```

How can I resolve this? If you propose a fix, please make it concise.


## Complete Working Example

```bash
# Set environment variables
export AWS_PROFILE="your-sso-profile"
export AWS_REGION_NAME="eu-west-2"
export STRIX_LLM="bedrock/anthropic.claude-sonnet-4-6"

# Ensure SSO session is active
aws sso login --profile $AWS_PROFILE

# Run scan
strix -n -t https://example.com --scan-mode quick
```

### For Large Repositories (> 1GB)

```bash
# Use --mount to bind-mount instead of copying
strix -n -t ./ --mount ./ --scan-mode standard
```

### List Available Models

```bash
aws bedrock list-foundation-models \
--region eu-west-2 \
--query "modelSummaries[?contains(modelId,'claude')].modelId" \
--output table
```

## Troubleshooting

### Missing boto3

If you see `ModuleNotFoundError: No module named 'boto3'`:

```bash
# For uv tool install
uv pip install boto3 --python ~/.local/share/uv/tools/strix-agent/bin/python3

# Or reinstall from source
uv tool uninstall strix-agent
uv tool install git+https://github.com/usestrix/strix.git
```

### SSO Session Expired

```bash
aws sso login --profile your-profile
```

### Wrong Region

Ensure the region matches where you enabled Bedrock models:

```bash
export AWS_REGION_NAME="us-east-1" # Not AWS_REGION or AWS_DEFAULT_REGION
```
8 changes: 8 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,17 @@ dependencies = [
"requests>=2.32.0",
"cvss>=3.2",
"caido-sdk-client>=0.2.0",
"boto3>=1.28.0", # Required for AWS Bedrock LLM provider
]

[project.scripts]
strix = "strix.interface.main:main"

[project.optional-dependencies]
aws = [
"boto3>=1.28.0", # AWS Bedrock support
]

[dependency-groups]
dev = [
"mypy>=1.16.0",
Expand Down Expand Up @@ -105,6 +111,8 @@ module = [
"docker.*",
"caido_sdk_client.*",
"pydantic_settings.*",
"boto3.*",
"botocore.*",
]
ignore_missing_imports = true
disable_error_code = ["import-untyped"]
Expand Down
Loading