dial

dial is a command for coding agents from drobins25/craft. It costs 31 tokens per session (588 once invoked), scanned A, original, MIT.

A browser-based tool for testing a small set of possible values directly in a running app. It places the candidates on the real page and lets you compare them with live data and layout.

In plain words
What is it for?
Use it to compare two to four positions or other visual values on a live surface, such as a web page. Review the recorded result of each calibration session, including when the existing value is best.
Why use it?
It removes guesswork when choosing visual settings, because you can see each option in its actual surroundings. Changes are temporary and do not alter source code.

Command

Installs and runs on its own, but its text points at files inside its plugin — anything it tells you to read at a ${CLAUDE_PLUGIN_ROOT} path is only there once the plugin is installed. Installing the plugin gets both.

Part of the craft plugin — 29 commands, 27 agents, 1 MCP server shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/drobins25/craft/craft-dial
Clone the repo
git clone --depth 1 https://github.com/drobins25/craft

Or install craft, the plugin that ships this one along with the rest of its 29 commands, 27 agents, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for dial

README.md
[![agentmods](https://agentmods.dev/badge/commands/drobins25/craft/craft-dial.svg)](https://agentmods.dev/commands/drobins25/craft/craft-dial)
Your own site
<a href="https://agentmods.dev/commands/drobins25/craft/craft-dial"><img src="https://agentmods.dev/badge/commands/drobins25/craft/craft-dial.svg" alt="Measured on agentmods" height="20"></a>
Per session 31 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 588 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00031 $0.00588
Opus 5 $0.00015 $0.00294
Sonnet 5 $0.00006 $0.00118
Haiku 4.5 $0.00003 $0.00059

Measured 5d ago against content hash d855ad809342, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

dial scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/craft-dial.md · 39 lines

What it actually says

Dial

Settle a visual question on a surface that already renders, by putting the candidates on the real page instead of describing them. Craft measures the live surface, injects 2-4 lettered positions plus a small control panel, and you click through A/B/C in your own browser - against real data, real neighbors, real viewport. Nothing is ever written to source; a refresh discards everything. Every session files a record, including the ones where the current value wins.

This shell owns only routing. The flow lives in one reference file.

Flow

Step 1: Parse the subject

If args provided: the args are the subject - what to dial, on which surface.

If no args: take the subject from the session context (the conversation that led here names it). If nothing in context names a visual question with a bounded candidate set, ask conversationally - "What are we dialing, and on which surface?" - no AskUserQuestion, never; the flow asks nothing through widgets end to end.

Step 2: Degradation preflight

Establish which rung this session runs on before opening anything. The ladder is defined in the flow reference (Step 0 there); the short form: no reachable dev server and no discoverable way to start one means dial cannot run - say so plainly and stop. Runnable-but-not-running folds the server start into the flow's opening move, never a separate question.

Step 3: Run the flow

Read ${CLAUDE_PLUGIN_ROOT}/commands/references/dial-inline.md and execute it inline, from Step 0, with the subject and session context in hand.

Never invoke the flow via the Skill tool - a Skill-tool call ends the turn and control never comes back for the react loop and the four exits; inline execution is the contract (see .claude/rules/skill-invocation-chain-breaks.md).

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 5d ago First seen · 39 lines · 31 tokens per session scan A d855ad809342

Subscribe to this mod's changes

dial is a command published in the GitHub repository drobins25/craft (53 stars, last pushed 6d ago), licensed MIT. It adds 31 tokens to every session and 588 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.