With cached tiktoken 0.12.0, the large banking and HTTP graphs fall from 37,846 to 32,486 and from 161,861 to 134,165 cl100k_base tokens. The HTTP task view falls from 5,602 to 5,010. The complete model-text envelope is counted and replayed against the same selected JSON.
Context is measurable. Cost savings are not proven yet.
Publish the counterexample before the claim.
Version 0.9.0 retains the earlier token, paid harness, Rust and hot-reload measurements and adds LAW16 proof experiments with costs and failures preserved. The completed Claude campaign has 19 passing trials out of 20, or nine fully accepted matched pairs. The separate routing qualification remains not evaluated. None of these results establishes a general productivity, cost or speed advantage.
entity Semaprax
status beta
snapshot 933196b
authority github.com/wavect/semapraxRepository status at the audited snapshot
| Repository snapshot | 933196b · 2026-10-15. The v0.9.0 tag resolves to the pinned source commit. Its exact-tag CI completed successfully. This does not establish blanket production or security assurance. |
|---|---|
| Full product status | 55 Partial · 0 Implemented · 0 Missing |
| Graph and project contract | Canonical source, stable IDs and checked compiler representations connect laws, semantic queries, edits and execution. Feature-selected graph and Project schemas preserve their own admission, compatibility and host-authority contracts. |
| Published beta release | v0.9.0 · Published 11 October 2026 at 15:07 UTC. All 91 jobs in the exact-tag publication run succeeded. Five toolchain archives and two installers ship with SHA256SUMS, five archive attestations and independently verified signed aggregate provenance. Native installer journeys gate publication. Archives are not notarized or claimed reproducible; offline verification does not establish current revocation state. Exact-tag CI. |
| Package and API previews | The release includes useful language, law, harness and host-integration profiles. Generated Rust/npm packages, public generic ABIs and broader platform support retain separate publication and support decisions. |
Is Semaprax cheaper for coding agents?
A general cost advantage is not established. Exact local cl100k_base measurements show smaller model-text payloads for two large graphs and an HTTP task context, while small contexts grow. A separate paid harness campaign measured cost per accepted task; its best saving was about 1%, below the predeclared 10% threshold. Provider usage, local token counts, execution speed and task correctness remain separate measurements.
The same selected facts, counted two ways
Five rows from the committed local model-text v2 report. Counts use cl100k_base over the complete payload, including metadata. They are local tokenizer counts, not provider invoices; a higher model-text number is a regression.
| Selected view | JSON tokens | Model-text tokens |
|---|---|---|
| Banking ledger: full graph | 37846 | 32486 |
| ledger.apply: task context | 1679 | 1802 |
| HTTP application: full graph | 161861 | 134165 |
| HTTP app.main: task context | 5602 | 5010 |
| Calculator Project: graph | 2500 | 2615 |
Nine measurement and qualification tracks
The ledger task context grows from 1,679 to 1,802 tokens; the calculator Project graph grows from 2,500 to 2,615. Fixed metadata can outweigh compression. Source-versus-context comparisons answer a different question from encoding the same selected facts.
Token reports group compatible tokenizer fingerprints, methods and measurement boundaries. Harness receipts preserve actual provider usage, failed/truncated attempts and estimated versus reported cost. Missing counts remain unavailable; receipts are not a comparison outcome by themselves.
The 5 October campaign used Claude Haiku 4.5 through a metering shim: 711 calls and USD 3.10 recorded spend. Each arm accepted 109 of 120 tasks. The best cost-per-accepted-task saving was about 1%, below the required 10%; no arm qualified and defaults stayed unchanged. The app-task path does not exercise the entire Semaprax source workflow.
Saved Regex/Url, Serde/iterator and reqwest/Tokio applications have clean locked offline macOS arm64 and Linux x86-64 guest receipts, each with 22 passed stages/measurements. Copy and allocation ledgers accompany the results. Adverse M1/M3 throughput remains an investigation, not a near-zero-overhead claim.
On the recorded macOS arm64 fixture, cold A-to-B reload had a 545.694 ms median versus 37.904 ms for full restart. Eleven samples and separate admission, preparation, wait and activation measurements preserve that counterevidence. It demonstrates checked continuity, not a speedup or a result for other operating systems.
A separate LAW16 Claude campaign completed 20 trials for USD 0.291235: 19 passed independent candidate/attack replay, one Bend candidate failed. Nine matched pairs fully passed; this is no general language or cost ranking.
A separate earlier campaign retained four successful matched pairs before its fifth Bend call exceeded the requested USD 0.03 limit, reporting USD 0.039957 for that call. Total recorded cost was USD 0.151974 across nine calls. Different frozen budgets cannot be pooled. Thirty local phase samples per route and incremental cache controls do not establish a cross-language speed advantage; AC1 and issue #392 remain partial/open.
The dated routing matrix reports not evaluated, not a zero-cost success. No learned decision adapter is live-tested or qualified in that record. Fixture conformance, paid generation trials and development qualification cannot qualify runtime model, agent or tool choice. Rules stay active in both domains.
What these results do not establish
- A general advantage in provider-billed tokens or cost per accepted task across projects and models.
- Better correctness, latency or maintenance productivity than Rust, TypeScript or another language.
- Universal Rust interoperability without overhead, or physical Linux x86-64 performance from an emulated guest.
- A hot-reload speed advantage, native/Wasm process swapping or broad platform performance.
- Current release performance from historical debug-build timing or correctness from a context compression ratio.
The evidence needed before a cost claim
- Freeze equivalent tasks, source revisions, adapters and the acceptance grader before the experiment.
- Keep model identity, permissions, token and money limits, retries and stopping rules comparable.
- Record complete provider receipts, elapsed time, accepted-task rate and regression failures, including unsuccessful attempts.
- Publish raw measurements, missing evidence, exclusions and uncertainty. Keep local tokenizers separate from billed usage.
- Require the declared quality and cost thresholds before changing defaults; repeat on additional projects, models and hosts.
Reviewed on 15 October 2026 against the v0.9.0 commit, published assets and release run. The tagged install handbook and channel registry still show v0.8.0 examples; use this page’s pinned v0.9.0 downloads. Older matrix/roadmap headings are historical. The live handbook follows main and can describe newer work. GitHub repository.
Open the Semaprax handbook
The online handbook is the English guide published from main and may cover changes after 0.9.0. Use the pinned snapshot when reproducing this release.
Live handbook
The current English learning path, published from main.
0.9.0 handbook snapshot
The handbook files at the exact reviewed release commit.
Build your first project
Current English guide to the calculator manifest, checks, tests and builds.
Learn the language essentials
Current English introduction to values, functions and source structure.
Work with a coding agent
Current English guide to semantic context and safe change workflows.
CLI reference for 0.9.0
Pinned command forms and the standalone/full-toolchain boundary.
VS Code extension
Pinned setup, semantic navigation, review and development controls.
Runnable examples
Pinned examples for the language, projects, laws, Agents and host integrations.
Primary sources for this page
Reviewed on 15 October 2026 against the v0.9.0 commit, published assets and release run. The tagged install handbook and channel registry still show v0.8.0 examples; use this page’s pinned v0.9.0 downloads. Older matrix/roadmap headings are historical. The live handbook follows main and can describe newer work.
- Compact model-text contract and exact token table
- Raw local token measurement report
- Per-input and session token reporting
- Provider receipt, cost and output-cap semantics
- Paid harness qualification and unchanged defaults
- Real Rust application receipts and overhead
- Hot-reload timing and restart comparison
- Original context measurement boundary
- Tagged changelog and release history
- Routing support and unevaluated qualification gate
- LAW16 retained trials, adverse outcomes and scope
Questions and practical answers
Does Semaprax use fewer tokens than Rust or C?
No general language comparison is established. The compact-context table compares two encodings of the same selected Semaprax facts and includes both reductions and regressions. A separate paid harness campaign measured cost per accepted task, but its roughly 1% best saving did not reach the 10% qualification threshold.
Why publish a benchmark that does not show savings?
It tells users when an optimization helps and when it does not. Small compact views can grow, the recorded hot-reload fixture is slower than restart, and some Rust application routes have adverse throughput. Keeping those results with the positive evidence makes default and support decisions reviewable.