sashiko 0.2.5

Agentic code review system for Linux kernel
Documentation
log_level = "info"

[project]
name = "Sashiko"
description = ""

[forge]
enabled = false
# provider = "github"
# api_token = "your-api-token"

# Webhook authentication (recommended for production).
# When configured, Sashiko authenticates incoming webhook requests using
# this token. Non-localhost requests are permitted without
# --enable-unsafe-all-submit when a secret is set.
#
# For GitLab 19.0+ signing token (recommended):
#   webhook_secret = "whsec_YOUR_BASE64_TOKEN"
# For GitHub or plain secret token:
#   webhook_secret = "YOUR_SECRET"
# Generate a strong secret: openssl rand -hex 32
# See docs/WEBHOOK_SECURITY.md for full setup guide.
# webhook_secret = ""

[subsystems]
# Regex map: email address pattern -> subsystem name
# mapping = [
#     { pattern = ".*linux-kernel@vger.kernel.org.*", name = "LKML" },
#     { pattern = ".*netdev@vger.kernel.org.*", name = "netdev" },
# ]

[database]
url = "sashiko.db"
token = ""

[mailing_lists]
track = ["linux-kernel"]

[nntp]
server = "nntp.lore.kernel.org"
port = 119

# [smtp]
# **WARNING: BE VERY CAREFUL WHEN ENABLING EMAIL SENDING.**
# Sashiko can easily generate and send a large volume of automated emails to
# public mailing lists, potentially causing disruption or being marked as spam.
# Ensure your filters and dry_run settings are correctly configured before use.
# server = "smtp.example.com"
# port = 587
# username = "user@example.com"
# password = "your_password"
# sender_address = "sashiko@example.com"
# dry_run = true

[ai]
provider = "gemini"
model = "gemini-3.1-pro-preview"
max_input_tokens = 900000
max_interactions = 100
temperature = 1.0

# To use Claude API directly:
# provider = "claude"
# model = "claude-sonnet-4-6"
# max_input_tokens = 40000
# max_interactions = 50

# To use Claude Code CLI (fixed-cost subscription, no API key needed):
# provider = "claude-cli"
# model = "claude-sonnet-4-6"
# max_input_tokens = 40000
# max_interactions = 150

# To use GitHub Copilot CLI (subscription auth, no API key needed):
# provider = "copilot-cli"
# model = "claude-sonnet-4.5"
# max_input_tokens = 40000
# max_interactions = 150

# To use Claude via Google Cloud Vertex AI (requires --features vertex):
# provider = "vertex"
# model = "claude-sonnet-4-6"
# max_input_tokens = 40000
# max_interactions = 50

# To use Kiro CLI (fixed-cost subscription, no API key needed):
# provider = "kiro-cli"
# model = "claude-opus-4.6"
# max_input_tokens = 40000
# max_interactions = 50

# To use Devin CLI (fixed-cost subscription, no API key needed):
# provider = "devin-cli"
# model = "opus"
# max_input_tokens = 200000
# max_interactions = 150

# To use OpenRouter, also export OPENAI_API_KEY with the API key in the environment
# provider = "openai-compatible"
# model = "openrouter/free"
# max_input_tokens = 128000
# max_interactions = 100

[ai.claude]
prompt_caching = true
# thinking = "enabled"    # Enable extended thinking (or "adaptive" for Sonnet 4.6+)
# effort = "high"         # Thinking effort: "low", "medium", "high"

# [ai.claude_cli]
# effort = "high"   # Thinking effort: "low", "medium", "high", "xhigh", "max"

# [ai.openai_compat]        # Enable openrouter url
# base_url = "https://openrouter.ai/api/v1"

# [ai.vertex]
# project_id = "my-gcp-project"  # Or set ANTHROPIC_VERTEX_PROJECT_ID env var
# region = "us-east5"            # Or set CLOUD_ML_REGION env var (default: "us-east5")
# prompt_caching = true

# [ai.kiro_cli]
# binary = "kiro-cli"
# context_window_size = 200000

[server]
host = "::"
port = 8080

[git]
repository_path = "third_party/linux"

# Track custom remotes and attempt to apply patches on their branches
# [[git.custom_remotes]]
# name = "remote-name"
# url = "git://my-custom.com/remote"
# check_all_branches = true
# only_branches = []

[review]
concurrency = 16
worktree_dir = "review_trees"
timeout_seconds = 7200
max_retries = 3
ignore_files = ["MAINTAINERS", ".mailmap", ".gitignore", "LICENSES/"]