How it works
Spare Claude Code capacity, matched to work someone would build with it
The mechanics behind pledges, estimates, matching, agreements and encrypted messaging — written straight, no marketing gloss.
Someone pledges a slice of their weekly Claude Code allowance — the part they were not going to use anyway. Someone else posts a project they would build if they had more headroom. The platform estimates what it costs, matches it against a pledge with room, and once both sides agree on ownership terms, puts them in an encrypted room together to actually do the work.
No money moves through any of this. Nobody hands over an account, a password, or an API key. What changes hands is time — a contributor running Claude Code, under their own account, on somebody else's problem.
The unit
What a CCU actually is
One CCU is 1% of a Claude Pro weekly Claude Code allowance. That is the whole definition — everything else on this page is just that number applied to a bigger or smaller plan.
It is deliberately relative rather than an absolute token count. Anthropic's published usage limits move over time; a unit pinned to a fixed number of tokens would drift out of date the next time they change. A unit defined as a percentage of whatever the current Pro allowance is stays honest regardless — pledges, estimates and the ledger all still mean the same thing next quarter that they do today.
| Plan | A full week | 10% of it |
|---|---|---|
Claude Pro The baseline. 100% of a Pro week is 100 CCU, by definition. | 100CCU | 10CCU |
Claude Max 5× Five Pro weeks of headroom. Most donated capacity comes from here. | 500CCU | 50CCU |
Claude Max 20× Twenty Pro weeks. A 10% pledge here still funds two Pro weeks. | 2,000CCU | 200CCU |
Team premium seat Treated as Max 5×-equivalent for estimation purposes. | 500CCU | 50CCU |
The API / pay-as-you-go tier is left out of that table on purpose: it has no weekly ceiling to take a percentage of, so percentToCcu returns 0 for it. Pledging from an API budget works differently and is priced in dollars instead.
A Pro week
≈ 1 Pro weeks · ~17h focused
Focused time
~17h
Roughly 6 CCU buys one focused hour of agentic coding — an approximation, not a promise.
Rough dollar sense
~$45
What a Pro week would cost billed as raw API usage, at ~$0.45/CCU. A sense-of-scale number only — never used to settle anything.
1 Pro week of capacity is always ~17h of focused time by definition, because that conversion is fixed — it is the dollar figure that is the estimate, not the hours.
Estimates
What an estimate is, and where the number comes from
Every project gets a CCU estimate from one of two paths, and the platform always tells you which one produced your number. An estimate is a starting point for a conversation with whoever pledges against it, not a quote either side is bound to.
The AI path
When an ANTHROPIC_API_KEY is configured, the brief goes to Claude Sonnet 5 with a tool call it must use — it can only answer by calling record_usage_estimate, which forces a total CCU figure, a confidence between 0 and 1, a size band, a plain-language rationale, and three to six priced phases of work. The response is validated against a schema before anything is trusted. If the phase figures and the headline total disagree by more than a small margin, the phase sum wins — the phases are the actual reasoning, the headline is just a summary of it. Whatever comes out is then clamped into the platform's supported range, so a model that answers wildly high or low still lands somewhere usable. If the model call fails or refuses for any reason, the estimate falls back to the deterministic rubric below rather than surfacing an error.
The deterministic rubric
With no API key configured, estimates come from a scored rubric instead — the app is fully functional without a key, just less precise about it. The rubric reads the title, summary, body and tags for roughly a dozen keyword patterns — things like auth, a real data model, an API surface, third-party integrations, background jobs — and adds a fixed weight for each distinct surface it finds. It adds a small score for how much detail the brief actually contains, and nudges the total up for scope language like “platform” or “production-ready” and down for words like “MVP” or “prototype”. The kind of project sets a base score too — a loop is priced for a meaningful run of cycles, not one pass, and a prompt is priced mostly for the iteration it takes to tune it. That composite score picks a size band and a position inside it, which converts to a CCU figure, then splits back out into phases — scoping, the core build, whatever named surfaces stood out, testing, and handover — weighted so the numbers read like a real breakdown rather than one lump sum divided evenly.
The result is stored as estimateSource — ai, heuristic, or manual — on the project itself and on every row in project_estimate. Every estimate a project has ever had is kept, not overwritten, so re-estimating after a scope edit never silently changes the number a contributor already agreed to work against.
| Band | Range | Example |
|---|---|---|
| Tiny | 2CCU – 15CCU | A single prompt, a script, one bug fixed. |
| Small | 15CCU – 60CCU | A CLI tool, a landing page, a well-scoped agent loop. |
| Medium | 60CCU – 220CCU | A CRUD app with auth, or a multi-step automation. |
| Large | 220CCU – 700CCU | A full product surface: several flows, a real data model. |
| Epic | 700CCU – 2,500CCU | A platform. Expect several contributors over several weeks. |
Pledges
Pledging capacity, and how it gets reserved and released
A pledge is a percentage of your own plan, for a cadence — weekly, monthly, or one-off — converted to CCU at the moment you make it and snapshotted against whatever plan tier you were on. If you upgrade or downgrade your plan later, the pledge keeps the CCU total it was written with.
The ledger is the part worth trusting rather than taking on faith. allocateCapacity reserves CCU off a pledge the moment an engagement is accepted, not when it is merely proposed — so a pending proposal never ties up capacity someone else could use in the meantime. releaseCapacity hands it back if the engagement is cancelled or the agreement falls through, and it is clamped to what was actually allocated so a double release can never inflate a pledge past its total. recordConsumption is separate again — it records what was actually burned and moves the delivered counters, without touching the remaining balance, because consumption is reporting, not accounting.
ccuAllocated + ccuRemaining = ccuTotal
That has to hold for every pledge, always, and the roll-up columns on a pledge have to reconcile against the signed ledger entries behind them — auditPledge runs exactly that check. Every pledge's detail page publishes its ledger history, so the balances are checkable, not asserted.
Matching
Claims and proposals
One negotiation, two ways to start it. A claim is a contributor stepping up to fund and build someone else's posted project. A proposal is a builder pitching an idea directly at someone's open pledge. Same state machine either way — pending, then accepted, declined or withdrawn, then eventually completed or cancelled — just opposite directions of who reached out first.
Suggested matches are scored, not just filtered. Coverage — whether the pledge's remaining capacity is enough to fund the estimate — carries the most weight, at 0.45 of the score. Shared interest between what the donor said they want to back and the project's tags carries 0.25. Whether the donor's acceptable ownership models include the project's actual model carries 0.2. The remaining 0.1 rewards a pledge that is open and recently updated over one that has gone stale. A pledge with no stated interests or no ownership preference is not penalised for it — it is scored as neutral rather than as a mismatch.
Full coverage is not required to surface a match. A pledge shows up as a partial match down to 25% coverage of the estimate, because several pledges can fund one project together — a pledge covering a quarter of the work is still worth knowing about.
Agreements
The paperwork
Before work starts, a template is picked and its {{variables}} get filled in — names, the project, the ownership terms — and the result is rendered to markdown and frozen at that moment. A SHA-256 hash of that exact text is stored alongside it, and each signature separately records the hash of the content the signer actually saw when they signed. Either party can later prove nothing changed underneath them after the fact, because the hashes have to match.
An agreement moves through draft, pending signatures, and executed, or it gets voided. The ownership model is one of six: solo owner, equal split, proportional, open source, public domain, or custom — set before either side signs. The full set of templates lives in the terms library.
None of this is legal advice. The templates are a reasonable starting point for two people agreeing on who owns what — not a substitute for a lawyer if the project or the stakes get serious.
Messaging
How the encryption actually works
This is meant to be precise, not reassuring. Here is the whole path a message takes.
- Your browser generates an ECDH P-256 keypair the first time you set one up. The public half is stored on the server as a JWK, in the clear — there is nothing to protect about a public key.
- The private key never reaches the server unprotected. It is wrapped with AES-GCM under a key derived from your passphrase with PBKDF2. The salt, the iteration count and the wrap IV are stored so the wrapping can be reversed later — the passphrase itself is not, and it never leaves your browser.
- Each conversation gets its own random AES-GCM key, generated client-side. That key is wrapped separately for every participant, via ECDH against their public key using a fresh ephemeral keypair each time. Adding someone to a conversation later just means wrapping the same key again for them. The server only ever holds wrapped copies — it never sees the conversation key itself.
- Message bodies are ciphertext plus an IV. So is the conversation subject line. There is no plaintext column in the message table — that is deliberate, not an oversight.
- A fingerprint is stored so you can confirm you still know your passphrase before rotating your keys, without the server ever learning what it is.
If you lose your passphrase, the history is gone. There is no reset and no recovery — that is a direct consequence of a design where the server never holds the key that would let it decrypt anything for you. Write it down somewhere that is not this platform.
It is also honest to say what this does not protect against. The server still sees who is talking to whom, when, and roughly how much they are saying, because conversation metadata is not ciphertext, only the content is. And the server serves the JavaScript that does the encrypting in your browser, which means this scheme protects your messages against a database breach or a curious operator poking at rows — it does not protect them against someone who compromises the server itself and changes what code it ships you.
Limits
What this doesn't do
No money moves through the platform. Nobody hands over account credentials — what gets pledged is someone's own time on their own plan, running Claude Code on your problem under their own login. Actually sharing plan access is a different thing entirely and is not what happens here; check the terms of your own plan and decide for yourself, because this project is not affiliated with Anthropic and cannot make that call on your behalf.
Estimates are estimates, from a model or from a rubric, neither of which has actually done the work. Agreement templates are a starting point, not legal advice. Reputation counters reflect self-reported outcomes of completed engagements — they are a signal, not a guarantee.