Skip to content

Settings

Skiller contributes eight settings under the skiller.* namespace. Set them in your User or Workspace settings.json, or through the Settings UI (search for “Skiller”).

SettingDefaultEffect / when to change
skiller.skills.runSurface"adaptive""adaptive" or "chat". How a skill launched from the editor enters chat — prefill and wait, or submit immediately.
skiller.skills.verboseMode"off""off", "rendered", or "raw". Shows the prompt and response during execution. Turn on while debugging templates.
skiller.skills.toolInvocationTimeout60000Milliseconds before a tool invocation in a step times out. Raise for slow MCP servers.
skiller.skills.maxToolIterations10Maximum tool-use iterations per llm step. Caps runaway agentic loops.
skiller.skills.allowOutsideWorkspaceWritesfalseLets the built-in file tools write outside the workspace. A security control — leave off unless required.
skiller.llm.maxHistoryTurns20Maximum conversation turns sent to the model as context. Higher = more context, more tokens.
skiller.llm.maxToolResponseLength4000Maximum characters per tool response before truncation (≈ 1000 tokens at 4000).
skiller.llm.maxToolResponses10Maximum tool responses carried into follow-up context.

Controls the hand-off when you launch a skill from the editor (the Command Palette, the editor context menu, or a code action). Both values open chat; they differ in whether it submits for you:

  • "adaptive" (default) — open chat with @skiller /skill <id> prefilled and wait for you to submit. A beat to review, add arguments, or change the skill before it runs.
  • "chat"submit immediately and stream the run. No extra step.

It has no effect on skills launched from chat directly (you’ve already typed the command there). See Editor-native skills for the full launch model.

The primary aid for debugging templates. It controls how much of each step’s model exchange Skiller prints into the chat as a skill runs:

  • "off" (default) — show nothing; only step output and confirmations appear.
  • "rendered" — show the fully interpolated prompt in a code block and the response as rendered Markdown. Use this to confirm that {{ inputs.* }} and {{ outputs.* }} resolved to the values you expect.
  • "raw" — show the prompt and response as plain text, exactly as exchanged with the model. Use this when rendered Markdown hides whitespace or formatting you need to see.

For a full walkthrough, see Debug a skill.

skiller.skills.allowOutsideWorkspaceWrites

Section titled “skiller.skills.allowOutsideWorkspaceWrites”

See Built-in tools for what the file tools do and how confinement is enforced.

When an llm step is allowed to call tools, Skiller runs an agentic loop: the model calls a tool, reads the result, and decides whether to call another. These settings bound that loop and the token cost it accrues.

SettingBoundsTrade-off
skiller.skills.maxToolIterationsHow many tool calls a single step may make before the loop is force-stopped.More iterations let the model chase a multi-step task, but a stuck model can burn the whole budget.
skiller.skills.toolInvocationTimeoutHow long one tool call may run before it is aborted.Raise for slow MCP servers; lower to fail fast on unresponsive tools.
skiller.llm.maxHistoryTurnsHow many prior turns are replayed as context.More turns improve continuity within a step but grow the prompt — and the token bill — every iteration.
skiller.llm.maxToolResponseLengthCharacters kept per tool response before truncation.Larger keeps more of a big result in context; smaller trims noise and saves tokens.
skiller.llm.maxToolResponsesHow many tool responses are carried into the follow-up prompt.More responses help the model correlate earlier results; fewer keep the context lean.

The five knobs interact: each extra iteration can add another tool response, and each response can add up to maxToolResponseLength characters across up to maxHistoryTurns of replayed context. If steps feel slow or expensive, tighten maxToolIterations and maxToolResponseLength first.