SPS logo

SPS Dev Tool Guides

Shared AI infrastructure for the Sand Point Studios dev team

SPS Model & Hosting Map

What it is. Every product we run, which AI models it calls and for what, where it's hosted, and what each of those models costs. Read this before adding any AI capability — the fleet almost certainly already has one.

Compiled 2026-08-14, verified against live infrastructure. Companion to the per-project Anthropic key split (project_anthropic_key_split).

Cost tiers

Tier Meaning
$0 local Runs on our own hardware. No per-token cost, only electricity.
Metered API Anthropic or OpenAI. Billed per token against a project key.
Subscription seat Flat monthly per person. Not per-token.

Local models have a paid fallback. LiteLLM falls the llama-3.3-70b route back to claude-haiku-4-5. That keeps things working when a local box is unavailable — but work you expect to be free can quietly become billable. If local inference is down, spend does not stop; it moves.

Products → models

Metered Anthropic API — one key per product

Product Models What it does with them Hosted on
Vigil Ledger claude-sonnet-4-20250514, sonnet-5 vision via LiteLLM Reads receipts and financial documents as images, extracts line items, categorizes transactions, drives the ledger@ mail ingest loop and the rules engine. vigil-server · Docker · ledger.teaganwins.net
No Wake Zone Claude via LiteLLM virtual key Ticket AI assistant, exec recommendations, feature-backlog drafting, stale-doc coverage scans. vigil-server · Docker · nwz.sps.ltd
Family Recipe Box claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5 Opus reads handwritten recipe cards — the hard vision task and the product's differentiator. Sonnet does printed cards, web-page recipe parsing, meal descriptions. Haiku does auto-tagging. vigil-server · Docker · familyrecipebox.app
Agoge Platform Claude, tiered per task via shared/ai_provider.py Full grading suite (SQL, R, Python, Stats, PowerBI, Access, Tableau, essay), question/presentation/lecture generators, plagiarism and integrity analysis, accessibility remediation, virtual TA, oral exam. Azure App Service universalgrading-v2
Agoge tutorial engine Claude via authoring module Generates and revises tutorial content from source material. vigil-server · Docker
Agoge grading (v1) Claude Superseded legacy grader, still deployed and still keyed. Pending a decision on whether it stays alive. Azure App Service universalgrading
FinishOps Claude, tiered client picks per task Bid assistant and bid packs, commercial bid-file parsing, ordinance lookup, market intelligence, profit guardian, trade bridge, prep prediction, colour memory, aerial imagery. Railway · app.finishops.com
OneCut Shop Claude via Worker proxy Joinery and design recommendations in-app. The proxy exists so the key never ships inside the mobile bundle. Cloudflare Workers onecut-ai-proxy
STR-Ops / CasaOps claude-sonnet-4-6 Iris assistant for the Agua Azul property stack — bilingual morning brief, guest/ops messaging, natural-language site edits. vigil-server · Docker · strops.sandpointstudios.ltd
case-platform Claude (opus + haiku compared in evals) Toulmin argument analysis, submission judging, persona/cohort generation. Laptop via CF tunnel · case.teaganwins.net
SPS automation claude-haiku-4-5 Five unattended jobs on one key: helpdesk email triage, NWZ ops-bot chat triage, FinishOps fix-bot, daily ops digest, OneCut phase-4b check. All oneshot systemd timers. vigil-server · systemd
print-gateway claude-haiku-4-5 via LiteLLM Triages image attachments arriving at print@ / print-lake@. Holds no key of its own — metered through the gateway. vigil-server · systemd

Gateways — shared infrastructure, not products

Service Models Purpose Hosted on
LiteLLM claude-sonnet-5, claude-opus-5, claude-opus-4-8, claude-haiku-4-5, llama-3.3-70b, qwen2.5-32b-instruct, kokoro-tts, claude-* The fleet gateway. Every metered call should route through here so spend is measured and local models stay free. Holds the fallback rules. vigil-server :9002
VigilTeamCode claude-sonnet-5 default, claude-haiku-4-5 fast Claude Code metering proxy — per-person virtual keys so usage is attributable, with a local-model fallback lever. vigil-server :9001 · code.sandpointstudios.ltd
Vigil Gateway Anthropic passthrough Team-facing OpenAI-compatible control plane so OpenAI-only tools can reach our models. vigil-server · ai.teaganwins.net

$0 — running on our own hardware

Product Models What it does with them Hosted on
Vigil Steward / Iris llama-3.3-70b Orchestrator brain — morning briefings, portfolio questions, chat DMs, scheduled digests. Claude does execution separately via Claude Code seats. vigil-server :8003, model on sps-srv2
@vigil RAG bot llama-3.3-70b, nomic-embed-text Read-only question answering over company documentation in chat. vigil-server :8019
Persona router llama-3.3-70b Routes chat messages to the nine product personas. vigil-server · systemd
NWZ chat bridge llama-3.3-70b Bridges and summarizes NWZ ticket activity into chat. vigil-server · systemd
Agoge Academic Advisor Ollama (local) Degree-requirement solving, audit narration, intake parsing. FERPA-sensitive, which is why it never leaves our hardware. vigil-server :8006 · advisor.sandpointstudios.ltd
Agoge grading lane qwen2.5-32b-instruct Local grading inference so classroom-scale batches don't bill per token. vigil-server RTX 5090 :8023

