SpinneryDocs
Browse documentation

Docs / Pricing and usage

Usage billing starts after the shell is ready.

Spinnery separates the always-ready shell baseline from awake-only runtime work. Teams can attach with spin up, choose a runtime size for service work, let auto-sleep stop the meter, and keep live cost visibility while agents, tests, and dev sessions run.

usage modelawake runtime

shell: ready baseline

runtime: bills only while awake

size: Small / Medium / Large

sleep: idle auto-sleep stops meter

visibility: live estimate + cap state

Billing boundary

The shell baseline and runtime meter are different layers.

The baseline keeps the collaboration surface ready. Runtime usage starts only when service processes need CPU and memory for dev URL traffic, tests, jobs, or explicit service commands.

Shell baselinealways ready

The Organization keeps the CLI entry point, Project checkout, Workspace metadata, Git, tmux, editors, Claude, Codex, logs, repo storage, and signed dev link state available before the Runtime wakes.

Workspace storageretained asleep

The branch checkout, declared artifacts, Resource references, and Workspace identity remain available while Service CPU and memory are not running.

Runtime meterawake only

Web, API, workers, tests, database proxy, cache, mail, storage helpers, and other Service/Resource work bill only while the selected Runtime is awake.

Product language

Use Shell for the baseline and Runtime for awake billing.

Pricing copy should use the same nouns the product uses: Organization, Project, Workspace, Service, Resource, Shell, Runtime, Access Policy, signed dev link, and CLI. That keeps invoices, docs, and support handoffs aligned.

Shellincluded baseline

The Shell is the always-ready terminal surface opened by the CLI. It belongs to the Organization and Workspace, and it does not start awake Runtime billing by itself.

Runtimeawake meter

The Runtime is the Service capacity for web, /api, workers, checks, and Resource helpers. It bills only while awake and stops billing after idle sleep or spinnery sleep.

Access Policybilling-neutral

Access Policy, root posture, and signed dev link scope stay enforced whether the Runtime is asleep, waking, or awake.

Launch pricing

Use concrete amounts when modeling a first workspace.

The first-release pricing docs name the launch amounts beside the billing boundary: shell baseline, retained storage, and awake runtime sizes are separate lines.

Shell baseline$49 / active builder / month

Includes CLI and dashboard access, the always-ready shell handoff, Git/tmux/editor tooling, logs, workspace metadata, signed-link state, and 20 GB of retained workspace storage.

Retained workspace storage$0.15 / GB-month after included storage

Covers branch checkouts, declared artifacts, retained logs, and workspace state while the runtime is asleep or awake.

Small runtime$0.18 / awake hour

1 vCPU reserved; 4 GB RAM reserved; up to 2 shared vCPU / 8 GB burst. Bills only while web, API, workers, tests, jobs, or signed dev traffic keep the runtime awake.

Medium runtime$0.36 / awake hour

2 vCPU reserved; 8 GB RAM reserved; up to 4 shared vCPU / 16 GB burst. Bills only while web, API, workers, tests, jobs, or signed dev traffic keep the runtime awake.

Large runtime$0.72 / awake hour

4 vCPU reserved; 16 GB RAM reserved; up to 8 shared vCPU / 32 GB burst. Bills only while web, API, workers, tests, jobs, or signed dev traffic keep the runtime awake.

Shell-only branch dayspin up + Git + editor work = 0 runtime minutes$0 runtime charge

The shell baseline covers the handoff while no service CPU or memory is awake.

Medium reviewer session37 awake minutes / 60 x $0.36 = $0.22$0.22 runtime charge

A signed dev request wakes Medium for review; asleep time before and after adds no runtime cost.

Usage handoff

A usage receipt should explain the active meter without exposing infrastructure.

Before an agent run, long test suite, or reviewer session is left running, the pricing docs should tell teams what to check: runtime state, cap posture, separate customer-cloud costs, and the receipt Spinnery keeps after sleep.

workspace usagesafe billing view

$spinnery workspace usage signed-links

runtime: Medium awake for 37m

wake trigger: signed dev request from web

cap: warn at 80%; stop disabled

customer-cloud: postgres, storage, egress billed separately

sleep receipt: retained after idle sleep

  1. Runtime stateasleep / waking / awake

    Name what is running now.

    A usage handoff should show whether the runtime is asleep, waking, or awake, which size is selected, and which trigger started the session.

  2. Cap posturenone / warn / stop

    Show what happens near the limit.

    Caps should be visible before work starts, then record when the product warned, blocked new runtime work, or let the session continue.

  3. Separate costcustomer-cloud resources

    Do not hide provider spend.

    The usage handoff should call out resource modes and provider-owned costs that are not part of Spinnery runtime minutes.

  4. Sleep receiptwake + sleep timestamps

    Leave evidence after the meter stops.

    After idle sleep or spinnery sleep, keep the runtime size, awake window, cap events, and wake trigger available for review.

Security and billing boundary

The meter can sleep, but the organization boundary does not.

