From 8cb8620ee980c1536568f1246b8f38594f1a3e56 Mon Sep 17 00:00:00 2001 From: Eric Wang Date: Thu, 13 Aug 2026 12:00:15 -0700 Subject: [PATCH] =?UTF-8?q?feat(pricing):=20the=20repricing=20is=20dated?= =?UTF-8?q?=20=E2=80=94=20encode=20the=20switch,=20a=20/pricing/=20page,?= =?UTF-8?q?=20a=20pricing=20command?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DeepSeek dated it on 2026-08-13: peak/off-peak billing on a new, higher card from 2026-08-16 16:00 UTC, peak hours 01:00-04:00 and 06:00-10:00 UTC at twice the off-peak rate. This flips the TASTE.md rejection of 2026-08-05 exactly as its expiry clause prescribed: the multiplier goes in, gated on the effective instant, never applied before it. One schedule, four readers: - internal/deepseek: PriceAt/CostAt/PeriodAt/NextChange switch cards on the instant; estimates and `ds models` follow automatically. - `deepseek pricing`: the period right now (local, UTC, Beijing), when it changes, and both cards — computed locally, nothing spent. - gateway meter: same switch, and Estimate reserves against the highest card an in-flight request could touch within the hour. - site: a /pricing/ page carrying the dated schedule, both cards, and a "right now" strip driven by the same JSON the page embeds; pricing.test.js pins the boundary arithmetic and the ground truth. The embedded docs corpus is refreshed to the 2026-08-13 upstream (pricing, updates, V4-Pro GA news) so `ds docs show quick_start/pricing` and the site cannot disagree. News page: the dated-repricing entry, the two undated announcements resolved and pointing at it. Co-authored-by: Cursor --- .github/workflows/ci.yml | 5 + AGENTS.md | 7 + Makefile | 1 + README.md | 12 +- TASTE.md | 8 + gateway/internal/meter/meter.go | 148 +++++++++++-- gateway/internal/meter/meter_test.go | 49 ++++ internal/cli/pricing.go | 189 ++++++++++++++++ internal/cli/pricing_test.go | 82 +++++++ internal/cli/root.go | 1 + internal/deepseek/pricing.go | 143 ++++++++++-- internal/deepseek/usage_test.go | 103 ++++++++- internal/docs/corpus.tar.gz | Bin 84971 -> 85960 bytes site/404.html | 4 +- site/agents/index.html | 1 + site/bench/index.html | 10 +- site/build.py | 319 ++++++++++++++++++++++++--- site/commands/index.html | 15 +- site/cost/index.html | 34 +-- site/formats/index.html | 1 + site/index.html | 2 + site/install/index.html | 1 + site/llms.txt | 8 +- site/news/index.html | 58 ++++- site/playground/index.html | 1 + site/pricing.js | 221 +++++++++++++++++++ site/pricing.test.js | 190 ++++++++++++++++ site/pricing/index.html | 211 ++++++++++++++++++ site/sitemap.xml | 1 + 29 files changed, 1715 insertions(+), 110 deletions(-) create mode 100644 internal/cli/pricing.go create mode 100644 internal/cli/pricing_test.go create mode 100644 site/pricing.js create mode 100644 site/pricing.test.js create mode 100644 site/pricing/index.html diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dd4e225..dcaa68e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -64,6 +64,11 @@ jobs: node site/playground.test.js node site/playground.dom.test.js + # The pricing page embeds the schedule its strip reads; this pins + # the period arithmetic and the schedule against the ground truth. + - name: pricing page + run: node site/pricing.test.js + # The rate card exists in two modules that cannot import each other. - name: rate cards have not drifted run: make price-check diff --git a/AGENTS.md b/AGENTS.md index 6550f35..ff4db72 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -102,8 +102,14 @@ deepseek models --json deepseek balance --json # exits 3 if exhausted deepseek usage --since 7d --json # local ledger, not billing deepseek usage --entries --json # individual calls +deepseek pricing --json # the schedule and the billing period right now ``` +Pricing is time-of-day from 2026-08-16 16:00 UTC: peak hours 01:00–04:00 +and 06:00–10:00 UTC bill at twice the off-peak rate. `pricing` computes +the current period locally — no network, nothing spent — from the same +schedule the cost estimates use. + ### Documentation, offline The binary carries every page of api-docs.deepseek.com plus the FAQ. @@ -198,6 +204,7 @@ These are computed locally, not from the API: ``` usage --json {"since","total":{...},"by_model":{...},"by_api":{...}} +pricing --json {"now_utc","now_local","now_beijing","period","multiplier","next_change","reprice_at","peak_windows_utc":[...],"peak_multiplier","current":{...},"off_peak":{...},"peak":{...},"source"} check --json {"base_url","key_set","ok","probes":[{"name","path","ok","detail","error","ms"}]} session ls --json [{"name","model","turns","updated","bytes"}] status --json {"base_url","ok","models":[...],"latency_ms","balance","status_page"} diff --git a/Makefile b/Makefile index 22392f5..5e5137a 100644 --- a/Makefile +++ b/Makefile @@ -110,6 +110,7 @@ site-check: node site/md.test.js node site/playground.test.js node site/playground.dom.test.js + node site/pricing.test.js node site/waves.test.js node site/waves.dom.test.js ./site/bans.sh diff --git a/README.md b/README.md index 52d71b0..c113392 100644 --- a/README.md +++ b/README.md @@ -194,6 +194,7 @@ One command per endpoint, named for what it does. | `tokens` | `POST /beta/completions` | Exact token counts, from the model's own tokenizer. | | `docs` | *(local)* | DeepSeek's own API docs, in the binary. Search, read, and ask. | | `usage` | *(local)* | What this CLI has spent, from its own ledger. | +| `pricing` | *(local)* | The rate card, the time-of-day schedule, and the billing period right now. | | `session` | *(local)* | The conversations `chat --continue` replays. | | `status` | `GET /models`, `/user/balance` | Is it up, for this key, from here. Costs nothing. | | `check` | *(all six)* | Preflight. | @@ -382,10 +383,13 @@ Honest limits: - Costs are **estimates** from the published USD rate card, not billed amounts. Token counts are exact, and they are what the ledger stores, so old rows can be repriced when the card changes. -- DeepSeek has announced peak/off-peak pricing (2× during 09:00–12:00 - and 14:00–18:00 Beijing time) with **no effective date**. It is - deliberately not applied — guessing that a call was billed double - would be inventing data. +- DeepSeek's repricing **is dated and encoded**: at 16:00 UTC on + 2026-08-16 billing moves to peak/off-peak on a new, higher card (peak + 01:00–04:00 and 06:00–10:00 UTC, 2× the off-peak rate). Estimates use + the flat card until that instant and switch on it automatically — + never before, because applying a price before its effective date + would be inventing data. `deepseek pricing` prints the schedule and + the period in effect right now. - `--no-ledger` skips the write; `--no-stats` hides the line. ## For agents diff --git a/TASTE.md b/TASTE.md index f24d91f..7e6d1f8 100644 --- a/TASTE.md +++ b/TASTE.md @@ -152,6 +152,14 @@ the multiplier goes when it lands. **Expires.** When DeepSeek announces the effective date — then the multiplier goes in, gated on that date. +**Expired 2026-08-13.** DeepSeek dated it: peak/off-peak billing on a new +card from 2026-08-16 16:00 UTC, windows defined in UTC (01:00–04:00 and +06:00–10:00). The multiplier went in exactly as this entry prescribed — +gated on the effective instant, never applied before it. The schedule +lives in `internal/deepseek/pricing.go`, mirrored by the gateway meter and +the site's pricing page; `deepseek pricing` prints it. The principle +stands for the next undated announcement. + --- ## 2026-08-05 rejected: executing the tool calls the model asks for diff --git a/gateway/internal/meter/meter.go b/gateway/internal/meter/meter.go index 8cd7393..3bcdf49 100644 --- a/gateway/internal/meter/meter.go +++ b/gateway/internal/meter/meter.go @@ -12,6 +12,7 @@ import ( "bytes" "encoding/json" "strings" + "time" ) // Usage is token accounting normalised across the four wire formats. @@ -39,32 +40,98 @@ type Price struct { Output float64 } -// Rates as published on 2026-08-02. -var rates = map[string]Price{ +// RepriceAt is when DeepSeek's dated repricing takes effect: 16:00 UTC +// on 2026-08-16, announced 2026-08-13. From that instant billing is +// peak/off-peak on a new, higher card. Under-charging our own budget +// after the flip would drain the credit pool at yesterday's prices, so +// the switch is encoded here and gated on the date, exactly as the CLI's +// copy does. +var RepriceAt = time.Date(2026, time.August, 16, 16, 0, 0, 0, time.UTC) + +// ratesFlat is the card published 2026-08-02, in force before RepriceAt. +var ratesFlat = map[string]Price{ "deepseek-v4-flash": {CacheHitInput: 0.0028, CacheMissInput: 0.14, Output: 0.28}, "deepseek-v4-pro": {CacheHitInput: 0.003625, CacheMissInput: 0.435, Output: 0.87}, } -// PriceFor returns the rate card for a model, defaulting to the more -// expensive one. Charging an unknown model at pro rates is deliberate: -// if DeepSeek ships a third model and we have not updated this table, we -// want to over-charge our own budget, not under-charge it. +// ratesOffPeak is the base card from RepriceAt on; during peakWindows +// every billing item costs peakMultiplier times these numbers. +var ratesOffPeak = map[string]Price{ + "deepseek-v4-flash": {CacheHitInput: 0.007, CacheMissInput: 0.22, Output: 0.66}, + "deepseek-v4-pro": {CacheHitInput: 0.022, CacheMissInput: 0.66, Output: 1.98}, +} + +const peakMultiplier = 2.0 + +// peakWindows are the daily peak hours from RepriceAt on, in minutes of +// the UTC day, end exclusive: 01:00-04:00 and 06:00-10:00 UTC. +var peakWindows = [][2]int{{1 * 60, 4 * 60}, {6 * 60, 10 * 60}} + +func inPeak(t time.Time) bool { + u := t.UTC() + m := u.Hour()*60 + u.Minute() + for _, w := range peakWindows { + if m >= w[0] && m < w[1] { + return true + } + } + return false +} + +// PriceFor returns the rate card in effect right now, defaulting to the +// more expensive model. Charging an unknown model at pro rates is +// deliberate: if DeepSeek ships a third model and we have not updated +// this table, we want to over-charge our own budget, not under-charge it. func PriceFor(model string) Price { - if p, ok := rates[model]; ok { - return p + return PriceAt(model, time.Now()) +} + +// PriceAt is PriceFor at a chosen instant: that era's base card, doubled +// inside a peak window. +func PriceAt(model string, t time.Time) Price { + if t.Before(RepriceAt) { + return cardFor(ratesFlat, model) } - if strings.Contains(model, "pro") || model == "" { - return rates["deepseek-v4-pro"] + p := cardFor(ratesOffPeak, model) + if inPeak(t) { + p = scale(p, peakMultiplier) } - if strings.Contains(model, "flash") { - return rates["deepseek-v4-flash"] + return p +} + +func cardFor(cards map[string]Price, model string) Price { + if p, ok := cards[model]; ok { + return p + } + switch { + case strings.Contains(model, "pro") || model == "": + return cards["deepseek-v4-pro"] + case strings.Contains(model, "flash"): + return cards["deepseek-v4-flash"] + default: + return cards["deepseek-v4-pro"] } - return rates["deepseek-v4-pro"] } -// Cost prices a usage record. +func scale(p Price, mult float64) Price { + p.CacheHitInput *= mult + p.CacheMissInput *= mult + p.Output *= mult + return p +} + +// Cost prices a usage record at the card in force right now — the +// response being settled just arrived. func Cost(model string, u Usage) float64 { - p := PriceFor(model) + return CostAt(model, u, time.Now()) +} + +// CostAt prices a usage record under the card in force at one instant. +func CostAt(model string, u Usage, t time.Time) float64 { + return costWith(PriceAt(model, t), u) +} + +func costWith(p Price, u Usage) float64 { const perMillion = 1_000_000.0 miss := u.InputTokens - u.CacheHitTokens if miss < 0 { @@ -93,18 +160,67 @@ func Cost(model string, u Usage) float64 { // A search request breaks the first rule: the pages DeepSeek reads on the // caller's behalf arrive as input tokens the body never contained, so // searchInputAllowance is added to the input bound instead. +// A third rule joined them with the dated repricing: the reservation is +// priced at the dearest card the request could settle under, not the +// card of the admission instant. A request admitted just before a peak +// window (or just before the repricing flip) can settle inside it, and +// an estimate the clock can outrun is not a ceiling. func Estimate(model string, requestBytes, maxTokens int, search bool) float64 { + return EstimateAt(model, requestBytes, maxTokens, search, time.Now()) +} + +// EstimateAt is Estimate at a chosen instant. +func EstimateAt(model string, requestBytes, maxTokens int, search bool, t time.Time) float64 { input := requestBytes + 1 if search { input += searchInputAllowance } - return Cost(model, Usage{ + return costWith(ceilingAt(model, t), Usage{ InputTokens: input, OutputTokens: maxTokens + reasoningAllowance, Found: false, }) } +// ceilingAt is the dearest card a request admitted at t could settle +// under. Upstream holds a connection up to ten minutes before inference +// begins, so a request is given an hour of in-flight allowance: if that +// hour crosses the repricing flip or touches a peak window, the +// reservation is priced at the dearer side. Off-peak admissions far from +// any boundary still reserve at the off-peak card — a ceiling should be +// unbeatable, not double. +func ceilingAt(model string, t time.Time) Price { + const inFlight = time.Hour + if t.Add(inFlight).Before(RepriceAt) { + return cardFor(ratesFlat, model) + } + if !t.Before(RepriceAt) && !peakTouches(t, inFlight) { + return cardFor(ratesOffPeak, model) + } + return scale(cardFor(ratesOffPeak, model), peakMultiplier) +} + +// peakTouches reports whether any instant of [t, t+d] falls in a peak +// window. The endpoint checks cover every span shorter than the gaps +// between windows; the start-of-window check keeps this correct even if +// a future card ships a window shorter than the span. +func peakTouches(t time.Time, d time.Duration) bool { + if inPeak(t) || inPeak(t.Add(d)) { + return true + } + u := t.UTC() + m := u.Hour()*60 + u.Minute() + span := int(d / time.Minute) + for _, w := range peakWindows { + for _, start := range []int{w[0], w[0] + 24*60} { + if start > m && start < m+span { + return true + } + } + } + return false +} + // reasoningAllowance is the output headroom reserved for chain-of-thought // tokens on top of the caller's visible max_tokens. 32k covers the // longest thinking runs measured live; at flash rates it prices at under diff --git a/gateway/internal/meter/meter_test.go b/gateway/internal/meter/meter_test.go index f778425..77cfb1a 100644 --- a/gateway/internal/meter/meter_test.go +++ b/gateway/internal/meter/meter_test.go @@ -4,6 +4,7 @@ import ( "math" "strings" "testing" + "time" ) // The payloads below are verbatim from the live API on 2026-08-05, one @@ -183,6 +184,54 @@ func TestEstimateExceedsATypicalRealCharge(t *testing.T) { } } +// The dated repricing: flat until 16:00 UTC on 2026-08-16, then a new +// base card off-peak with peak windows at exactly double. Under-charging +// after the flip would drain the credit pool at yesterday's prices. +func TestRepricingSwitchesOnItsEffectiveInstant(t *testing.T) { + u := Usage{InputTokens: 1_000_000, OutputTokens: 1_000_000, Found: true} + + before := CostAt("deepseek-v4-flash", u, RepriceAt.Add(-time.Second)) + if math.Abs(before-0.42) > 1e-9 { + t.Errorf("before the flip: got %v, want the flat 0.42", before) + } + // 16:00 UTC is outside both peak windows: the off-peak card. + at := CostAt("deepseek-v4-flash", u, RepriceAt) + if math.Abs(at-0.88) > 1e-9 { + t.Errorf("at the flip: got %v, want the off-peak 0.88", at) + } + // 02:00 UTC is inside 01:00-04:00: double. + peak := CostAt("deepseek-v4-flash", u, time.Date(2026, 8, 17, 2, 0, 0, 0, time.UTC)) + if math.Abs(peak-1.76) > 1e-9 { + t.Errorf("in a peak window: got %v, want 1.76", peak) + } +} + +// The reservation must be a true upper bound across period boundaries: a +// request admitted minutes before a peak window (or before the flip) can +// settle inside it, so its ceiling is priced at the dearer side. +func TestEstimateCeilingCoversTheNextPeriod(t *testing.T) { + const model = "deepseek-v4-flash" + justBeforePeak := time.Date(2026, 8, 17, 5, 30, 0, 0, time.UTC) + insidePeak := time.Date(2026, 8, 17, 6, 5, 0, 0, time.UTC) + if est, peak := EstimateAt(model, 400, 1000, false, justBeforePeak), EstimateAt(model, 400, 1000, false, insidePeak); est < peak { + t.Errorf("admitted at 05:30 UTC the reservation %v is under the peak-priced %v it could settle at", est, peak) + } + + justBeforeFlip := RepriceAt.Add(-10 * time.Minute) + afterFlip := EstimateAt(model, 400, 1000, false, RepriceAt) + if est := EstimateAt(model, 400, 1000, false, justBeforeFlip); est < afterFlip { + t.Errorf("admitted before the flip the reservation %v is under the post-flip %v", est, afterFlip) + } + + // And far from any boundary, off-peak reserves at the off-peak card, + // not at a permanent doubling. + quiet := time.Date(2026, 8, 17, 12, 0, 0, 0, time.UTC) + offPeak := costWith(cardFor(ratesOffPeak, model), Usage{InputTokens: 401, OutputTokens: 1000 + reasoningAllowance}) + if est := EstimateAt(model, 400, 1000, false, quiet); math.Abs(est-offPeak) > 1e-12 { + t.Errorf("quiet off-peak reservation %v, want the off-peak card's %v", est, offPeak) + } +} + // If DeepSeek ships a model we have not priced, the unknown must be // charged at the higher rate. Guessing low would let a new model become // a way to spend the budget faster than it is counted. diff --git a/internal/cli/pricing.go b/internal/cli/pricing.go new file mode 100644 index 0000000..805dfc5 --- /dev/null +++ b/internal/cli/pricing.go @@ -0,0 +1,189 @@ +package cli + +import ( + "fmt" + "strings" + "text/tabwriter" + "time" + + "github.com/spf13/cobra" + "github.com/thevibeworks/deepseek-cli/internal/deepseek" +) + +// beijing is fixed arithmetic, not a timezone database: Asia/Shanghai is +// UTC+8 and has not observed daylight saving since 1991. Loading the +// IANA zone could fail on a machine without tzdata; a constant cannot. +var beijing = time.FixedZone("UTC+8", 8*60*60) + +// pricingPrice is one rate card row in USD per 1M tokens. +type pricingPrice struct { + CacheHitInput float64 `json:"cache_hit_input"` + CacheMissInput float64 `json:"cache_miss_input"` + Output float64 `json:"output"` +} + +// pricingResult is the JSON shape of `deepseek pricing`. Computed +// locally from the same schedule the cost estimates use, so the two can +// never disagree. +type pricingResult struct { + NowUTC string `json:"now_utc"` + NowLocal string `json:"now_local"` + NowBeijing string `json:"now_beijing"` + Period string `json:"period"` + Multiplier float64 `json:"multiplier"` + NextChange string `json:"next_change"` + + RepriceAt string `json:"reprice_at"` + PeakWindowsUTC []string `json:"peak_windows_utc"` + PeakMultiplier float64 `json:"peak_multiplier"` + + // Current is the card in effect at now_utc; OffPeak and Peak are the + // dated cards that apply from reprice_at. + Current map[string]pricingPrice `json:"current"` + OffPeak map[string]pricingPrice `json:"off_peak"` + Peak map[string]pricingPrice `json:"peak"` + + Source string `json:"source"` +} + +func newPricingCmd(o *Options) *cobra.Command { + return &cobra.Command{ + Use: "pricing", + Short: "The rate card, the time-of-day schedule, and the period right now", + Long: strings.TrimSpace(` +Answer what a token costs at this instant, and when that changes. + +DeepSeek's repricing of 2026-08-13 is dated: until 16:00 UTC on +2026-08-16 every hour bills at the flat card of 2026-08-02, and from +that instant billing is peak/off-peak on a new, higher card — peak hours +01:00-04:00 and 06:00-10:00 UTC daily at twice the off-peak rate. + +This command reads no network and spends nothing: the schedule is the +same one the cost estimates use, so what it prints is what the usage +line will charge. The upstream page it encodes is +` + "`deepseek docs show quick_start/pricing`" + `, offline.`), + Args: cobra.NoArgs, + RunE: func(cmd *cobra.Command, args []string) error { + now := time.Now() + return o.emitValue(pricingAt(now), formatPricing(now)) + }, + } +} + +func pricingAt(now time.Time) *pricingResult { + period := deepseek.PeriodAt(now) + res := &pricingResult{ + NowUTC: now.UTC().Format(time.RFC3339), + NowLocal: now.Format(time.RFC3339), + NowBeijing: now.In(beijing).Format(time.RFC3339), + Period: period.Label, + Multiplier: period.Multiplier, + NextChange: deepseek.NextChange(now).Format(time.RFC3339), + RepriceAt: deepseek.RepriceAt.Format(time.RFC3339), + PeakMultiplier: deepseek.PeakMultiplier, + Current: map[string]pricingPrice{}, + OffPeak: map[string]pricingPrice{}, + Peak: map[string]pricingPrice{}, + Source: "https://api-docs.deepseek.com/quick_start/pricing", + } + for _, w := range deepseek.PeakWindows { + res.PeakWindowsUTC = append(res.PeakWindowsUTC, + fmt.Sprintf("%s-%s", fmtMinutes(w.Start), fmtMinutes(w.End))) + } + for _, m := range []string{deepseek.ModelFlash, deepseek.ModelPro} { + if p, ok := deepseek.PriceAt(m, now); ok { + res.Current[m] = pricingPrice{p.CacheHitInput, p.CacheMissInput, p.Output} + } + if p, ok := deepseek.PriceAt(m, deepseek.RepriceAt); ok { + res.OffPeak[m] = pricingPrice{p.CacheHitInput, p.CacheMissInput, p.Output} + res.Peak[m] = pricingPrice{ + p.CacheHitInput * deepseek.PeakMultiplier, + p.CacheMissInput * deepseek.PeakMultiplier, + p.Output * deepseek.PeakMultiplier, + } + } + } + return res +} + +func formatPricing(now time.Time) string { + period := deepseek.PeriodAt(now) + next := deepseek.NextChange(now) + + var b strings.Builder + fmt.Fprintf(&b, "period: %s", period.Label) + if period.Multiplier != 1 { + fmt.Fprintf(&b, " (%gx the off-peak card)", period.Multiplier) + } + fmt.Fprintf(&b, "\nlocal %s · utc %s · beijing %s\n", + now.Format("15:04 (UTC-07:00)"), + now.UTC().Format("15:04"), + now.In(beijing).Format("15:04")) + + switch { + case now.Before(deepseek.RepriceAt): + fmt.Fprintf(&b, "next change: %s (%s) — peak/off-peak billing begins on a new card\n", + deepseek.RepriceAt.Format("2006-01-02 15:04 UTC"), humanUntil(deepseek.RepriceAt.Sub(now))) + default: + nextPeriod := deepseek.PeriodAt(next) + fmt.Fprintf(&b, "next change: %s UTC (%s) — %s\n", + next.UTC().Format("15:04"), humanUntil(next.Sub(now)), nextPeriod.Label) + } + + fmt.Fprintf(&b, "\nUSD per 1M tokens, in effect now (%s):\n", period.Label) + w := tabwriter.NewWriter(&b, 0, 0, 2, ' ', 0) + fmt.Fprintln(w, "MODEL\tIN (CACHED)\tIN (MISS)\tOUT") + for _, m := range []string{deepseek.ModelFlash, deepseek.ModelPro} { + if p, ok := deepseek.PriceAt(m, now); ok { + fmt.Fprintf(w, "%s\t$%g\t$%g\t$%g\n", m, p.CacheHitInput, p.CacheMissInput, p.Output) + } + } + w.Flush() + + windows := make([]string, 0, len(deepseek.PeakWindows)) + for _, win := range deepseek.PeakWindows { + windows = append(windows, fmtMinutes(win.Start)+"-"+fmtMinutes(win.End)) + } + if now.Before(deepseek.RepriceAt) { + fmt.Fprintf(&b, "\nfrom %s — peak hours %s UTC daily, all other hours off-peak at half of peak:\n", + deepseek.RepriceAt.Format("2006-01-02 15:04 UTC"), strings.Join(windows, " and ")) + } else { + fmt.Fprintf(&b, "\nthe full card — peak hours %s UTC daily, all other hours off-peak at half of peak:\n", + strings.Join(windows, " and ")) + } + w = tabwriter.NewWriter(&b, 0, 0, 2, ' ', 0) + fmt.Fprintln(w, "MODEL\tPERIOD\tIN (CACHED)\tIN (MISS)\tOUT") + for _, m := range []string{deepseek.ModelFlash, deepseek.ModelPro} { + p, ok := deepseek.PriceAt(m, deepseek.RepriceAt) + if !ok { + continue + } + fmt.Fprintf(w, "%s\toff-peak\t$%g\t$%g\t$%g\n", m, p.CacheHitInput, p.CacheMissInput, p.Output) + fmt.Fprintf(w, "%s\tpeak\t$%g\t$%g\t$%g\n", m, + p.CacheHitInput*deepseek.PeakMultiplier, p.CacheMissInput*deepseek.PeakMultiplier, p.Output*deepseek.PeakMultiplier) + } + w.Flush() + + fmt.Fprint(&b, "\ncost estimates switch cards on the effective instant automatically.\nupstream copy, offline: deepseek docs show quick_start/pricing") + return b.String() +} + +func fmtMinutes(m int) string { + return fmt.Sprintf("%02d:%02d", m/60, m%60) +} + +// humanUntil renders a duration the way a person waits through it: +// days and hours far out, minutes when it is close. +func humanUntil(d time.Duration) string { + if d < 0 { + d = 0 + } + switch { + case d >= 48*time.Hour: + return fmt.Sprintf("in %dd%dh", int(d.Hours())/24, int(d.Hours())%24) + case d >= time.Hour: + return fmt.Sprintf("in %dh%02dm", int(d.Hours()), int(d.Minutes())%60) + default: + return fmt.Sprintf("in %dm", int(d.Minutes())) + } +} diff --git a/internal/cli/pricing_test.go b/internal/cli/pricing_test.go new file mode 100644 index 0000000..a6a44a0 --- /dev/null +++ b/internal/cli/pricing_test.go @@ -0,0 +1,82 @@ +package cli + +import ( + "strings" + "testing" + "time" + + "github.com/thevibeworks/deepseek-cli/internal/deepseek" +) + +// `deepseek pricing` is the CLI face of the same schedule the cost +// estimates use. A wrong answer here names a price, so the shape is +// pinned at fixed instants on both sides of the repricing flip. + +func TestPricingBeforeTheFlip(t *testing.T) { + now := time.Date(2026, 8, 14, 12, 0, 0, 0, time.UTC) + res := pricingAt(now) + + if res.Period != "flat" || res.Multiplier != 1 { + t.Errorf("period = %s at %gx, want flat at 1x", res.Period, res.Multiplier) + } + if res.NextChange != deepseek.RepriceAt.Format(time.RFC3339) { + t.Errorf("next change = %s, want the repricing instant", res.NextChange) + } + if got := res.Current["deepseek-v4-flash"]; got.CacheMissInput != 0.14 { + t.Errorf("current flash miss = %v, want the flat 0.14", got.CacheMissInput) + } + // The dated card rides along so a script can see the future without + // a second source. + if got := res.OffPeak["deepseek-v4-pro"]; got.Output != 1.98 { + t.Errorf("off-peak pro output = %v, want 1.98", got.Output) + } + if got, want := res.Peak["deepseek-v4-flash"].CacheMissInput, 0.44; got != want { + t.Errorf("peak flash miss = %v, want %v (2x off-peak)", got, want) + } + + text := formatPricing(now) + for _, want := range []string{"period: flat", "2026-08-16 16:00 UTC", "$0.14", "$0.22", "off-peak", "peak"} { + if !strings.Contains(text, want) { + t.Errorf("text output is missing %q:\n%s", want, text) + } + } +} + +func TestPricingInsideAPeakWindow(t *testing.T) { + now := time.Date(2026, 8, 17, 2, 0, 0, 0, time.UTC) // 01:00-04:00 UTC window + res := pricingAt(now) + + if res.Period != "peak" || res.Multiplier != deepseek.PeakMultiplier { + t.Errorf("period = %s at %gx, want peak at %gx", res.Period, res.Multiplier, deepseek.PeakMultiplier) + } + if got := res.Current["deepseek-v4-flash"]; got.CacheMissInput != 0.44 { + t.Errorf("current flash miss = %v, want the peak 0.44", got.CacheMissInput) + } + if res.NextChange != time.Date(2026, 8, 17, 4, 0, 0, 0, time.UTC).Format(time.RFC3339) { + t.Errorf("next change = %s, want the window end 04:00 UTC", res.NextChange) + } + + text := formatPricing(now) + if !strings.Contains(text, "period: peak") { + t.Errorf("text output does not name the peak period:\n%s", text) + } +} + +func TestPricingJSONAgreesWithTheCostEstimator(t *testing.T) { + // The command and Cost() must read the same table: the card `pricing` + // prints for an instant is the card a call at that instant is priced + // under. If these ever diverge, the tool argues with itself. + for _, now := range []time.Time{ + time.Date(2026, 8, 14, 12, 0, 0, 0, time.UTC), + time.Date(2026, 8, 17, 2, 0, 0, 0, time.UTC), + time.Date(2026, 8, 17, 12, 0, 0, 0, time.UTC), + } { + res := pricingAt(now) + for _, m := range []string{deepseek.ModelFlash, deepseek.ModelPro} { + cost, _ := deepseek.CostAt(m, deepseek.Usage{OutputTokens: 1_000_000}, now) + if got := res.Current[m].Output; got != cost { + t.Errorf("%s at %s: pricing prints $%v/M output, Cost charges $%v", m, now, got, cost) + } + } + } +} diff --git a/internal/cli/root.go b/internal/cli/root.go index c33c8d4..2518843 100644 --- a/internal/cli/root.go +++ b/internal/cli/root.go @@ -297,6 +297,7 @@ stdout is the answer; reasoning, usage and errors go to stderr.`), newTokensCmd(opts), newModelsCmd(opts), newBalanceCmd(opts), + newPricingCmd(opts), newUsageCmd(opts), newSessionCmd(opts), newDocsCmd(opts), diff --git a/internal/deepseek/pricing.go b/internal/deepseek/pricing.go index cf18668..42057c3 100644 --- a/internal/deepseek/pricing.go +++ b/internal/deepseek/pricing.go @@ -1,5 +1,7 @@ package deepseek +import "time" + // Usage is token accounting normalized across all four wire formats, so // one pricing function and one ledger row serve chat, FIM, Responses and // Anthropic alike. @@ -35,25 +37,118 @@ type Price struct { Output float64 } -// prices as published on 2026-08-02. DeepSeek adjusts these; `deepseek -// usage` labels every figure an estimate for that reason, and the raw -// token counts are kept in the ledger so any row can be repriced later. +// RepriceAt is when DeepSeek's dated repricing takes effect: 16:00 UTC +// on 2026-08-16 (midnight, Beijing), announced 2026-08-13 with the V4 GA +// release. From that instant the API bills peak/off-peak on a new, +// higher card, with off-peak at half the peak rate. // -// A peak/off-peak policy has been announced (2x on all billing items -// during 09:00-12:00 and 14:00-18:00 Beijing time) but has no effective -// date yet, so it is deliberately NOT applied: guessing that a request -// was billed double would be inventing data. When it lands, multiply here. -var prices = map[string]Price{ +// TASTE.md's rule against applying announced-but-undated numbers does +// not apply here — these numbers carry their date, so the switch is +// encoded and gated on it, exactly as that scar's expiry clause says. +// Source: https://api-docs.deepseek.com/quick_start/pricing (2026-08-13). +var RepriceAt = time.Date(2026, time.August, 16, 16, 0, 0, 0, time.UTC) + +// pricesFlat is the card published 2026-08-02, in force before RepriceAt. +var pricesFlat = map[string]Price{ ModelFlash: {CacheHitInput: 0.0028, CacheMissInput: 0.14, Output: 0.28}, ModelPro: {CacheHitInput: 0.003625, CacheMissInput: 0.435, Output: 0.87}, } -// PriceFor returns the rate card for a model. Unknown models — including -// the Claude names the Anthropic endpoint remaps server-side — resolve -// through ResolveModel first. +// pricesOffPeak is the base card from RepriceAt on. During PeakWindows +// every billing item costs PeakMultiplier times these numbers; DeepSeek +// publishes the peak figures rather than the rule, and they are exactly +// double, so the multiplier is data, not interpretation. +var pricesOffPeak = map[string]Price{ + ModelFlash: {CacheHitInput: 0.007, CacheMissInput: 0.22, Output: 0.66}, + ModelPro: {CacheHitInput: 0.022, CacheMissInput: 0.66, Output: 1.98}, +} + +// PeakMultiplier scales the off-peak card during PeakWindows. +const PeakMultiplier = 2.0 + +// Window is a daily time-of-day window in minutes of the UTC day, end +// exclusive. Upstream defines the boundaries in UTC, not Beijing. +type Window struct{ Start, End int } + +// PeakWindows are the daily peak hours from RepriceAt on: 01:00-04:00 +// and 06:00-10:00 UTC (09:00-12:00 and 14:00-18:00 Beijing). +var PeakWindows = []Window{{Start: 1 * 60, End: 4 * 60}, {Start: 6 * 60, End: 10 * 60}} + +// Period names the pricing period one instant falls in. +type Period struct { + // Label is "flat" before RepriceAt, then "peak" or "off-peak". + Label string + // Multiplier scales that era's base card. 1 except during peak. + Multiplier float64 +} + +// PeriodAt reports the pricing period in force at one instant. +func PeriodAt(t time.Time) Period { + if t.Before(RepriceAt) { + return Period{Label: "flat", Multiplier: 1} + } + if inPeak(t) { + return Period{Label: "peak", Multiplier: PeakMultiplier} + } + return Period{Label: "off-peak", Multiplier: 1} +} + +func inPeak(t time.Time) bool { + u := t.UTC() + m := u.Hour()*60 + u.Minute() + for _, w := range PeakWindows { + if m >= w.Start && m < w.End { + return true + } + } + return false +} + +// NextChange is the next instant after t at which the price of a call +// changes: the repricing instant while the flat card is in force, then +// the nearest peak-window boundary of the UTC day. +func NextChange(t time.Time) time.Time { + if t.Before(RepriceAt) { + return RepriceAt + } + u := t.UTC() + m := u.Hour()*60 + u.Minute() + day := time.Date(u.Year(), u.Month(), u.Day(), 0, 0, 0, 0, time.UTC) + for _, w := range PeakWindows { + if m < w.Start { + return day.Add(time.Duration(w.Start) * time.Minute) + } + if m < w.End { + return day.Add(time.Duration(w.End) * time.Minute) + } + } + return day.Add(24*time.Hour + time.Duration(PeakWindows[0].Start)*time.Minute) +} + +// PriceAt returns the effective rate card for a model at one instant: +// that era's base card, scaled by the period's multiplier. +func PriceAt(model string, t time.Time) (Price, bool) { + cards := pricesFlat + if !t.Before(RepriceAt) { + cards = pricesOffPeak + } + p, ok := cards[ResolveModel(model)] + if !ok { + return Price{}, false + } + if mult := PeriodAt(t).Multiplier; mult != 1 { + p.CacheHitInput *= mult + p.CacheMissInput *= mult + p.Output *= mult + } + return p, true +} + +// PriceFor returns the rate card in effect right now. Unknown models — +// including the Claude names the Anthropic endpoint remaps server-side — +// resolve through ResolveModel first. func PriceFor(model string) (Price, bool) { - p, ok := prices[ResolveModel(model)] - return p, ok + return PriceAt(model, time.Now()) } // ResolveModel maps whatever the caller asked for onto the model that @@ -79,11 +174,19 @@ func hasPrefix(s, prefix string) bool { return len(s) >= len(prefix) && s[:len(prefix)] == prefix } -// Cost estimates what a request cost, in USD, from its token counts. -// ok is false for a model with no published price, in which case callers -// should report tokens without a figure rather than print a zero. +// Cost estimates what a request cost, in USD, from its token counts, +// priced at the card in force right now — the call being priced just +// happened. ok is false for a model with no published price, in which +// case callers should report tokens without a figure rather than print +// a zero. func Cost(model string, u Usage) (usd float64, ok bool) { - p, ok := PriceFor(model) + return CostAt(model, u, time.Now()) +} + +// CostAt prices token counts under the card in force at one instant, +// which is what makes ledger rows repriceable under any era. +func CostAt(model string, u Usage, t time.Time) (usd float64, ok bool) { + p, ok := PriceAt(model, t) if !ok { return 0, false } @@ -95,9 +198,9 @@ func Cost(model string, u Usage) (usd float64, ok bool) { } // CacheSavings is what the cached part of the prompt would have cost at -// the cache-miss rate, minus what it did cost. This is the number that -// justifies structuring prompts for cache reuse, and no other DeepSeek -// tool surfaces it. +// the cache-miss rate, minus what it did cost, under the card in force +// right now. This is the number that justifies structuring prompts for +// cache reuse, and no other DeepSeek tool surfaces it. func CacheSavings(model string, u Usage) (usd float64, ok bool) { p, ok := PriceFor(model) if !ok { diff --git a/internal/deepseek/usage_test.go b/internal/deepseek/usage_test.go index 9a22a74..c1f2c19 100644 --- a/internal/deepseek/usage_test.go +++ b/internal/deepseek/usage_test.go @@ -4,6 +4,15 @@ import ( "encoding/json" "math" "testing" + "time" +) + +// Fixed instants, one per pricing period, so these tests do not change +// meaning as the wall clock crosses RepriceAt. +var ( + atFlat = time.Date(2026, 8, 10, 12, 0, 0, 0, time.UTC) // before the flip + atOffPeak = time.Date(2026, 8, 17, 12, 0, 0, 0, time.UTC) // after, outside the windows + atPeak = time.Date(2026, 8, 17, 2, 0, 0, 0, time.UTC) // after, inside 01:00-04:00 UTC ) // The three wire formats report token usage with different conventions. @@ -120,8 +129,8 @@ func TestCacheHitRate(t *testing.T) { } func TestCost(t *testing.T) { - // 1M cache-miss input + 1M output on flash: 0.14 + 0.28. - got, ok := Cost(ModelFlash, Usage{InputTokens: 1_000_000, CacheMissTokens: 1_000_000, OutputTokens: 1_000_000}) + // 1M cache-miss input + 1M output on flash, flat card: 0.14 + 0.28. + got, ok := CostAt(ModelFlash, Usage{InputTokens: 1_000_000, CacheMissTokens: 1_000_000, OutputTokens: 1_000_000}, atFlat) if !ok { t.Fatal("flash should be priced") } @@ -130,21 +139,97 @@ func TestCost(t *testing.T) { } // The same prompt served entirely from cache costs 50x less on input. - cached, _ := Cost(ModelFlash, Usage{InputTokens: 1_000_000, CacheHitTokens: 1_000_000}) + cached, _ := CostAt(ModelFlash, Usage{InputTokens: 1_000_000, CacheHitTokens: 1_000_000}, atFlat) if math.Abs(cached-0.0028) > 1e-9 { t.Errorf("cached input = %v, want 0.0028", cached) } } +// The dated repricing: flat until 16:00 UTC on 2026-08-16, then a new +// base card off-peak and exactly double during the two UTC peak windows. +// Wrong period arithmetic here misprices every estimate by 2x, which is +// precisely what the TASTE scar about undated multipliers was guarding +// against — these numbers are dated, so they are encoded and pinned. +func TestRepricingSwitchesOnItsEffectiveInstant(t *testing.T) { + u := Usage{InputTokens: 1_000_000, CacheMissTokens: 1_000_000, OutputTokens: 1_000_000} + + before, _ := CostAt(ModelFlash, u, RepriceAt.Add(-time.Nanosecond)) + if math.Abs(before-0.42) > 1e-9 { + t.Errorf("one instant before the flip: got %v, want the flat 0.42", before) + } + + // 16:00 UTC is outside both peak windows, so the flip lands on the + // off-peak card: 0.22 + 0.66. + at, _ := CostAt(ModelFlash, u, RepriceAt) + if math.Abs(at-0.88) > 1e-9 { + t.Errorf("at the flip: got %v, want the off-peak 0.88", at) + } + + peak, _ := CostAt(ModelFlash, u, atPeak) + if math.Abs(peak-1.76) > 1e-9 { + t.Errorf("in a peak window: got %v, want 1.76 (2x off-peak)", peak) + } + + pro, _ := CostAt(ModelPro, u, atPeak) + if math.Abs(pro-(1.32+3.96)) > 1e-9 { + t.Errorf("pro in a peak window: got %v, want 5.28", pro) + } +} + +func TestPeriodBoundariesAreUTCAndEndExclusive(t *testing.T) { + day := time.Date(2026, 8, 17, 0, 0, 0, 0, time.UTC) + cases := map[time.Duration]string{ + 0 * time.Hour: "off-peak", // midnight UTC + 1 * time.Hour: "peak", // window start is inclusive + 4*time.Hour - time.Minute: "peak", + 4 * time.Hour: "off-peak", // window end is exclusive + 6 * time.Hour: "peak", + 10*time.Hour - time.Nanosecond: "peak", + 10 * time.Hour: "off-peak", + 12 * time.Hour: "off-peak", + } + for d, want := range cases { + if got := PeriodAt(day.Add(d)); got.Label != want { + t.Errorf("PeriodAt(+%v) = %q, want %q", d, got.Label, want) + } + } + if got := PeriodAt(atFlat); got.Label != "flat" || got.Multiplier != 1 { + t.Errorf("before the flip: got %+v, want flat at 1x", got) + } +} + +func TestNextChange(t *testing.T) { + if got := NextChange(atFlat); !got.Equal(RepriceAt) { + t.Errorf("before the flip the next change is the flip, got %v", got) + } + day := time.Date(2026, 8, 17, 0, 0, 0, 0, time.UTC) + cases := map[time.Duration]time.Duration{ + 30 * time.Minute: 1 * time.Hour, // off-peak, next: peak starts + 2 * time.Hour: 4 * time.Hour, // peak, next: peak ends + 5 * time.Hour: 6 * time.Hour, // gap between windows + 7 * time.Hour: 10 * time.Hour, // second window + 12 * time.Hour: 25 * time.Hour, // rest of day: tomorrow's first window + } + for at, want := range cases { + if got := NextChange(day.Add(at)); !got.Equal(day.Add(want)) { + t.Errorf("NextChange(+%v) = %v, want +%v", at, got, want) + } + } +} + func TestCacheSavings(t *testing.T) { // What the cached tokens would have cost at the miss rate, minus what - // they did cost: 1M * (0.14 - 0.0028). - got, ok := CacheSavings(ModelFlash, Usage{InputTokens: 1_000_000, CacheHitTokens: 1_000_000}) + // they did cost, under the card in force now. The exact figure moves + // with the era, so pin the identity against PriceFor rather than a + // constant that would silently change meaning at the flip. + u := Usage{InputTokens: 1_000_000, CacheHitTokens: 1_000_000} + got, ok := CacheSavings(ModelFlash, u) if !ok { t.Fatal("flash should be priced") } - if math.Abs(got-0.1372) > 1e-9 { - t.Errorf("got %v, want 0.1372", got) + p, _ := PriceFor(ModelFlash) + if want := p.CacheMissInput - p.CacheHitInput; math.Abs(got-want) > 1e-9 { + t.Errorf("got %v, want %v", got, want) } if zero, _ := CacheSavings(ModelFlash, Usage{InputTokens: 100, CacheMissTokens: 100}); zero != 0 { t.Errorf("no cache hits should mean no savings, got %v", zero) @@ -173,8 +258,8 @@ func TestResolveModel(t *testing.T) { func TestCostFollowsTheRemappedModel(t *testing.T) { // A Claude name billed at pro rates, not flash rates. u := Usage{InputTokens: 1_000_000, CacheMissTokens: 1_000_000} - opus, _ := Cost("claude-opus-4-1", u) - pro, _ := Cost(ModelPro, u) + opus, _ := CostAt("claude-opus-4-1", u, atOffPeak) + pro, _ := CostAt(ModelPro, u, atOffPeak) if opus != pro { t.Errorf("claude-opus cost %v, deepseek-v4-pro cost %v — should match", opus, pro) } diff --git a/internal/docs/corpus.tar.gz b/internal/docs/corpus.tar.gz index d665799cd24592ac96ae3feef99ed57506cf57d7..f205e737f620e9b1aaaee0eb01eac786a5703d10 100644 GIT binary patch delta 73631 zcmV(=K-s_Rmj%e51+a-Nf47xgcfxpH^HbcS?Gh;iAi+rz9hIAss1jY8EK*hNmh=#p zz$JN004|IRh++-BDxEkUQjVvJ6Hl>|&b0dJ*zS&>#9emcwetTaPO8d&mHr6-{o8w= z;SK;nm89}OEW1SDo_of9_B_1v^rRa*krl{_^KIoriWs_xG27@iyPAzm{h2y!{sb zmY_K{|B8+rwqFu=fB0T~^WT5+NALaQi?UAfqyjGZvoHVRXFq)Rt3Rau6|qUC^3Iok zj2D0K6T0p1eC9{L_(zUqq?eKO!}R^$|NNh#Ib@Ffo0@8Y9Vg@wXdfRn9V|2DZ_}0o z9^d-GyKny9FaGww!H0LjjKbY&nX>(AfTm>8tE$gj+5U(NGE;$~AJb(6W%;^ijBJ|=rKm3

