SLOPSHOPPER

explore-model

Runs the built-in Explore subagent on a chosen model and effort (default Haiku, medium) whenever the Agent call leaves them out. Keeps Anthropic's Explore…

newguard
★ 1v0.1.0MITupdated 2026-10-10Allmight97/agents/plugins/explore-model
A shopper browsing a rack in a slop shop
README

explore-model

A Claude Code mod. The built-in Explore subagent runs on the main conversation's model unless the Agent call names one. This mod fills model and effort on Explore calls that leave them out: Haiku at medium effort by default. Explore keeps Anthropic's prompt and read-only tools; only the model and effort change. A call that names its own model or effort keeps it.

Why Haiku: benchmarks/explore-model/ in this repository. On audiobook-boss, Haiku matched the main-model Explore on every task at about 1/30 the cost.

Model version

The mod sets the alias haiku. The Agent tool accepts only aliases (haiku, sonnet, opus, fable), and Claude Code resolves each one to a model:

  • Anthropic API (Claude subscriptions and API keys), Claude Code 2.1.293 or later: the newest model of that family. haiku is Haiku 5.5 today and moves to the next Haiku when it ships.
  • Amazon Bedrock, Google Vertex AI, Microsoft Foundry, or Claude Platform on AWS: haiku is Haiku 4.5.

To pin an exact model, set ANTHROPIC_DEFAULT_HAIKU_MODEL to a full model ID in the env block of your Claude Code settings. The pin applies everywhere haiku is used, not only to Explore.

Options and install

Options (model, effort) are in .claude-plugin/plugin.json. Needs function hooks (early access).

Install with /plugin install explore-model --marketplace Allmight97/agents. Test with claude plugin test plugins/explore-model.

Source 1 files
hooks/explore-model.ts 25 lines
1/**
2 * explore-model — Claude Mod (EARLY ACCESS)
3 *
4 * The built-in Explore subagent runs on the main conversation's model unless
5 * the Agent call names one. This fills `model` and `effort` on Explore calls
6 * that leave them out, so Explore keeps Anthropic's prompt and read-only tools
7 * and only the model changes. A call that names either keeps its own choice.
8 */
9import type { Register } from 'claude-code'
10
11type Defaults = { model: string; effort: string }
12
13export function withExploreDefaults<T extends { subagent_type?: string; model?: string; effort?: string }>(
14  input: T,
15  defaults: Defaults,
16): T {
17  if (input.subagent_type !== 'Explore') return input
18  return { ...input, model: input.model ?? defaults.model, effort: input.effort ?? defaults.effort }
19}
20
21export const register: Register = (on, options) => {
22  const defaults: Defaults = { model: String(options.model), effort: String(options.effort) }
23  on('tool.call', { tool: 'Agent' }, ($, e, next) => next(withExploreDefaults(e, defaults)))
24}
25