Skip to content

Conversation

@Amolith
Copy link
Contributor

@Amolith Amolith commented Dec 17, 2025

  • Synthetic's API doesn't include pricing (yet), so this adds manual overrides from their pricing page
    • Cached rates are set equal to the regular rates because they don't have separate cached rates afaict
  • Generates synthetic-promax.json for Synthetic Pro or Synthetic Max subscribers based on the provider we're already generating, just with prices set to 0
  • Adds metadata override for DeepSeek V3.2 to indicate it supports reasoning

Assisted-by: Claude Opus 4.5 via Crush

  • I have read CONTRIBUTING.md.
  • [~] Kujtim and I discussed the pricing override, but not the metadata override for DS V3.2 or the new provider covering the Synthetic subscription

@Amolith Amolith requested a review from a team as a code owner December 17, 2025 23:53
@Amolith Amolith requested review from andreynering and aymanbagabas and removed request for a team December 17, 2025 23:53
@Amolith Amolith force-pushed the override-synthetic-prices branch from 8d8a712 to 9d8e43d Compare December 27, 2025 00:13
@Amolith
Copy link
Contributor Author

Amolith commented Dec 27, 2025

These changes are now based on #138

Synthetic's API doesn't include pricing, so we add manual overrides from
their pricing page. Also generates synthetic-promax.json for Pro/Max
subscribers with zero pricing.

- Set default large model to GLM 4.7
- Add priceOverrides map with per-model pricing
- Set cached rates equal to regular (they don't have separate cached rates
  afaict)
- Add DeepSeek V3.2 metadata override (tools + reasoning)
- Generate separate config for Pro/Max subscription

Assisted-by: Claude Opus 4.5 via Crush
@Amolith Amolith force-pushed the override-synthetic-prices branch from 9d8e43d to 4de3f8f Compare December 27, 2025 18:11
@Amolith
Copy link
Contributor Author

Amolith commented Dec 27, 2025

Rebased on main, also changed the default large model to GLM 4.7

@meowgorithm
Copy link
Member

Awesome. @Amolith and @kujtimiihoxha: are we good to merge this one?

@Amolith
Copy link
Contributor Author

Amolith commented Dec 27, 2025

@meowgorithm actually, not quite yet. I was digging into Synthetic's API some more for a different thing and noticed that they do provide pricing, so the overrides aren't needed. Working on a refactor

Assisted-by: Claude Opus 4.5 via Crush
@Amolith
Copy link
Contributor Author

Amolith commented Dec 27, 2025

Hardcoded prices removed, ready for review.

@kujtimiihoxha and I were talking separately about in-Crush ways of handling the pro/max subcription bits thinking it was predicated on API changes. However, their /quotas endpoint is actually sufficient for differentiating between a key billed at subscription vs API rates. Should we remove the subscription provider generation from this PR and just do the enhancement in Crush, or merge this one then delete (or something else) the provider once Crush has specific Synthetic subscription handling? I think I'm inclined towards removing subscription generation from this and just handling it in Crush; introducing a provider to Catwalk with near-term plans to remove it seems odd and might require some form of backwards compatibility work.

@kujtimiihoxha
Copy link
Member

@Amolith I think we can remove the subscription based provider and just handle detecting if its a subscription user in crush.

We need to do similar things for z.ai and other subscription users and long term probably even show usage limits for these if the provider shows them.

@Amolith
Copy link
Contributor Author

Amolith commented Jan 5, 2026

@kujtimiihoxha yep, that makes sense. I removed subscription generation 👍

@Amolith Amolith changed the title feat(synthetic): add pricing and Pro/Max provider feat(synthetic): add pricing Jan 5, 2026
@kujtimiihoxha kujtimiihoxha merged commit e0e41be into charmbracelet:main Jan 14, 2026
7 checks passed
@Amolith Amolith deleted the override-synthetic-prices branch January 14, 2026 14:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants