services.dev

Free to build. Each plan adds what the business grows into.

Every key runs on every plan in test. Your plan decides which run on live jobs, and check names the one your file needs, line by line.

Plans in the docs
  • On Free, services.dev earns only when your Service gets paid.
  • There is no trial clock: each gated key runs three paid live jobs, however long they take.
services.dev check
$ npx services.dev checkservices/translation.ts · 14 lines · $89 per job, within 48 hours, charged on file's receipt.  plan    Launch (services.dev) · roles.translator.pool at services/translation.ts:6 · subject at :13 · clocks at :14          every key runs in test on any plan · deploy --live asks for Launch  take    your plan's take on each released charge · never on the translator's $30.00

Which plan does a Service like mine need?

check derives it from the files. Here is each reference Service’s whole path, every rung read from its own folder.

  1. lingua
  2. api.lawyer
  3. apis.tax
  4. api.forsale
Every rung, file by file
  1. Derived by check

    Free

    Sell your first Service

    Runs lingua; api.lawyer's trademark responses, signed by you; apis.tax's returns, signed by you; api.forsale's meetings, held by you

    $0

    Pay only when a job’s charge releases.

    The highest take on each paid job

    Everything to sell one Service

    • Every surface and app, on your builder.domains address
    • Every review pattern, at any depth
    • All seven asks, filings with receipts, and clocks on the job
    • You and two staff as signers
    • Per job, per unit, tier, self-help and approval prices

    npx services.dev starts you here, with every key in test.

    Every key on Free
  2. Derived by check

    Launch

    Your name, your people, work that recurs

    Runs lingua with its own Pool; api.lawyer as a small practice; apis.tax as a small practice; api.forsale on closers.deals

    a month

    A lower take on each paid job

    Everything in Free, and

    • Your own domain on every surface
    • Your own Pool of five, a rented one, or yours on an existing door
    • Payout schedules, with a hold on new members
    • Subjects, kept facts, clocks that outlive the job, subscriptions
    • Outcome pricing, pay at the win, and a sample that falls

    You need Launch when

    You don’t pick Launch. check names it when your file needs it.

    What needs Launch
  3. Derived by check

    Team

    Run a market, paid on the win

    Runs api.lawyer at full depth; apis.tax at full depth; api.forsale at full depth

    a month

    A lower still take on each paid job

    Everything in Launch, and

    • Pools to 50, with cascade, tiers, golden Tasks and firms
    • A door of your own, with a demand board
    • Standby for a dated season, and one Pool across brands
    • Share pay to members, and the custodian ladder
    • Tenants, Rules across regions, staff SSO and custom roles

    You need Team when

    You don’t pick Team. check names it when your file needs it.

    What needs Team
  4. Derived by check

    Scale

    Pass the buyer's review

    Runs any of them, private and pinned to a region

    a month

    The lowest take on each paid job

    Everything in Team, and

    • Unlimited members in Pools you own
    • SCIM, audit export and SIEM
    • Private deploys and data regions
    • Practice workspaces
    • Your Pool, exported for other operators

    You need Scale when

    You don’t pick Scale. check names it when your file needs it.

    What needs Scale

Every key, and its plan.

Runs on live jobs Runs in test, and on three sampled live jobs: build it now