Pricing should not imply that sleep, wake, or runtime size changes the trust model. The included shell, signed dev links, root policy, and one-org-per-VM placement remain governed by the same organization boundary.

  1. VM tenancyone-org-per-VM

    Each shell/runtime VM is assigned to exactly one customer organization. Awake or asleep runtime state never places another organization on that VM.

  2. Root policyorg-governed root

    Root stays disabled, approved break-glass, or workspace elevation by organization policy. Runtime wake, sleep, or billing state does not grant root.

  3. Signed dev linksapp boundary only

    Signed dev URLs can wake web, same-origin /api, assets, and realtime traffic for one service/workspace/org session; they do not expose SSH, secrets, logs, private consoles, or runtime admin.

  4. Billing stateshell included / runtime awake

    spin up and shell collaboration stay included while idle. Runtime minutes start only when service work, tests, jobs, or signed dev traffic wake the selected capacity.

Runtime guardrails

Billing rules should be obvious before a workspace wakes.

The pricing docs should give teams a plain-language contract for which actions stay in the included shell baseline, which actions wake paid runtime capacity, and what evidence appears when caps or auto-sleep change a session.

  1. Does not wakeshell / git / docs

    Opening the shell, editing files, reading logs already captured in the workspace, or reviewing repo metadata should not start runtime billing by itself.

  2. Does wakedev URL / tests / services

    A signed dev URL request, service command, worker run, test suite, or agent task that needs web, API, database, cache, mail, or storage processes wakes the selected runtime.

  3. Stops or warnscap / idle policy

    Workspace caps warn before stopping more runtime work, and idle policy stops the meter after service traffic and background jobs go quiet.

  4. Leaves a recordwake / sleep / cap

    The usage trail records who or what woke the runtime, which size ran, when sleep stopped the meter, and whether a cap changed the session.

Runtime sleep contract

spinnery sleep stops runtime billing without deleting the workspace.

Use spinnery sleep when the service runtime should stop billing now, but the workspace should remain available for shell work, later signed-link review, and usage history.

runtime sleepbilling off

$spinnery sleep

runtime billing: stopped

shell: still available

workspace data: persisted

signed dev URL: can wake later

usage history: wake + sleep recorded

  • Stop metered runtimespinnery sleep

    Stop paid service capacity on command.

    spinnery sleep shuts down the service runtime and stops runtime billing for web, API, workers, tests, and resource helpers.

  • Keep shell accessshell remains

    Keep the terminal handoff alive.

    Sleeping the runtime does not close the workspace shell, tmux session, Git checkout, editors, Claude, Codex, logs, or workspace metadata.

  • Retain workspace datastate persists

    Sleep is not cleanup.

    The repo checkout, declared artifacts, metadata, and signed-link state persist until an explicit cleanup action removes the workspace.

  • Wake from signed linksdev URL wake

    Review links remain useful after sleep.

    A valid signed dev URL can wake the runtime later for app, same-origin /api, asset, or realtime traffic without exposing shell access.

  • Record the lifecyclewake + sleep

    Usage history keeps the billing trail.

    Runtime usage history records who or what woke the runtime and when spinnery sleep stopped billing for the awake session.

Runtime sizes

Pick the capacity for the work that wakes.

Size changes affect the awake runtime window, not whether the shell baseline exists. Start smaller for normal branch work and increase only when tests, workers, or agent loops need more reserved headroom.

Small

1 vCPU / 4 GB reserved

$0.18 / awake hour

Bursts to 2 shared vCPU / 8 GB when the host has room.

45 awake minutes on Small = $0.14 runtime.

Default branch workspaces, light web/API dev routes, and smoke checks.
Medium

2 vCPU / 8 GB reserved

$0.36 / awake hour

Bursts to 4 shared vCPU / 16 GB for heavier test loops.

37 awake minutes on Medium = $0.22 runtime.

Full-stack branches with workers, background jobs, or larger fixtures.
Large

4 vCPU / 16 GB reserved

$0.72 / awake hour

Bursts to 8 shared vCPU / 32 GB for short compile-heavy windows.

2 awake hours on Large = $1.44 runtime.

Busy agent runs, large monorepos, and integration suites that need headroom.

Auto-sleep and visibility

Every awake session should show what it costs.

Spinnery should make runtime state visible while work is happening: when the meter started, which size is awake, what the session has accumulated, and whether a cap is close to stopping more service work.

  1. Open shellspin up

    The user or agent lands in the workspace shell first. Runtime billing has not started just because the shell is open.

  2. Wake servicesdev URL / tests / jobs

    Signed dev traffic, service commands, smoke checks, or agent jobs wake the Small, Medium, or Large runtime.

  3. Watch usagelive cost panel

    The product shows runtime size, awake/asleep state, current session minutes, estimated spend, and cap status while work runs.

  4. Sleep idleauto-sleep

    When service work goes quiet, Spinnery stops the runtime meter and keeps the shell baseline ready for the next wake.

Current sessionawake minutes + estimate

Developers can see what the active runtime session is accumulating before leaving a dev session, test run, or agent job unattended.

Workspace capwarn before stop

Usage caps should be visible before a runtime wakes and again when the session approaches the configured limit.

State historywake / sleep events

The billing trail records when a workspace runtime woke, which size it used, and when auto-sleep stopped the meter.