&wY#V 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 T``q6?JOSe4FU1IwXbArUoHZ|| delta 72655 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 be&Q#7;wOIMCw}7RrqBNe?bC7V02l@UV7$w0 diff --git a/site/404.html b/site/404.html index dd96079..4fc7b93 100644 --- a/site/404.html +++ b/site/404.html @@ -73,6 +73,7 @@ commands formats cost + pricing bench news agents @@ -97,7 +98,8 @@

404

  • commands – every command and flag
  • formats – DeepSeek's four wire formats compared
  • cost – pricing, the context cache, the usage ledger
  • -
  • news – what is changing upstream, including the announced price rise
  • +
  • pricing – the dated peak/off-peak schedule and the period right now
  • +
  • news – what is changing upstream, including the dated repricing
  • agents – the scripting contract
  • playground – the API in a browser, no key needed
  • diff --git a/site/agents/index.html b/site/agents/index.html index b8f91a6..f89a104 100644 --- a/site/agents/index.html +++ b/site/agents/index.html @@ -68,6 +68,7 @@ commands formats cost + pricing bench news agents diff --git a/site/bench/index.html b/site/bench/index.html index 8ca4b13..05a4d70 100644 --- a/site/bench/index.html +++ b/site/bench/index.html @@ -59,6 +59,7 @@ commands formats cost + pricing bench news agents @@ -186,8 +187,11 @@

    The kill line (斩杀线)

    DeepSeek prices are the published USD rate card of 2026-08-02, unchanged at GA; they are a conversion of the RMB card (¥3 / ¥0.025 / ¥6 per 1M for pro) at one consistent rate. GPT-5.6 -Sol prices are from OpenAI's own listing. A broad -DeepSeek repricing is announced but has no date, so it is not applied here.

    +Sol prices are from OpenAI's own listing. From 2026-08-16 16:00 UTC DeepSeek +bills peak/off-peak on a higher card – the +pricing page has the dated schedule. Even at +the new peak rate, pro stays ~3.8x cheaper than GPT-5.6 Sol on cache-miss +input and ~7.6x on output.

    The sober version matters as much as the slogan. The kill line is real for the middle of the market: a model that costs more than V4-Pro and scores below it on the table above is hard to justify, and that is most of the @@ -230,7 +234,7 @@

    Sources

    of the V4-Pro preview. Numbers change fast and vendor charts are vendor charts; cross-check a live leaderboard before betting on a single cell.

    diff --git a/site/build.py b/site/build.py index 7d2fe7f..0660636 100644 --- a/site/build.py +++ b/site/build.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 """Build the deepseek-cli site. -Six pages that share a head, a header and a footer. Writing those by hand -six times is how a canonical URL ends up pointing at the wrong page and +Ten pages that share a head, a header and a footer. Writing those by hand +ten times is how a canonical URL ends up pointing at the wrong page and nobody notices for a year, so the shared parts live here once and the pages carry only their own content. @@ -66,12 +66,112 @@ def _release() -> str: ("commands/", "commands"), ("formats/", "formats"), ("cost/", "cost"), + ("pricing/", "pricing"), ("bench/", "bench"), ("news/", "news"), ("agents/", "agents"), ("playground/", "playground"), ] +# The time-of-day price schedule the /pricing/ page is driven by: one row +# per period, boundaries in minutes of the UTC day (upstream defines the +# windows in UTC, not Beijing), a multiplier on that era's base card, and +# the instant the row takes effect. Keep the list chronological: among +# windowless rows the latest effective one is the base era, and a +# windowed row shadows its era's base inside its window. +# +# Verified against https://api-docs.deepseek.com/quick_start/pricing on +# 2026-08-13 (mirrored in the CLI's embedded docs corpus): the flat card +# of 2026-08-02 applies until 16:00 UTC on 2026-08-16, when DeepSeek +# moves to peak/off-peak billing on a new base card with off-peak at +# half the peak rate and peak hours 01:00-04:00 and 06:00-10:00 UTC. +# The visible schedule table, the "right now" strip and the JSON that +# pricing.js reads are all rendered from this one list, and +# pricing.test.js pins the period arithmetic against it. The same +# schedule lives in internal/deepseek/pricing.go for the CLI's +# estimates and `deepseek pricing`. +REPRICE_AT = "2026-08-16T16:00:00Z" + +PRICE_SCHEDULE = [ + dict(label="flat", start=None, end=None, multiplier=1.0, + effective="2026-08-02T00:00:00Z"), + dict(label="off-peak", start=None, end=None, multiplier=1.0, + effective=REPRICE_AT), + dict(label="peak", start=60, end=240, multiplier=2.0, + effective=REPRICE_AT), + dict(label="peak", start=360, end=600, multiplier=2.0, + effective=REPRICE_AT), +] + + +def _fmt_minutes(m): + return f"{m // 60:02d}:{m % 60:02d}" + + +def price_schedule_json(): + """The schedule as compact JSON, embedded in the page for pricing.js.""" + rows = [] + for r in PRICE_SCHEDULE: + start = "null" if r["start"] is None else str(r["start"]) + end = "null" if r["end"] is None else str(r["end"]) + rows.append( + '{"label":%s,"start":%s,"end":%s,"multiplier":%s,"effective":%s}' + % (jstr(r["label"]), start, end, repr(r["multiplier"]), jstr(r["effective"])) + ) + return "[" + ",".join(rows) + "]" + + +def price_schedule_rows(): + """The schedule as visible table rows, same data as the JSON.""" + out = [] + for r in PRICE_SCHEDULE: + if r["start"] is None: + # A windowless row is the era's base; it reads "all other + # hours" when windowed rows share its effective instant. + windowed_peers = any( + p["start"] is not None and p["effective"] == r["effective"] + for p in PRICE_SCHEDULE + ) + window = "all other hours" if windowed_peers else "all hours" + else: + window = f"{_fmt_minutes(r['start'])}–{_fmt_minutes(r['end'])} UTC" + eff = r["effective"].replace("T", " ").replace(":00Z", " UTC") + out.append( + f"{r['label']}{window}" + f"{r['multiplier']:g}×" + f"{eff}" + ) + return "\n".join(out) + + +def price_now_verdict(): + """The strip's no-JavaScript answer, derived from the same schedule. + + Phrased to stay true on both sides of the effective instant, so the + committed HTML does not start lying the morning after the flip. The + date and the windows come from the data; the copy cannot drift from + the table. + """ + eras = sorted({r["effective"] for r in PRICE_SCHEDULE}) + if len(eras) == 1: + return ( + "Flat pricing, at every hour. No time-of-day " + "tiers are in effect, and the card below is the price." + ) + flip = eras[-1].replace("T", " ").replace(":00Z", " UTC") + windows = " and ".join( + f"{_fmt_minutes(r['start'])}–{_fmt_minutes(r['end'])}" + for r in PRICE_SCHEDULE if r["start"] is not None + ) + return ( + f"Before {flip}, every hour bills at the flat card " + f"below. From that instant DeepSeek bills peak/off-peak " + f"on a new, higher card: peak hours are {windows} UTC daily, at " + "twice the off-peak rate, and every other hour is off-peak. With " + "JavaScript on, this strip reads your clock and names the period " + "you are in right now." + ) + # Theme. The default is whatever the OS says; the toggle overrides it and # persists the override. Two scripts, and the split matters: # @@ -550,6 +650,7 @@ def jstr(s): tokensPOST /beta/completionsExact token counts, from the model's own tokenizer. docslocalDeepSeek's own documentation, in the binary. Search, read, ask. usagelocalWhat this CLI has spent, from its own ledger. +pricinglocalThe rate card, the schedule, and the billing period right now. sessionlocalThe conversations chat --continue replays. statusGET /models, /user/balanceIs it up, for this key, from here. Costs nothing. checkall sixPreflight. @@ -676,7 +777,7 @@ def jstr(s): slug="commands/", crumb="commands", title="deepseek-cli command reference: chat, anthropic, respond, fim, usage", - description="Full reference for every deepseek CLI command and flag: chat completions, Anthropic Messages, OpenAI Responses, FIM, models, balance, usage ledger, sessions, check and raw, plus exit codes.", + description="Full reference for every deepseek CLI command and flag: chat completions, Anthropic Messages, OpenAI Responses, FIM, models, balance, pricing, usage ledger, sessions, check and raw, plus exit codes.", keywords="deepseek cli commands, deepseek chat completions cli, deepseek fim completion, deepseek cli flags, deepseek cli reference, deepseek json output, deepseek cli exit codes", jsonld=tech_article("deepseek-cli command reference", "Every command and flag in the deepseek CLI.", "commands/"), body=""" @@ -852,6 +953,14 @@ def jstr(s): USD and a CNY row. Exits 3 when exhausted, the same code a 402 produces anywhere else, so a script can check once up front.

    +

    pricing

    +
    ds pricing
    +

    The rate card, the time-of-day schedule, and the billing period in effect +right now – local, UTC and Beijing time, plus when the period next +changes. Computed locally from the same schedule the cost estimates use, so +nothing is spent asking. See the pricing +page for the same table in the browser.

    +

    usage

    ds usage                  # today
     ds usage --since 7d
    @@ -1057,7 +1166,10 @@ def jstr(s):
     invisible unless something is counting – so this counts.

    The rate card

    -

    USD per 1M tokens, as published on 2026-08-02:

    +

    USD per 1M tokens, as published on 2026-08-02 and in force before +2026-08-16 16:00 UTC – from that instant DeepSeek bills peak/off-peak +on a new card, and the pricing page carries +the dated schedule:

    @@ -1067,8 +1179,9 @@ def jstr(s):
    ModelInput (cached)Input (miss)Output
    -

    ds models prints this next to the live model list, so the price -is on screen when you pick.

    +

    ds models prints the card in force next to the live model +list, so the price is on screen when you pick, and ds pricing +prints the full schedule with the period you are in right now.

    What the cache is worth

    On flash, a cache hit costs 1/50th of a miss. The same @@ -1166,15 +1279,18 @@ def jstr(s):

  • Estimates, not invoices. Computed from the published USD rate card. Your account may bill in another currency – ds balance shows which.
  • -
  • Peak pricing is not applied. DeepSeek has announced a 2× -multiplier for 09:00–12:00 and 14:00–18:00 Beijing time, with no -effective date. Applying it now would double every estimate on a guess, so it -is deliberately left out until the date is announced.
  • -
  • A broader repricing is coming. On 2026-08-06 DeepSeek -gave notice in the platform console that all API services will be repriced -soon, with a substantial rise expected and no numbers yet. Until there is a -new published card, estimates stay on the card above – details on the -news page.
  • +
  • The repricing is dated, and the switch is encoded. +From 2026-08-16 16:00 UTC DeepSeek bills peak/off-peak on a new, higher +card (peak hours 01:00–04:00 and 06:00–10:00 UTC at twice the +off-peak rate). Estimates use the flat card above until that instant and +switch automatically on it – never before, because applying a price +before its effective date would be inventing data. The +pricing page and ds pricing +carry the schedule and the new numbers.
  • +
  • The cache discount narrows at the flip. On the card +above a cached input token costs 1/50th of a miss on flash and 1/120th +on pro; on the card of 2026-08-16 both settle at about 1/30th. Still +the biggest lever on a bill, just a smaller one.
  • Local only. The ledger records calls made by this CLI on this machine. It knows nothing about your other clients.
  • @@ -1185,6 +1301,116 @@ def jstr(s): """, )) +PAGES.append(dict( + slug="pricing/", + crumb="pricing", + title="DeepSeek API pricing: the schedule, the peak hours, and the period right now", + description="DeepSeek moves to peak/off-peak API billing at 16:00 UTC on 2026-08-16: peak hours 01:00-04:00 and 06:00-10:00 UTC at twice the off-peak rate. The full dated schedule, the current flat card, the new numbers per model, and a strip that reads your clock and names the billing period you are in right now.", + keywords="deepseek pricing, deepseek api pricing, deepseek price increase 2026, deepseek repricing, deepseek peak hours, deepseek off-peak pricing, deepseek peak off-peak billing, deepseek api cost, deepseek v4 flash price, deepseek v4 pro price, deepseek pricing 2026-08-16, deepseek new rate card, deepseek token price", + jsonld=faq([ + ("When does DeepSeek's peak/off-peak pricing start?", + "At 16:00 UTC on August 16, 2026. Until that instant, every hour bills at the flat card published 2026-08-02. From it, DeepSeek bills peak/off-peak on a new card: peak hours are 01:00-04:00 and 06:00-10:00 UTC daily at twice the off-peak rate, and all other hours are off-peak."), + ("What are DeepSeek's peak hours?", + "01:00-04:00 and 06:00-10:00 UTC, daily. The boundaries are defined in UTC; in Beijing time (UTC+8) they read 09:00-12:00 and 14:00-18:00. Every other hour is off-peak, at half the peak rate."), + ("What will the DeepSeek API cost after August 16, 2026?", + "Per 1M tokens (cache hit / cache miss / output): deepseek-v4-flash off-peak $0.007 / $0.22 / $0.66 and peak $0.014 / $0.44 / $1.32; deepseek-v4-pro off-peak $0.022 / $0.66 / $1.98 and peak $0.044 / $1.32 / $3.96."), + ("What does the DeepSeek API cost right now?", + "Before 16:00 UTC on 2026-08-16, the flat card of 2026-08-02 applies at every hour. Per 1M tokens (cache hit / cache miss / output): deepseek-v4-flash $0.0028 / $0.14 / $0.28; deepseek-v4-pro $0.003625 / $0.435 / $0.87."), + ("Is DeepSeek's off-peak price the same as the current price?", + "No. Off-peak is half of peak, but on a new, higher base card: a flash cache-miss input token goes from $0.14 to $0.22 per 1M off-peak and $0.44 peak. Even the cheapest hour after the switch costs more than any hour before it."), + ("How do I check the current DeepSeek billing period from the terminal?", + "Run `deepseek pricing`. It prints the period in effect (flat, off-peak or peak) with your local, UTC and Beijing time, when the period next changes, and both rate cards, all computed locally from the same schedule the CLI's cost estimates use. `deepseek pricing --json` emits the same as JSON."), + ]), + body=""" +

    Pricing

    +

    From 16:00 UTC on 2026-08-16, what a DeepSeek token costs +depends on the hour. This page carries the dated schedule, both rate cards, +and a strip that reads your clock – the same data the CLI's estimates +switch on, so the page and ds pricing can never disagree.

    + +

    Right now

    +
    +your clock decides +

    """ + price_now_verdict() + """

    +
    + +

    The schedule

    +

    One table drives everything on this page: each row is a billing period, +its daily window in UTC minutes, the multiplier on that era's base card, +and the instant the row takes effect. The strip above, the CLI's +estimates and ds pricing all read the same rows.

    +
    + + + +""" + price_schedule_rows() + """ + +
    PeriodDaily windowMultiplierEffective from
    +
    +

    The windows are defined in UTC, not Beijing – in Beijing time +(UTC+8) the peak hours read 09:00–12:00 and 14:00–18:00, which +is the Chinese working day. The off-peak window covers the whole European +and American working day, so batch work that can move west should.

    + +

    Until the switch: the flat card

    +

    USD per 1M tokens, published 2026-08-02, billed at every hour of the day +until 2026-08-16 16:00 UTC:

    +
    + + + + + + +
    ModelInput (cached)Input (miss)Output
    deepseek-v4-flash$0.0028$0.14$0.28
    deepseek-v4-pro$0.003625$0.435$0.87
    +
    + +

    From 2026-08-16 16:00 UTC: the peak/off-peak card

    +

    USD per 1M tokens. Off-peak is half of peak by construction, but on a +new, higher base – even the cheapest hour after the switch costs more +than any hour before it. A flash cache-miss input token goes from $0.14 to +$0.22 per 1M off-peak, and to $0.44 in peak hours:

    +
    + + + + + + + + +
    ModelPeriodInput (cached)Input (miss)Output
    deepseek-v4-flashoff-peak$0.007$0.22$0.66
    peak$0.014$0.44$1.32
    deepseek-v4-prooff-peak$0.022$0.66$1.98
    peak$0.044$1.32$3.96
    +
    +

    The context cache stays the biggest +lever: a cached input token costs about 1/30th of a miss on the new card, +against 1/50th (flash) and 1/120th (pro) today. Prompt structure will +still dominate a bill; the hour of the day comes second.

    + +

    The same answer in the terminal

    +
    ds pricing            # period right now, local + UTC + Beijing, both cards
    +ds pricing --json     # the same, as JSON for scripts
    +

    Computed locally from the same schedule – no network call, nothing +spent. The cost estimates price each call with +the card in force at the moment it is made: the flat card until the +effective instant, peak/off-peak after, never early – applying a +price before its date would be inventing data. The +ledger stores exact token counts rather +than dollar amounts, so historical calls can always be repriced under +whatever card was, or becomes, real.

    + +

    Source

    +

    The numbers are DeepSeek's own, from the official +Models & Pricing page as +updated on 2026-08-13 alongside the V4-Pro GA release. The CLI carries the +same page offline – ds docs show quick_start/pricing +– and ds docs sync refreshes it, so the terminal copy, +this page and the estimates trace to one upstream.

    + + +""", + scripts='\n', +)) + PAGES.append(dict( slug="bench/", crumb="bench", @@ -1313,8 +1539,11 @@ def jstr(s):

    DeepSeek prices are the published USD rate card of 2026-08-02, unchanged at GA; they are a conversion of the RMB card (¥3 / ¥0.025 / ¥6 per 1M for pro) at one consistent rate. GPT-5.6 -Sol prices are from OpenAI's own listing. A broad -DeepSeek repricing is announced but has no date, so it is not applied here.

    +Sol prices are from OpenAI's own listing. From 2026-08-16 16:00 UTC DeepSeek +bills peak/off-peak on a higher card – the +pricing page has the dated schedule. Even at +the new peak rate, pro stays ~3.8x cheaper than GPT-5.6 Sol on cache-miss +input and ~7.6x on output.

    The sober version matters as much as the slogan. The kill line is real for the middle of the market: a model that costs more than V4-Pro and scores below it on the table above is hard to justify, and that is most of the @@ -1362,9 +1591,9 @@ def jstr(s): PAGES.append(dict( slug="news/", crumb="news", - title="DeepSeek API news: dsh ships, V4-Pro GA, the announced price rise", - description="What is changing around the DeepSeek API: DeepSeek ships dsh (DeepSeek Harness), its official open-source agent harness, V4-Pro's official release (DeepSeek-V4-Pro-0813), an across-the-board price increase announced with no date yet, the 2x peak-hour pricing policy, V4-Flash's official release, and what each one means for a call.", - keywords="deepseek harness, dsh, @deepseek-ai/dsh, install dsh, dsh plugins, dsh skills, dsh-plugin, dsh vs claude code, deepseek cli vs dsh, deepseek v4 pro release, deepseek v4 pro ga, deepseek-v4-pro-0813, deepseek api price increase, deepseek price rise 2026, deepseek peak hour pricing, deepseek api news, deepseek api changelog, deepseek v4 flash release, deepseek pricing change", + title="DeepSeek API news: the dated repricing, dsh ships, V4-Pro GA", + description="What is changing around the DeepSeek API: the price rise now has a date and numbers (peak/off-peak billing from 2026-08-16 16:00 UTC), DeepSeek ships dsh (DeepSeek Harness), its official open-source agent harness, V4-Pro's official release (DeepSeek-V4-Pro-0813), V4-Flash's official release, and what each one means for a call.", + keywords="deepseek harness, dsh, @deepseek-ai/dsh, install dsh, dsh plugins, dsh skills, dsh-plugin, dsh vs claude code, deepseek cli vs dsh, deepseek v4 pro release, deepseek v4 pro ga, deepseek-v4-pro-0813, deepseek api price increase, deepseek price rise 2026, deepseek peak hour pricing, deepseek peak off-peak billing, deepseek repricing 2026-08-16, deepseek api news, deepseek api changelog, deepseek v4 flash release, deepseek pricing change", jsonld=faq([ ("Is DeepSeek V4-Pro officially released?", "Yes. On 2026-08-12 the model version on DeepSeek's Models & Pricing page changed to DeepSeek-V4-Pro-0813, ending the preview that had run since 2026-04-24. The model ID is unchanged (deepseek-v4-pro), the rate card is unchanged, and the release focuses on agentic post-training rather than new pretraining."), @@ -1373,11 +1602,11 @@ def jstr(s): ("Is dsh the same as deepseek-cli?", "No. dsh (DeepSeek Harness) is DeepSeek's official agent harness: it runs an agent loop, executes tools, and manages plugins, skills and sessions. deepseek-cli is an unofficial single-binary API client: it sends one request in any of DeepSeek's four wire formats, prints the response and its estimated cost, and carries DeepSeek's API documentation offline. They are complementary, not competing: run agents with dsh, and use deepseek-cli to check a key, price a call, debug the wire formats, or query the docs."), ("Is DeepSeek raising its API prices?", - "Yes, a rise is announced but not yet in effect. On 2026-08-06 (Beijing time) DeepSeek posted a notice in the platform console and emailed API account holders saying all API services will be repriced in the near term and that the increase is expected to be substantial, advising developers to plan call volume and top-ups accordingly. No new rate card and no effective date have been published. Separately, a 2x peak-hour pricing policy has been announced since June 2026, also without an effective date."), + "Yes, and the rise now has a date and numbers. At 16:00 UTC on 2026-08-16 DeepSeek moves to peak/off-peak billing on a new, higher card: peak hours are 01:00-04:00 and 06:00-10:00 UTC daily at twice the off-peak rate, and all other hours are off-peak. Per 1M tokens (cache hit / miss / output), deepseek-v4-flash goes to $0.007/$0.22/$0.66 off-peak and $0.014/$0.44/$1.32 peak; deepseek-v4-pro to $0.022/$0.66/$1.98 off-peak and $0.044/$1.32/$3.96 peak. This resolves both the undated broad price rise announced on 2026-08-06 and the undated peak-hour policy announced in June 2026."), ("When does DeepSeek's peak-hour pricing start?", - "No effective date has been announced. The published policy: during peak hours, 09:00-12:00 and 14:00-18:00 Beijing time (01:00-04:00 and 06:00-10:00 UTC) daily, all billing items cost 2x the regular price. Until DeepSeek announces the date, the policy is not active and estimates should not apply it."), + "At 16:00 UTC on August 16, 2026. Peak hours are 01:00-04:00 and 06:00-10:00 UTC (09:00-12:00 and 14:00-18:00 Beijing time) daily, at twice the off-peak rate; every other hour is off-peak. Before that instant the flat card of 2026-08-02 applies at every hour and no multiplier should be applied."), ("What are DeepSeek's current API prices?", - "Per 1M tokens, from the rate card published 2026-08-02: deepseek-v4-flash is $0.14 input on a cache miss, $0.0028 on a cache hit, and $0.28 output; deepseek-v4-pro is $0.435 input on a miss, $0.003625 on a hit, and $0.87 output."), + "Per 1M tokens, from the rate card published 2026-08-02 and in force until 16:00 UTC on 2026-08-16: deepseek-v4-flash is $0.14 input on a cache miss, $0.0028 on a cache hit, and $0.28 output; deepseek-v4-pro is $0.435 input on a miss, $0.003625 on a hit, and $0.87 output. From that instant peak/off-peak billing applies on a new card."), ("Where can I follow DeepSeek API changes?", "DeepSeek's own change log lives at api-docs.deepseek.com/updates. The deepseek CLI carries the same documentation inside the binary: `deepseek docs changelog` prints it offline, and `deepseek docs sync` refreshes the snapshot."), ]), @@ -1388,6 +1617,30 @@ def jstr(s): live API where that is possible; the in-terminal feed is ds docs changelog.

    +

    2026-08-13 · the price rise has its date and its numberseffective 2026-08-16

    +

    The other shoe drops. Alongside the V4-Pro GA release, DeepSeek's +Models & Pricing page now +carries the repricing that the August 6 notice +promised and the June peak-hour policy +sketched, and this time it is dated: at 16:00 UTC on 2026-08-16 +the API moves to peak/off-peak billing. Peak hours are +01:00–04:00 and 06:00–10:00 UTC daily – the boundaries +are defined in UTC – at twice the off-peak rate; every other hour is +off-peak.

    +

    The multiplier is the June policy's, but the base card is new and +higher. Off-peak is not a discount on today's prices: a flash cache-miss +input token goes from $0.14 to $0.22 per 1M in the cheapest hour, +and to $0.44 in peak. The full schedule and both cards are on the +pricing page, which also reads your clock +and names the period you are in.

    +

    What it changes here: the switch is encoded, not guessed. +Estimates price every call with the card in force at the moment it is made +– the flat card of 2026-08-02 until the effective instant, peak/off-peak +after, never early. ds pricing prints the period in effect +right now with local, UTC and Beijing time, and the +ledger stores token counts, not dollars, +so history can be repriced under any card.

    +

    2026-08-13 · DeepSeek ships dsh, its own agent harness

    DeepSeek released DeepSeek Harness: deepseek-ai/deepseek-harness @@ -1598,7 +1851,11 @@ def jstr(s): checkpoint since the cell changed. Same price, stronger model; the estimates already price it correctly.

    -

    2026-08-06 · a broad price rise is comingdate tba

    +

    2026-08-06 · a broad price rise is comingresolved 2026-08-13

    +

    Update: this is no longer a rumour with a direction. +On 2026-08-13 DeepSeek published the new card and the +date: peak/off-peak billing from 2026-08-16 16:00 UTC. The entry below +stands as it was written, as the record of the announcement.

    DeepSeek posted a notice in the platform console: all API services will be repriced “in the near term”, and the increase is @@ -1631,7 +1888,13 @@ def jstr(s): than prices, deliberately – when the card changes, every historical call can be repriced under it.

    -

    announced 2026-06-29 · 2× during peak hoursdate tba

    +

    announced 2026-06-29 · 2× during peak hoursdated 2026-08-13

    +

    Update: the date exists now, and one detail below did +not survive it. The 2026-08-13 announcement keeps +the 2× multiplier and the same windows but puts them on a new, higher +base card – so “off-peak, the current card stands” is no +longer true. Effective 2026-08-16 16:00 UTC; the +pricing page has the numbers.

    The pricing page has carried this since late June: the API will move to peak/off-peak pricing, with every billing item – input, cached input, output – costing 2× the regular price during peak @@ -1679,7 +1942,8 @@ def jstr(s): what does not. The complete feed:

    ds docs changelog     # DeepSeek's own change log, in the terminal, offline
     ds docs sync          # refresh the snapshot the binary carries
    -ds models             # the rate card the estimates use, next to the live model list
    +ds models # the rate card the estimates use, next to the live model list +ds pricing # the time-of-day schedule and the billing period right now

    Upstream: the official change log and pricing page, and status.deepseek.com for incidents.

    @@ -2022,7 +2286,8 @@ def build(check_only=False):
  • commands – every command and flag
  • formats – DeepSeek's four wire formats compared
  • cost – pricing, the context cache, the usage ledger
  • -
  • news – what is changing upstream, including the announced price rise
  • +
  • pricing – the dated peak/off-peak schedule and the period right now
  • +
  • news – what is changing upstream, including the dated repricing
  • agents – the scripting contract
  • playground – the API in a browser, no key needed
  • diff --git a/site/commands/index.html b/site/commands/index.html index 0169dba..f374744 100644 --- a/site/commands/index.html +++ b/site/commands/index.html @@ -4,7 +4,7 @@ deepseek-cli command reference: chat, anthropic, respond, fim, usage - + @@ -13,7 +13,7 @@ - + @@ -21,7 +21,7 @@ - + @@ -68,6 +68,7 @@ commands formats cost + pricing bench news agents @@ -256,6 +257,14 @@

    balance

    USD and a CNY row. Exits 3 when exhausted, the same code a 402 produces anywhere else, so a script can check once up front.

    +

    pricing

    +
    ds pricing
    +

    The rate card, the time-of-day schedule, and the billing period in effect +right now – local, UTC and Beijing time, plus when the period next +changes. Computed locally from the same schedule the cost estimates use, so +nothing is spent asking. See the pricing +page for the same table in the browser.

    +

    usage

    ds usage                  # today
     ds usage --since 7d
    diff --git a/site/cost/index.html b/site/cost/index.html
    index 547abe6..6ee7095 100644
    --- a/site/cost/index.html
    +++ b/site/cost/index.html
    @@ -68,6 +68,7 @@
           commands
           formats
           cost
    +      pricing
           bench
           news
           agents
    @@ -90,7 +91,10 @@ 

    Cost

    invisible unless something is counting – so this counts.

    The rate card

    -

    USD per 1M tokens, as published on 2026-08-02:

    +

    USD per 1M tokens, as published on 2026-08-02 and in force before +2026-08-16 16:00 UTC – from that instant DeepSeek bills peak/off-peak +on a new card, and the pricing page carries +the dated schedule:

    @@ -100,8 +104,9 @@

    The rate card

    ModelInput (cached)Input (miss)Output
    -

    ds models prints this next to the live model list, so the price -is on screen when you pick.

    +

    ds models prints the card in force next to the live model +list, so the price is on screen when you pick, and ds pricing +prints the full schedule with the period you are in right now.

    What the cache is worth

    On flash, a cache hit costs 1/50th of a miss. The same @@ -199,15 +204,18 @@

    What these numbers are not

  • Estimates, not invoices. Computed from the published USD rate card. Your account may bill in another currency – ds balance shows which.
  • -
  • Peak pricing is not applied. DeepSeek has announced a 2× -multiplier for 09:00–12:00 and 14:00–18:00 Beijing time, with no -effective date. Applying it now would double every estimate on a guess, so it -is deliberately left out until the date is announced.
  • -
  • A broader repricing is coming. On 2026-08-06 DeepSeek -gave notice in the platform console that all API services will be repriced -soon, with a substantial rise expected and no numbers yet. Until there is a -new published card, estimates stay on the card above – details on the -news page.
  • +
  • The repricing is dated, and the switch is encoded. +From 2026-08-16 16:00 UTC DeepSeek bills peak/off-peak on a new, higher +card (peak hours 01:00–04:00 and 06:00–10:00 UTC at twice the +off-peak rate). Estimates use the flat card above until that instant and +switch automatically on it – never before, because applying a price +before its effective date would be inventing data. The +pricing page and ds pricing +carry the schedule and the new numbers.
  • +
  • The cache discount narrows at the flip. On the card +above a cached input token costs 1/50th of a miss on flash and 1/120th +on pro; on the card of 2026-08-16 both settle at about 1/30th. Still +the biggest lever on a bill, just a smaller one.
  • Local only. The ledger records calls made by this CLI on this machine. It knows nothing about your other clients.
  • @@ -217,7 +225,7 @@

    What these numbers are not

    a completion, not for bookkeeping.