Agent presents a scoped key
The key names the endpoints and tools it may call. It expires and can be revoked without touching your upstream.
Authorization: Bearer sk_live_…Agents get exactly the capabilities they need, with proof of who allowed it and what happened.
Five connected servers can consume 72% of a 200k window before the first token of the actual task. The fix is not a larger window. It is not shipping schemas the model will never use.
Measured on a 644-operation Stripe-shaped catalog. 412 tokens until a capability is described.
0.2% of the window before the first call. The schema is paid for once, by the call that needs it.
Estimate
The measurement is a 644-operation catalog: 143,000 tokens when every schema is loaded up front, 412 tokens at the endpoint before a capability is described.
Drag the catalog size to see the same ratio. This is an extrapolation from that measurement, not a promise about your API; the endpoint cost stays flat because the catalog is searched, not shipped.
For this comparison
141,988 tokens saved99% of the direct load
The endpoint exposes three meta-tools and a typed SDK. The catalog can hold hundreds of operations; the agent sees a handful of words until it chooses.
Live sequence · pauses on hover
capabilities.search
request{ "query": "refund an invoice", "kind": "tool" }result
[
{ "ref": "invoices.refund", "requires": ["invoice", "amount"], "size": 34 },
{ "ref": "invoices.get", "requires": ["invoice"], "size": 28 },
{ "ref": "credits.issue", "requires": ["customer", "amount"], "size": 31 }
]A capability can be granted and still be refused. Rules run at call time on the source, side-effect class, caller, time window and argument shape. Deny wins.
A production version cannot be granted until someone other than its author approves it. The run records which version, which caller, and what came back.
Bundles
A bundle is ordered instructions plus the exact capability versions each step may use. Granting it grants those pins and nothing else, so an upstream change cannot widen what an agent reaches.
Find the invoice
Refund the invoice
Post the ledger entry
v1.0.5 published
Approval pending. The grant still executes v1.0.4, so the new step cannot run until a person approves it.
Security
A Laminaro key proves which workspace and endpoint is calling. It is not the credential for your API. Four hops separate the two, and each one can refuse the call.
If a key leaks, revoke it. The upstream credential is not in the key, and the next call fails closed.
The key names the endpoints and tools it may call. It expires and can be revoked without touching your upstream.
Authorization: Bearer sk_live_…Policy, approval and quota run now, not when the grant was made. One denial stops the call here.
policy · approval · quotaYour upstream credential is encrypted at rest. Laminaro decrypts it inside the gateway, only for this call.
Authorization: Bearer <upstream credential>The response returns to the agent. A receipt records the caller, pinned version, result and latency.
200 OK · run receiptAgent holds
sk_live_…
Laminaro key · endpoint + tool scope · expiring · revocable
Laminaro holds
encrypted upstream credential
Decrypted for one call · never returned to the agent
Skill pipeline
Every published skill version runs the same deterministic checks before it can be granted. A blocking finding fails the version; the gate is the version, not a label someone applied once.
No scanner recognises every malicious pattern. That is why scripts also run in a fresh microVM with egress denied, a read-only tree and a wall-clock bound.
Archive
zip limits · path traversal · size and line caps
ClamAV
known-malware signatures · blocking
YARA
reverse shells · miners · web shells · blocking
Semgrep
SAST and secret rules
Gitleaks
committed credentials
Trivy
dependency CVEs
pass
Version is pinned. It still cannot be granted in production without a non-author approval.
block
The version stays unpublished and cannot be granted. The scan digest is kept for the record.
A purpose-built package fired EICAR, a reverse-shell YARA rule and two lodash CVEs: 7 blocking findings, scan failed, never granted.
Skills
Create files directly in the console, edit the tree, and publish the whole tree as one immutable version. The entry stays short; references and assets are read by path, so a skill can stay deep without loading everything into the window.
The editor is single-writer today. Real-time multiplayer editing is being evaluated before it ships, because a merge that rewrites SKILL.md is a version event, not a text edit.
Package files
--- name: invoice-review description: Reconcile an invoice against policy --- Read references/policy.md, then run scripts/reconcile.py with the invoice id.
Pricing
Every plan includes the governance layer: pinned versions, policies, non-author approvals and a receipt for every call.
$0forever
$29per month
$25per member / month, 3+ members
Need something different? Talk to us. Prices in USD; Creem is merchant of record and calculates tax.