diff --git a/README.md b/README.md index c4e419d..3d1fe33 100644 --- a/README.md +++ b/README.md @@ -126,12 +126,14 @@ SUS can be configured two ways: | App repo URL | `/setup` | `--set gitRepo.url=...` | | Anthropic API key | `/setup` | K8s secret `sus-anthropic-api-key` | | Git access token | `/setup` | K8s secret `sus-git-token` | -| Claude model for build sessions | — | `--set buildPod.claudeModel=sonnet` (aliases like `sonnet`/`opus`/`haiku` track the latest model; a full ID pins one) | +| Claude model for build sessions | — | `--set buildPod.claudeModel=opus` (default; aliases like `opus`/`sonnet`/`haiku` track the latest model, a full ID pins one — see note below) | | Build pod resources | — | `buildPod.resources` in `values.yaml` | | Landing page resources | — | `landing.resources` in `values.yaml` | See [`charts/sus/values.yaml`](charts/sus/values.yaml) for all Helm values. +**Build-session model:** the default is `opus` (Claude Opus 5) — Anthropic's recommended model for agentic coding, so the best build quality. It costs roughly **2.5× more per token** than `sonnet` and responds a bit slower. If you'd rather trade some build quality for lower cost and faster responses, set `--set buildPod.claudeModel=sonnet` (Claude Sonnet 5). Aliases track the latest model in each family; pass a full ID like `claude-opus-5` to pin a version. + ### Ingress SUS includes an optional Ingress resource. Enable it in your Helm values: diff --git a/build-pod/entrypoint.sh b/build-pod/entrypoint.sh index ea5de38..6210e27 100755 --- a/build-pod/entrypoint.sh +++ b/build-pod/entrypoint.sh @@ -12,7 +12,7 @@ set -euo pipefail # APP_TEAM — the team this app belongs to # APP_SLUG — the app's short name # ANTHROPIC_API_KEY — API key for Claude Code -# CLAUDE_MODEL — Claude model for the session (default: sonnet) +# CLAUDE_MODEL — Claude model for the session (default: opus) # --------------------------------------------------------------------------- # --- Git configuration ---------------------------------------------------- @@ -258,4 +258,4 @@ with open(path, "w") as f: PYEOF exec ttyd --port 8080 --writable --base-path / \ - bash -c "cd '$APP_DIR' && exec claude --dangerously-skip-permissions --model '${CLAUDE_MODEL:-sonnet}'" + bash -c "cd '$APP_DIR' && exec claude --dangerously-skip-permissions --model '${CLAUDE_MODEL:-opus}'" diff --git a/charts/sus/templates/NOTES.txt b/charts/sus/templates/NOTES.txt index 4fad176..e13f365 100644 --- a/charts/sus/templates/NOTES.txt +++ b/charts/sus/templates/NOTES.txt @@ -11,6 +11,12 @@ To access the landing page locally, run: kubectl port-forward -n {{ .Values.namespaces.platform }} svc/{{ include "sus.fullname" . }}-landing {{ .Values.service.port }}:{{ .Values.service.port }} Then open http://localhost:{{ .Values.service.port }} in your browser. + +Build sessions use the "{{ .Values.buildPod.claudeModel }}" Claude model. +{{- if eq .Values.buildPod.claudeModel "opus" }} + This is Claude Opus 5 — best build quality, but ~2.5x the per-token cost of + "sonnet" and a bit slower. Set --set buildPod.claudeModel=sonnet to lower cost. +{{- end }} {{- if .Values.auth.enabled }} Authentication (Authelia) is ENABLED. The chart deploys Authelia and switches the diff --git a/charts/sus/values.yaml b/charts/sus/values.yaml index bb567b1..e3baf99 100644 --- a/charts/sus/values.yaml +++ b/charts/sus/values.yaml @@ -35,10 +35,14 @@ buildPod: repository: ghcr.io/dev-dull/sus-build tag: latest pullPolicy: Always - # -- Claude model for build sessions. Aliases like "sonnet", "opus", and + # -- Claude model for build sessions. Aliases like "opus", "sonnet", and # "haiku" resolve to the latest model in that family; a full model ID - # (e.g. "claude-sonnet-5") pins a specific version. - claudeModel: sonnet + # (e.g. "claude-opus-5") pins a specific version. + # Default "opus" (Claude Opus 5) — Anthropic's recommended model for agentic + # coding, i.e. the best build quality. It costs ~2.5x more per token than + # "sonnet" and is a bit slower; set claudeModel: sonnet to trade some build + # quality for lower cost and faster responses. + claudeModel: opus ports: terminal: 8080 preview: 3000 diff --git a/landing/app/pods.py b/landing/app/pods.py index c303899..30014b4 100644 --- a/landing/app/pods.py +++ b/landing/app/pods.py @@ -99,7 +99,7 @@ def _pod_manifest( client.V1EnvVar(name="SUS_API_URL", value="http://sus-landing.sus.svc.cluster.local"), client.V1EnvVar( name="CLAUDE_MODEL", - value=os.environ.get("SUS_CLAUDE_MODEL", "sonnet"), + value=os.environ.get("SUS_CLAUDE_MODEL", "opus"), ), client.V1EnvVar( name="ANTHROPIC_API_KEY",