consensor documentation
consensor is a second coder for Claude. Claude stays the coder you talk to: it plans the work, keeps the judgement calls, reviews and assembles. consensor takes the mechanical parts (conversions, refactors, reference docs, boilerplate) and runs them on one fast model, with every byte screened both ways by the HOURGLASS security gate, and hands back the result with a receipt.
How a job works
- Claude packs a self-contained job: the task text and only the files it needs. Nothing else from your session exists for consensor.
- HOURGLASS screens the package on the way in. Planted instructions, credentials and exfiltration patterns are refused before any model sees them.
- The job runs on consensor's one model lane, the fast lane.
- HOURGLASS screens the answer on the way out.
- Claude gets the result and a receipt (model, tokens, gate verdicts, timing, cost). You see the consensor line: a small chip under the call, not text in Claude's reply.
consensor keeps no memory between jobs. A job that is too small to be worth delegating (under about 2,000 tokens including the expected answer) is declined with a note, so Claude does it directly.
What consensor stores
No prompt, code or model output is ever stored. The job ledger keeps codes, numbers and keys, never content: the job id, your account, when it ran, the lane, the model and the model host, the input and output hashes and sizes, the answer size Claude declared, token counts, cost (and the worst-case amount held while a job runs), the HOURGLASS verdicts and the class codes behind them, the outcome, timing, the `job_type` and `idempotency_key` Claude sent (if any), and whether Claude confirmed the result was used.
Set up
- Claude app and Claude.ai: add consensor as a connector at https://consensor.io/install and sign in when asked (Google, or a consensor account key).
- Claude Code: run the installer shown on the same page. It adds the connector for your user and four commands.
- Claude Cowork: add the connector as for the Claude app, then upload the four skills from the Cowork card on the install page (Customize → Skills → + → Create skill → Upload a skill).
No reinstall is ever needed when consensor updates. New tools or commands appear when you start a new chat.
The four commands
| Command | Name | What it does |
|---|---|---|
| `/csyntax` and what you want built | consensor coder | Claude plans it, hands the mechanical parts to consensor, reviews what comes back, assembles and reports |
| `/ccents` | consensor monical | what consensor has saved you: minutes at your own measured pace, otherwise Opus-level money |
| `/csync` | consensor account update | plan, this month's jobs and spend, HOURGLASS health, build |
| `/csensai` and a question | consensor deep research | examine, don't just search: sources, cross-checks, established versus inferred versus unknown |
In the Claude app the same four appear under the connector's prompts. Plain language works too: "use consensor to convert these fixtures to CSV".
The tools behind them
- consensor coder (`consensor_delegate_code`): runs one delegated coding job. Arguments: `task`, optional `files` (path and content), `expected_output_tokens` (the answer's rough size; 1,500 if not given), `job_type`, `idempotency_key`, and `mode` (kept for older clients; every job runs on the fast lane). Not read-only (it does work and writes a receipt), never destructive.
- consensor job used (`consensor_job_used`): Claude calls it once it has checked a result, to say whether it kept the result (as is or repaired) or threw it away. Only confirmed jobs count. A cut-off answer can be confirmed too. Draws nothing. Not read-only (it records the answer), never destructive.
- consensor account update (`consensor_status`): read-only. Account, month, models, gate health, build.
- consensor line (`consensor_line`): read-only. Draws the line with this week's confirmed saving. Claude calls it only when you ask to see the line, or in a host that can't draw it.
Reading the consensor line
The consensor line is a small chip drawn under each consensor call in hosts that draw it (the Claude app and Claude.ai): the consensor mark, the HOURGLASS shield (the gate's verdict in and out), this job's saving and the week's confirmed saving. It is the only place consensor shows up: Claude doesn't repeat its figures or write a consensor line in its reply. In a text-only host (Claude Code in a terminal), Claude ends its reply with the line as plain text.
When the gate refuses an answer the line says so, for example "HOURGLASS in pass · out refuse (CP-1) · answer destroyed". A cut-off answer adds "CUT OFF".
A job counts only once Claude has checked the result and confirmed whether it was used: a used job adds its saving, net of the brief Claude wrote and the answer it read; a thrown-away job subtracts that overhead; until then it shows as "to confirm". Minutes are only ever your own measured pace from the optional timing add-on, never a generic rate. Without a pace, you see Opus-level money on the stated basis. Repair work Claude does after a job, and output beyond the declared scope, are shown, not credited.
Limits
- Minimum job: about 2,000 tokens including the expected answer. Pass `expected_output_tokens` when a short spec asks for a long answer.
- Maximum package: 200 kB.
- One lane. An answer can run to 16,384 tokens (thinking included). A cut-off answer is never reported as done: its outcome is `truncated` and it says NOT COMPLETE and CUT OFF. The partial text comes back for reference; split the part at about 12,000 tokens and send the parts.
- Delegated jobs a minute, by plan: Pro 6, Max 5x 12, Max 20x 24. Hard cap: 60 a minute per account.
- At most 3 jobs running at once per account.
- The same call with the same arguments: at most 10 a minute.
- The same job sent again within 10 minutes is answered by reference ("Same job as …, already answered at …") instead of run and charged again. The answer is not stored, so if it was lost, send the job again with a new `idempotency_key`.
- When an account's monthly spend limit, or the service's daily spend limit, is reached, jobs are declined before they run and nothing is charged.
Job types: a proposal awaiting the owner
consensor can be limited to a closed list of job types (`job_type`). No list is set today, so every job type is accepted. These four are proposed for launch, from the 30 September benchmark on the fast lane, and are not yet approved:
| Job type | `job_type` | Benchmark |
|---|---|---|
| Error-handling map (Markdown table) | error_handling_map | 42 of 42 whole |
| Module overview (Markdown) | module_overview | 12 of 12 whole |
| API reference (Markdown tables) | api_reference | 39 of 42 whole; the 3 cut off were extra-large jobs at the old 8k cap |
| JSON Schema from types | json_schema | 57 of 72 whole; the 15 cut off were large jobs at the old 8k cap |
Unit tests are not on the list: the gate currently destroys most generated tests (a known false positive, class CP-1), so Claude writes those itself.
Refusals: what the codes mean
A refusal names the HOURGLASS class that caused it and says what to do. A job refused at the input never reached the model. An answer refused at the output was destroyed, and it doesn't count against your allowance.
| Class | Where | What it means | What to do |
|---|---|---|---|
| PI-1 to PI-4 | input | text that reads like instructions planted for the model (prompt injection) | remove text aimed at an AI from the files, or leave that file out |
| JB-1 to JB-4 | input | text that tries to talk the model out of its rules: role-play, pressure, threats | restate the task plainly |
| CP-1 | input | text read as crisis-related, which consensor never sends to a model | reword it if it is ordinary code, or do the job in Claude |
| CP-1 | output | the gate misread generated test code (a known false positive) | ask for the tests without HTML-string assertions, or write them in Claude |
| EX-1 | output | the model recited its own instructions | send the job again |
| EX-2 | input or output | something that looks like a key, token or password | use placeholders instead of real secrets |
| EX-3 | input or output | internal hosts, private addresses, file paths or stack traces; usually masked as [redacted] rather than refused | use placeholders in their place, or split the job |
| EX-4 | output | 25 or more rows of data, treated as bulk data | ask for the table in parts, or for code that generates it |
| EX-5 | output | long encoded strings, treated as a way to smuggle data out | ask for it without encoded blobs |
| EX-6 | output | an image or link URL carrying data | ask for it without such links |
| PII-1 to PII-4 | input or output | an email address, phone number or ID number; usually masked as [redacted] | use placeholders |
A refusal with no class means the gate could not judge part of the text even in small pieces. Send a smaller or simpler job.
Troubleshooting
- 401 or "asked for sign-in": the key or session is missing. Sign in again from the connector's settings, or re-run the installer for Claude Code.
- "Couldn't reach consensor" in the Claude app: start a new chat; the connector list and tools refresh when a chat starts.
- `too_small`: not an error; the job is cheaper in Claude. If the answer will be long, set `expected_output_tokens`.
- `refused_input` or `refused_output` with a class: see the table above.
- "consensor is temporarily unable to run jobs; nothing was charged.": the model host is rate-limiting or out of quota for consensor. Nothing ran. Try again later.
- "The model host refused this request from the data centre that handled it.": try again shortly.
- "consensor can't check your allowance right now": consensor couldn't read its own ledger, so it did not run the job. Nothing was sent or charged. Try again shortly.
- "consensor is paused for maintenance": nothing was sent or charged. Try again later.
- A model timeout or "The model call failed": nothing was counted against your allowance. Try again, or split the job.
- Commands missing in Cowork: Cowork runs skills; upload the four from the install page.
Data and privacy
What leaves your machine is exactly the package Claude sends. What consensor keeps is described above under "What consensor stores", and on the privacy page at https://consensor.io/privacy. The timing add-on that measures your own pace is off unless you turn it on.
Support
Use https://consensor.io/contact. Include the job id from the receipt if you have one. The build you are on is in consensor account update.