Runs liveOnFreeLaunchTeamScale
Surfaces and the brand
API, CLI, MCP, SDK, Site, Docs and every app, on builder.domainsService({...})Every plan
The brand's own words on every surfaceBrand.wordsEvery plan
Your own domain for every surface and appBrand.domainLaunch and up
A credential the brand holds that no Rules row requires, and credentials across regionsBrand.credentialsTeam and up
Tenants reselling your Services as their own offersBrand.tenantsTeam and up
Practice workspaces, with their own professionalsBrand.workspacesScale
Review and the line
Adversarial and "yes, and" review, any lenses, any roundsreviewEvery plan
A person approves the jobs you pickhuman: 'risky'Every plan
A fixed share of delivered jobs checkedhuman: { sample }Every plan
A sample that falls while send-backs stay rarehuman: { sample, floor }Launch and up
The "delete the line" signal, once a person stops changing anythingLaunch and up
Brief corrections written back from reviewsdeliver.feedbackLaunch and up
Review evals: each lens scored on held-out jobsTeam and up
Steps and time
The seven asks: sign, consent, answer, upload, direct, decide, grantdeliver.<step>.askEvery plan
Your own code as a step, citing the rule it followsdeliver.<step>.byEvery plan
Filings with typed receipts and repair windowsdeliver.<step>.submitEvery plan
Deadlines, ends, policy, signals, talk and nested Serviceswithin, ends, policyEvery plan
Dates the world sets on a job, with rungs that run steps and movesclocksEvery plan
A clock that lives on the subject and outlives its jobclocks.lives_on: 'subject'Launch and up
What outlives the job, one job per periodsubject, subject.periodLaunch and up
Facts kept for next period, such as carryforwardssubject.keepsLaunch and up
Subscriptions with allowancesprice.every, price.includesLaunch and up
Schedules that mint jobs on the minted Service's own dates, and catch up after a gap or a late starton.scheduleLaunch and up
Events that mint a Service the same subscription's allowance countson.eventLaunch and up
A date sold as a promise: penalties credited from your line, up to a capclocks.<c>.guaranteeTeam and up
The custodian ladder for who is of record, and a steward Servicesubject.of_record.custodian, subject.stewardTeam and up
Events routed to Services outside the subscription, and grants kept on a subjecton.eventTeam and up
Money
Per job, per unit, by tier, self-help and an approval upgradepriceEvery plan
Release on delivery, acceptance or a receiptprice.releaseEvery plan
Pass-through fees at costprice.linesEvery plan
Outcome pricing, with proof and reversal windowsprice.share, outcomeLaunch and up
Flat pay at an end, held with the outcomepay: { usd, on: <end> }Launch and up
A payout schedule, and a hold on a new member's first TasksPool.payouts.schedule, hold_firstLaunch and up
Share pay to members, and referral sharespay: { share }Team and up
People and Pools
You and your staff, as signers and reviewersroles.<r>Every plan
An imported Pool another operator runs, with its placement linepool: '<door>/<pool>'Launch and up
Your Pool listed on an existing door, with its placement linedoor: '<existing door>'Launch and up
Your own Pool, at /<pool> on your brandPool({...})Launch and up
Feed, pick and direct dispatchPool.dispatchLaunch and up
The default fill ladder, and probationPool.fill, Pool.probationLaunch and up
Separation of duties across your memberswith: { differ }Launch and up
Cascade: each Task offered to one member at a time, and a fill ladder you tunedispatch: 'cascade'Team and up
Ranked offers, and affinity to the member who served the buyer beforePool.rank, Pool.affinityTeam and up
Tiers, golden Tasks and firms with a benchPool.tiers, Pool.firmsTeam and up
Separation across roles and firmswith: { differ }Team and up
Work-register Pools: completion evidence at a site, in a windowPool.register: 'work'Team and up
A door your account operates, on its own domain, with a public demand boardPool.door, Pool.publicTeam and up
Committed hours for a dated seasonPool.standbyTeam and up
One Pool across your brandsTeam and up
Unlimited members in Pools you ownScale
Your Pool exported for import; you earn its placement linePool.exportScale
Staff, security and data
Test and live keys, and buyer OAuthEvery plan
Rules across regionsRules.regionsTeam and up
Staff SSO, custom roles and preview deploysTeam and up
OAuth apps for integratorsTeam and up
SCIM, audit export and SIEMScale
Private deploys, data regions, uptime terms and invoicesScale
Limits
Signers: you and your staff3
Members in Pools you ownnone550Unlimited
Members in a Pool you importnoneUnlimitedUnlimitedUnlimited
Tenantsnonenone1025 and up
Rules regions11UnlimitedUnlimited
The audit log7 days30 days90 days400 days

At a limit, the next member, tenant or region answers the same OFFER; nothing already running stops.

Your console says when to move up.

The plan card reads your own jobs: what each key you wrote would have earned or saved, and when a schedule will cross a sample.

Every figure links to the jobs it came from. Buyers and members never see it.

Owner console · plan card
→ GET /owner/plan   # the owner console's plan card, for a tax brand on Launch← plan · Launch (services.dev) · your files need Team for 2 keys  needs      Team · Pool.standby at pools/preparers.ts:32 · 3 of 3 sampled jobs released · new Tasks fill on the ladder             Team · subject.of_record.custodian at services/annual-return.ts:31 · 1 of 3 sampled jobs released  shadow     from this month's 212 returns, had each key you wrote run as written             Pool.standby · 38 Tasks claimed 2h 10m sooner on average · $214.00 of ladder raises not paid · 38 jobs  kept       on Launch · human: { sample, floor } · 46 reviews not needed · $1,380.00 of review pay kept · 46 jobs  placement  $612.00 to the door you import from, for 204 Tasks · a door of your own:  a month on Team  ahead      Feb 1 mints 40 annual returns · subject.of_record.custodian has 2 sampled jobs left · plan.ahead offers Team on Jan 2  take       break-even:  a month of released charges · the take Team saves on your base, against the gap in price

One claim on each dollar.

Each dollar of a released charge has one claimant. services.dev's take sits on one line: the value your brand adds.

you = charge − tax − processing − AI − pay − pass-through − coverage − placement − nested Services − services.dev's take

  • It applies only when a charge releases, and reverses with it.
  • It falls as the plan rises.
  • Its base is the value your brand adds: never a member’s pay, a licensed fee, a fee or coverage passed through at cost, a placement line, or a nested Service’s own line.
  • Charges run on your own Stripe account, under your brand.
  • A plan pays for itself once the take it saves passes its price: your month's take base, times the gap between the two plans' takes, against the gap between their prices.