Model catalog

Model Capability Runs on Endpoint Cost
Llama-3.3-70B-Instruct General text, orchestration sps-srv2 · 2× Arc Pro B60 100.121.113.104:8000 $0 local
Qwen2.5-32B-Instruct-AWQ General text, grading vigil-server · RTX 5090 :8023 $0 local
bge-reranker-v2-m3 Reranking vigil-server · Arc Pro B70 :8022 $0 local — live but unwired
Ollama library (13 models) Text, code, vision, embeddings vigil-server · 5090 + 2060S :11434 $0 local
nomic-embed-text Embeddings vigil-server · Ollama :11434 $0 local
Qdrant Vector store vigil-server · Docker internal $0 local
Whisper ggml-large-v3-turbo Speech → text, ~11× realtime Mac mini M4 Pro 100.104.83.69:8090 $0 local
Kokoro-82M Text → speech, ~3.8× realtime Mac mini :8091, vigil-server :8007 tts.sandpointstudios.ltd $0 local
FLUX.1-schnell-fp8 Image generation vigil-server · ComfyUI comfy.sandpointstudios.ltd $0 local — VRAM-limited
claude-opus-5 / claude-opus-4-8 Hardest reasoning, handwriting vision Anthropic LiteLLM or project key Metered
claude-sonnet-5 / claude-sonnet-4-6 General work, vision — the default Anthropic LiteLLM or project key Metered
claude-haiku-4-5 Cheap classification and triage Anthropic LiteLLM or project key Metered
gpt-image-1 Illustrated cover art OpenAI OpenAI API Metered
OpenAI (EventInk) Event extraction OpenAI EAS production secret Metered

A running container is not a working capability. ComfyUI is up but VRAM-starved, and the reranker serves but isn't wired into anything yet. Verify the endpoint does what you need before you build on it.

Where everything runs

Host Role Hardware / plan What it carries
vigil-server (sps-srv1) Primary production server RTX 5090 32GB + Arc Pro B70 32GB · Ubuntu 24.04 · DeWitt Most of the fleet — Vigil Ledger, NWZ, Family Recipe Box, tutorial engine, STR-Ops, Vigil Steward, LiteLLM, VigilTeamCode, Mattermost, Immich, Grafana, Ollama, ComfyUI, all automation timers.
sps-srv2 Inference appliance 2× Arc Pro B60 (24+24GB) · Ubuntu · Lakehouse Serves Llama-3.3-70B and nothing else — but that single model carries roughly 88% of all gateway traffic, making it the highest-leverage box in the fleet.
sps-srv3 Offload / backup tier Turing-era GPUs · Lew's site Intended for speech and embedding workloads. Hardware unverified.
Mac mini M4 Pro Voice + Apple platform node 24 GB · macOS 26.5 Whisper STT and Kokoro TTS. The only macOS box we have, so also the only path to iOS builds.
Azure App Service Managed hosting universalgrading-rg Agoge Platform v2 and the legacy v1 grader.
Railway Managed hosting project finishops The FinishOps backend.
Cloudflare Edge, Pages, Workers, tunnels single account, 19 zones Marketing sites, the OneCut AI and bug-report Workers, Access gates, tunnels fronting 21+ internal hostnames.
Laptop (teags-dev) Dev workstation RTX 5080 · Win 11 case-platform's backend currently runs here behind a tunnel — worth moving to a server.

What we pay for

Plan Type Covers Notes
Anthropic API (SPS workspace) Metered The eleven per-project keys behind every product above. Billed per token. Usage is attributable per product in the console.
Anthropic Team plan Seats Claude Code seats via Coder, plus the Skipper agent workers. Flat monthly per person. Claude Code work on a seat does not hit the API bill.
Teagan's Max plan Personal Teagan's own interactive Claude usage. Separate from SPS billing.
OpenAI Metered EventInk extraction and gpt-image-1 cover art. The last two places we depend on a non-Anthropic paid model.
Own hardware $0 Everything in the local model catalog. Electricity only. This is why routing through LiteLLM matters.

The one rule

Route through LiteLLM at vigil-server:9002 rather than calling Anthropic directly, unless the product genuinely needs its own key. The gateway is what makes local models free by default and paid models measurable.

When a product does need its own key, mint it in the Sand Point Studios workspace at console.anthropic.com and store it in Bitwarden as Anthropic API — <name> [SPS Team console] in the SPS Service collection. Key admins: Teagan Dixon, Raghav Tambi.