Features

Everything you need to run Claude Code at team scale.

Measure first, then pull the cost levers one at a time, without changing how developers work.

๐Ÿ”Œ

Zero install

Two lines in ~/.claude/settings.json. Developers need no AWS credentials.

๐Ÿง 

Request-class routing

Sends subagent, auxiliary and compaction traffic to its own model, such as Sonnet or Haiku.

๐ŸŽš

Effort control

fill sets a default effort when a request has none. override always sets it.

โœ‚๏ธ

Tool-output trimming

Shortens huge tool_result text but keeps its head and tail.

๐Ÿงท

Bedrock bridging

Strips beta fields and headers that Bedrock rejects, so you avoid 400 Extra inputs are not permitted.

๐Ÿ’ธ

Budgets & token limits

Daily per-developer limits with warn, downgrade or block, reported in response headers.

๐Ÿ“š

Live model catalog

Builds /v1/models live from Bedrock, so /model just works.

๐Ÿ“Š

Observability

CloudWatch EMF metrics, a dashboard and alarms, plus an in-app dashboard with a 14-day trend.

๐Ÿ”

Privacy by design

Conversation content is never stored. Tokens are kept only as hashes, and logs contain numbers only.

Marketplace-ready

A hardened CloudFormation template for production: HTTPS only, private subnets, admin console restricted to listed CIDRs, admin token in Secrets Manager, and RegisterUsage metering.

cd infra && npm ci && npm run synth:marketplace
# โ†’ dist/tokener-marketplace.template.json

Recommended rollout order

Start in measurement mode for a week with every policy off and bridging on. Then enable one lever at a time.

  1. Auxiliary โ†’ Haiku. Titles and summaries move to the cheapest model.
  2. Subagent โ†’ Sonnet. Subagent work runs on a cheaper model than the main loop.
  3. tool_result trimming. 20,000 characters is a good threshold.
  4. Effort. Try EFFORT_MODE=fill with DEFAULT_EFFORT=high.
  5. Budget downgrade. New conversations start on a cheaper model once a limit is reached.