Translation, signed · $89.00 released on delivery
LineAmountClaimantservices.dev’s take
The translator's pay$30.00the sworn translator$0
lingua's value added$59.00lingua
AI $0.84 comes out of lingua's line. The take sits on $59.00 and nowhere else.
Trademark Office Action Response · $349.00 released on the USPTO's receipt
LineAmountClaimantservices.dev’s take
The attorney's fee, sold by the attorney$175.00the attorney, on their own account$0
Coverage, at cost$4.00the Pool's malpractice cover$0
api.lawyer's value added$170.00api.lawyer
Two sellers on one receipt. AI $2.10 comes out of api.lawyer's line.
Tax Plan, cycle 1 · $2,400.00 released at the cycle's end, 2028-01-20
LineAmountClaimantservices.dev’s take
The signer's pay, two signatures$210.00the signer$0
The representative's pay, one notice$90.00the representative$0
Eight jobs inside the allowance$0.00no charge of their own$0
apis.tax's value added$2,100.00apis.tax
AI $7.56 across the eight jobs comes out of apis.tax's line. The take settles once, on $2,100.00.
Deal, 5% at won and the closer's 10% · $11,100.00 released at won on a $74,000.00 deal, proven by the payment
LineAmountClaimantservices.dev’s take
The closer's share, charged to the seller$7,400.00the closer, 10% at won$0held to the window
The setter's pay$250.00the setter, flat at the held meeting$0
Placement, two gigs on closers.deals$50.00the door's operator$0
api.forsale's value added$3,400.00api.forsaleheld to the window
AI $11.34 comes out of api.forsale's line. If the payment reverses inside the 60 days, the 5%, the closer's share and the take reverse together; the setter keeps their $250.00.

Going live on a gated key.

Each gated key runs three paid live jobs before your plan is asked for. Then the deploy answers with the plan, the lines that need it and the way out.

The gate reads each Service, not the folder: apis.tax sells transcripts on Free while its annual return's sample runs, and only the jobs that reach a gated key wait for its plan.

A job, a subject and a subscription keep the plan they started under, so a downgrade cuts nothing in flight.

services.dev deploy --live
$ npx services.dev deploy --liveOFFER · Launch runs this Service live.  because roles.translator.pool at services/translation.ts:6 · 3 of 3 sampled jobs released          subject at services/translation.ts:13 · 1 of 3 sampled jobs released          clocks.renewal at services/translation.ts:14 · 1 of 3 sampled jobs released  cure    upgrade to Launch, or services.dev check --fit free  next    npx services.dev plan upgrade launch
402 OFFER
{  "type": "OFFER",  "object": "offer",  "plan": "launch",  "because": [    {      "key": "roles.translator.pool",      "at": "services/translation.ts:6",      "sampled": "3 of 3 released"    },    {      "key": "subject",      "at": "services/translation.ts:13",      "sampled": "1 of 3 released"    },    {      "key": "clocks.renewal",      "at": "services/translation.ts:14",      "sampled": "1 of 3 released"    }  ],  "cure": "Upgrade to Launch, or run services.dev check --fit free for the rewrite that stays on Free.",  "next": {    "do": "upgrade",    "tool": "upgrade_plan",    "http": "POST https://services.dev/v1/plan",    "arguments": {      "plan": "launch"    }  }}
Within your plan ceiling
$ npx services.dev plan ceiling teamceiling · Team · your agent accepts an OFFER for Team or lower, and records why$ npx services.dev deploy --liveOFFER · Launch runs this Service live.  accept  by your coding agent, within the ceiling  record  plan.accepted · launch · because roles.translator.pool, subject, clocks.renewal

Set a plan ceiling, and your coding agent accepts an OFFER within it and records why. Above it, the OFFER comes to you.

Before you pick.

Do I choose a plan?
check reads it off your files and names each line that needs it. deploy --live asks for it once a gated key has run its three sampled jobs, and your coding agent can accept within a plan ceiling you set.
Is there a trial?
There is no clock. Every key runs in test on every plan, and each gated key runs three paid live jobs before your plan is asked for, however long a season takes. Where a job takes months to release, three run in flight at a time, a fourth live order answers OFFER, and the console dates the end.
What does the take apply to?
The value your brand adds, never the whole charge: you = charge − tax − processing − AI − pay − pass-through − coverage − placement − nested Services − services.dev's take. A placement line carries one claim, the door operator's, and the take never touches it.
What happens on a refund?
The take reverses with the charge. Each charge runs on behalf of your account, so a refund draws on your share of it, and pay a member earned at the act stays theirs.
Can I downgrade?
Yes, and nothing in flight stops. A job, a subject with its clocks, and a paid subscription cycle keep the plan they started under. Members see any change on the delivery portal before new Tasks stop.
Do my buyers see services.dev?
No. Every surface, app and receipt carries your brand, and the take is a line on your ledger, never the buyer's.