dropthejase bets the whole stack on Bedrock

Louis rips out every AI provider except one and routes everything through Amazon.

infrastructureintegration

The fork tears out upstream's multi-provider machinery and sends every model call through Amazon Bedrock, the AWS service that hosts foundation models like Anthropic's Claude. Google's Gemini is gone, the bring-your-own-API-key UI is gone, and the model picker collapses to three Claude tiers. A pile of routing and configuration code disappears with it.

The production polish reinforces the bet: EU-region inference profiles for Claude Opus and Sonnet, a broader AWS permission policy, token counting, and prompt caching switched on. This is a fork that has picked its lane and is tuning for it - single cloud, single model family, fewer moving parts. The trade-off is obvious: no Gemini fallback, no escape hatch if AWS pricing or availability turns. Worth a look if you're weighing the simplicity-versus-flexibility question on your own legal-AI build.

So what Legal-tech founders standardising on AWS should study this as a reference point for how much complexity a single-provider commitment actually removes.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

11 commits from dropthejase/louis, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
7141961f feat(backend): add bedrock.ts - Converse API streaming adapter with tool use Jason Lee 2026-05-06 ↗ GitHub
b8759cb4 feat(backend): models.ts - Bedrock model IDs, drop Gemini refs Jason Lee 2026-05-06 ↗ GitHub
7a89da2a feat(backend): llm router - all calls through Bedrock, drop Gemini path Jason Lee 2026-05-06 ↗ GitHub
c945aa8d chore(backend): types.ts - remove Gemini provider, simplify UserApiKeys Jason Lee 2026-05-06 ↗ GitHub
3e4f3da9 feat(frontend): model selector - Claude only, 3 tiers, no API key gating Jason Lee 2026-05-06 ↗ GitHub
commit body
Replace Gemini/Claude dual-provider model list with 3 Claude-only Bedrock
models. Remove API key gating from ModelToggle (apiKeys prop now a no-op).
Simplify modelAvailability.ts to getModelLabel + always-true shims.
Remove API Keys section from account/models page. Fix Amplify Storage
credential provider config (Auth.credentialsProvider not Storage.S3).
Fix streamChat/streamProjectChat signatures to match existing call sites
in useAssistantChat.ts (keep chat_id, map to chatId in payload).

a63265b8 Restore tabular model preference (Bedrock model list) Jason Lee 2026-05-08 ↗ GitHub
Users can select Sonnet or Haiku for tabular review in account settings.
Stored in user_profiles.tabular_model, read per-request in tabular routes.
Gemini options replaced with Bedrock-only models.
310bb912 chore: remove dead code (claude.ts, gemini.ts, R2 storage.ts) Jason Lee 2026-05-08 ↗ GitHub
claude.ts and gemini.ts are unused - all LLM calls route through
bedrock.ts. frontend/src/lib/storage.ts is the old Cloudflare R2
client, replaced by frontend/src/lib/aws/storage.ts.
f9fa4f4c feat(agents): enable prompt caching on Bedrock model Jason Lee 2026-05-11 ↗ GitHub
70bff1e3 fix: use correct EU cross-region inference profile IDs for Claude opus and sonnet Jason Lee 2026-05-11 ↗ GitHub
792e54ef fix(iam): use wildcard foundation-model ARN for Bedrock invoke permissions Jason Lee 2026-05-11 ↗ GitHub
11fd6b2d fix(iam): add bedrock:CountTokens to Bedrock policy statements Jason Lee 2026-05-15 ↗ GitHub

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-329.md from inside the repo you want the changes in.

⬇ Download capture-thread-329.md