Reference

describe_look

The complete styling catalog: five palette presets, three layout templates, every field and default.

View as Markdown

What it does

  • Read-only
  • Idempotent
  • Account required

Decide what the strip should look like before rendering it. This is the authoritative, complete styling reference at runtime — and deliberately the only complete copy. It returns five named starting-point presets that each bundle a background, device body, caption colour and typeface that agree with each other; the three layout templates and how many headline lines each reserves; a short intake script for asking the user their vibe and their headlines; and every styling field with its default.

You can ask: “Show me the styling options before the first Tidebook render.”

This page describes the call. It deliberately does not retype the field inventory: the response is the catalog, it is generated from the same projection the render schemas are, and a copy here would be a second contract that goes stale.

It takes no arguments

Call it with an empty arguments object. There is nothing to configure, and nothing you pass changes what comes back.

Result

  • intakeanyoptional

  • presetsarrayrequired

    each item

    any

    The published schema does not constrain this element, on purpose — a malformed entry comes back as a sentence instead of a stacked union error. What the server re-validates against is below.

  • layoutsarrayrequired

    each item

    any

    The published schema does not constrain this element, on purpose — a malformed entry comes back as a sentence instead of a stacked union error. What the server re-validates against is below.

  • styleanyoptional

  • lookanyoptional

  • panelPresetsarrayrequired

    each item

    any

    The published schema does not constrain this element, on purpose — a malformed entry comes back as a sentence instead of a stacked union error. What the server re-validates against is below.

  • clipanyoptional

  • notesarrayrequired

    each item

    string

Example

That request maps to this call:

{
  "name": "describe_look",
  "arguments": {}
}

The preset list, the layout templates, the intake questions, the full field catalog with defaults, and the composition notes — including the caption-band rule that decides whether a set of panels reads as designed.

Access and cost

  • Open to everyone. It reads nothing about the account, so it works signed out, on both doors.
  • Free. It spends no cloud credits and uses up no preview.

When it refuses

You are about to guess a colour scheme out of raw fields.
Call this instead. Presets and layouts are independent axes and you usually want one of each — a preset never pins placement, a layout never pins colour.
The user already said what they want.
Skip it. Also skip it when the project has a saved look, or when you are iterating on a strip you already rendered.

Where this fits

What the agent is told

The title and description the server publishes on tools/list — this is the copy a model chooses between, reproduced verbatim.

Design presets & style catalog

Decide what the strip should LOOK like before rendering it. Returns five named starting-point presets (each bundling a background, device body, caption colour and typeface that agree with each other), a short two-question intake script for asking the user their vibe and their headlines, and the full styling field catalog + defaults (device/camera, background, captions, App Store panel sizes). CALL THIS BEFORE the first render of a new strip whenever the user has not said how it should look — guessing a colour scheme out of 30 raw fields is how strips end up looking improvised. It is also the one complete copy of that material: the connect-time server instructions are truncated by most clients, so anything you need about PALETTE (presets: noir, daylight, pop, clay, studio — each bundling background + device body + caption colour + typeface so they agree) or COMPOSITION (layouts: standard, bleed, top-bleed — how many headline lines are reserved and where the device sits under them) is here and nowhere else in full. The two are independent axes and you usually want one of each: a preset never pins placement, a layout never pins colour. SKIP this call when the user already said what they want, when the project has a saved look (read_look / useSavedLook), or when you are iterating on a strip you already rendered.