Ambient context layer · Claude Code

Agents that
read the room.

The missing input is not another instruction. It is the room around the prompt.

user_state · live
now reading
Converge · vibe: aggressive, energetic · pace fast
macOSalpha
The premise

Your prompt is not the whole ask.

It doesn't say you are tired but still shipping. It doesn't say you just came back from a long break, or that the repo is clean, or that you want the agent to stop asking permission and make the call.

Cadence gives Claude Code that missing layer: ambient signals, a self-reported state, four simple dials, and a lens for reading what you meant.

Claude Code is the alpha surface. The product is the context layer underneath it.

The difference

Same prompt, different room.

"how should I structure the retry logic?"

Without Cadence

The survey.

Every prompt reads the same. Four options, a trade-off table, and a closing "Would you like me to implement one of these?"

Shipping cadence

The call, made.

Hardcore at 3 commits/hr, state: "ship mode". Exponential backoff with jitter, three attempts, here's the diff, tests pass.

Thinking cadence

Room to explore.

Ambient music, state: "thinking through tradeoffs". Options laid out patiently, trade-offs actually explored, no pressure to pick yet.

Same words. The room around them changed, and the agent finally saw it. Install it and feel the difference in two minutes.

How it works

Signals in. A reading out.

01 — Signals

Read the room.

Time, weather, battery, Focus mode, git state, prompt rhythm, music, and self-report become visible context. The /cadence:state skill lets you say what you already know: "two beers, shipping."

02 — Dials

Four knobs, not one mode.

Pace, tone, posture, proactivity — each inferred independently, or pinned by hand. High-energy-but-mellow reads as fast pace, warm tone. No single label could.

03 — Reframe

A lens, not a leash.

A sentence tells the agent how to read your prompt given the cadence. A conservative Stop hook catches soft endings when you asked it to ship.

Cadence dialsinferred · advisory
Pace fast
Tone warm
Posture steady
Proactivity act freely

Four independent dials — a signal usually moves one, not all four. The mix is the point.

Transparency

What the agent actually sees.

Every prompt carries a state block. Inspectable. Diffable. You always see exactly what your agent saw.

injected · UserPromptSubmit
<user_state>
  signals:
    music: "You Fail Me" — "Converge" (Spotify)
    vibe: aggressive, energetic
    self_report: "two beers, shipping"
    context: saturday afternoon, rainy, focus on
    git: clean tree
    activity: { prompt_len=47 }
  cadence:  # inferred from signals, advisory
    { pace=fast tone=warm posture=decisive proactivity=act-freely }
  reframe: read my prompt as someone in this cadence meant it: keep
    it fast and tight — answer first, trim the preamble; make the call rather
    than offering a menu of options; act without stopping to check in; keep
    the tone warm and casual. If my words clearly mean otherwise, follow my
    words.
</user_state>
Get started

Try it.

Cadence ships as a Claude Code plugin. Four commands to install, then one skill to see what Cadence sees.

claude code
> /plugin marketplace add cullumco/cadence
> /plugin install cadence@cadence
> /reload-plugins
> /cadence:try

macOS only for the alpha — the signals read the Mac around you. Then set a self-report: /cadence:state shipping, locked in. No Spotify login, no API key — music is read at the OS level when available.

The larger bet

One channel of many.

Cadence is part of a larger bet: context surface area is the bottleneck for agentic engineering, not model capability. The prompt is a sliver of what the agent should see.

Kettel argues the same claim from a different angle — structured, multi-author context, ratified by teams before agents execute.

Kettel makes the room. Cadence reads it.