keyline

AI has no taste.
You do.

keyline doesn't make images. Drop the references you love and it writes their visual direction: one brief you give to ChatGPT, Midjourney or any image model, so the results look like your references. Since November it is a desk: the board, and beside it the notes, prompts, drafts and cards of the project, each a file in a folder on your disk.

Forever. Not monthly, not per board, not per export. See the proof.

Runs in your browser. No sign-up.Proven on GPT Image 2, FLUX.2 max and Nano Banana.

Directionread from these 7 references

Single dark object centred on a flat grey field, lit softly from above so gilded highlights and oxblood depths do the whole job.

  • CompositionA single object sits centred in the frame with generous, even margins on every side.
  • PaletteA neutral grey field carries the object; gilt highlights and an oxblood undertone pull out of the shadow side.
  • Material & finishDark, hand-patinated bronze with a matte gilt finish catching the rim light.
  • LightA single high, front-left light rakes across the form, casting a soft shadow to the right.
  • Form & geometryA symmetrical mass with softly rounded edges, no hard corners anywhere on the object.
  • LineageReads as a museum catalogue plate: object isolated, evenly lit, documentary in intent.

hover or tap a line: it lights the references it was read from

A real board, composed by keyline's engine as it ships today (2026-10-10) and measured by its own code: seed 1, 3:2, Paper. Beside it, a real reading of the same seven references, 2026-09-09, as recorded. Every layer keeps the images it was read from; hover or tap a line and they are outlined, as in the app.

Seven CC0 references: four from the Met Open Access, three via Openverse
  • 01 · circular saw blade, untitled · rawpixel · CC0 (Openverse) · source
  • 02 · Textile Design Alternating Vertical Rows · rawpixel · CC0 (Openverse) · source
  • 03 · The Weeping Burgher (Andrieu d'Andres) · The Met · CC0 (Met Open Access) · source
  • 04 · Jennie Walters 1860 · Flickr · CC0 (Openverse) · source
  • 05 · Drop-front secretary (Secrétaire en armoire) · The Met · CC0 (Met Open Access) · source
  • 06 · Alabaster bowl · The Met · CC0 (Met Open Access) · source
  • 07 · Mirror clock · The Met · CC0 (Met Open Access) · source

Proof

One direction. A doorway. A chair. A bottle.

GPT Image 2 output for the subject a doorway: an ornate stone doorway with black lacquer doors, gilt garlands, oxblood velvet panels and a periwinkle cartouche, on a grey studio sweep

“a doorway” · GPT Image 2

OpenAI. Made 2026-08-25 from an earlier reading of the same seven references: the same compiled direction for all three, only the subject word changed.

FLUX.2 output for the subject a lounge chair: a black lacquer and gilt armchair in crushed oxblood velvet with one stone arm and a periwinkle drape, on the same grey sweep

“a lounge chair” · FLUX.2 max

Black Forest Labs. That direction asked for a “single cool periwinkle note”; watch it surface here too.

Nano Banana output for the subject a perfume bottle: a silver and gilt flask with an oxblood velvet panel, beading, an alabaster stopper and a periwinkle cabochon, on the same grey sweep

“a perfume bottle” · Nano Banana

Google. The same compiled direction again. All three outputs are unedited.

The direction transferred. The subject didn’t matter.

The desk

One project, five kinds of file. The board is one of them.

The desk home on the Graphite ground: Good afternoon, What are you making today?, five tiles (Board, Note, Draft, Cards with 12, Decisions), then Recent with the board Materials, interior, the prompt Reading chair, Claude, the draft Living room, options and two notes, each with its tags; Favourites beside it; the readout at the foot

The home

A project is a folder. The home shows what is in it: boards, notes, prompts, drafts and cards, the favourites, the tags. Four example projects open with one key, one per field, every file real.

A board on the desk: six interior references in the Sources list with their roles, the composed plate on Paper with its palette strip and ledger, and the direction read from them at the right with the subject a reading chair by the window and the compiled prompt below

The board

What the rest of this page is about, on the desk's chrome. Sources, the plate, the direction and the prompt, with the project's tags and the folder's name in the bar.

A note on the desk: the outline of its entries at the left, the text in the middle with the palette names lime plaster and oat underlined, the inspector at the right with the description, the board it reads from, Copy as Markdown and the path notes/casa-azuma.md

Notes

Markdown files. Decisions is the one keyline reads first. The board's palette names underline in the text; two brackets name any file in the project.

A prompt kept as a file on the desk: its lines numbered, the subject marked, the two lines keyline added for Claude marked; the inspector with the board it came from, its three versions, what came back, Take it to and the path prompts/reading-chair-claude.md

Prompts

A prompt is kept as a file: the lines as copied for one model, its earlier versions beside it, and what the model returned kept with it.

A draft on the desk: three frames in the tag tints named A Window wall, B Plaster wall and C Section, raking light, shapes drawn in them, three sticky notes with open questions, the board's measured colours as an ink dock at the right, the tool rail at the foot

Drafts

An Excalidraw file on the Graphite ground: frames in the tag tints, references pinned from the board as prints, sticky notes for open questions, the board's colours as ink.

The cards on the desk, in sections: Site, 28 Oct with three photographed cards and two text cards, What the client said with four quotes; the inspector at the right with the selected card's title, text, source, section and image

Cards

Research clips, quotes and observations, one small file each, in sections or by tag, with an image when there is one. Send to quotes a card into a note, adds it to a board as an Avoid term, or pins it on a draft.

In Chrome and Edge the project is a folder you pick; every file opens without keyline. Elsewhere it lives in the browser. The desk installs as an app from the address bar.

Measure

keyline reads what you can't describe. Real numbers from the pixels, then eight readings from the images.

The gilt & oxblood board in keyline, 3:2 on the Paper ground: seven references composed by the engine, and along the bottom one line of ledger: a hairline with a square in the heaviest measured colour, eight colour chips with their shares 21%, 14%, 13%, 10%, 5%, 5%, 5%, 4%, and the title gilt & oxblood, 8 measured, backgrounds discounted, 3:2

Eight colours, weighted

Measured from your pixels, backgrounds discounted: hex and percentage, not vibes. A contrast score with it.

The Palette layer opened in keyline's Direction settings: its switch on, its strength slider at normal, small pictures of the three references it was read from, the note 8 colours measured, dominant 21%, and its words: A neutral grey field carries the object; gilt highlights and an oxblood undertone pull out of the shadow side.

Eight reading layers

Composition, palette, material, light and four more. Switch one off and it is not asked for; mark one strong and it leads the layers in the prompt.

The Palette layer hovered in keyline: in the Sources list the three references it was read from are ringed in orange, and the same three pictures are outlined in orange on the board

Traced to its sources

Every layer keeps the images it was read from. Hover one and they light up, in Sources and on the board.

Write

One direction, compiled. Not a description you rewrite per tool.

The compiled prompt zone, unlocked: ChatGPT, Claude and Midjourney keys, the prompt beginning a lounge chair. Single dark object centred on a flat grey field, lit softly from above so gilded highlights and oxblood depths do the whole job, then Composition, and the keys copy for ChatGPT, copy brief and more

One prompt, any subject

The prompt carries a [SUBJECT] slot. Swap the noun, keep the taste. It stays on screen for the whole session.

Inspect, Compare, the Claude column, 12 lines: the lead-in keyline adds for Claude is shaded, Use this as the standing visual direction for everything you produce in this task, then the direction as Claude receives it, beginning a lounge chair

Dialects per model

Prose for chat models, one line with flags for Midjourney. Compiled, not rewritten. Copy any of the three with the unlock.

The prompt zone just after the subject was typed: the header says 1 line changed, and the first line of the prompt, now beginning a lounge chair, is tinted with a dark bar at its left

Change it and watch

Type a subject, move a layer's strength, add an avoid: the prompt marks the line it rewrote. Live, with no AI call.

Yours

Set up for what you make.

Six fields

Digital product, Brand & graphic, Interior, Architecture, Industrial design, Photography & art direction. Pick yours once: new boards start set up for it.

What a field changes

The layers a board starts with, its ratio, its prompt tab, one added line and one download. The field’s name never reaches the reading. Its strong layers are read first and in the most detail; nothing else about the reading changes.

Your own instructions

A language, a tone, how much detail. They sit under the field’s line in ChatGPT and Claude prompts, marked as added by keyline. Midjourney takes neither.

The same reading, set up for two fields.

Both on the Claude tab, over one recorded reading. Each board starts with its field’s strong and light layers and adds its field’s line.

Interior
Use this as the standing visual direction for everything you produce in this task:
[SUBJECT]. Single dark object centred on a flat grey field, lit softly from above so gilded highlights and oxblood depths do the whole job.
Palette (essential): A neutral grey field carries the object; gilt highlights and an oxblood undertone pull out of the shadow side.
Material & finish (essential): Dark, hand-patinated bronze with a matte gilt finish catching the rim light.
Light (essential): A single high, front-left light rakes across the form, casting a soft shadow to the right.
Composition: A single object sits centred in the frame with generous, even margins on every side.
Form & geometry: A symmetrical mass with softly rounded edges, no hard corners anywhere on the object.
Lineage: Reads as a museum catalogue plate: object isolated, evenly lit, documentary in intent.
Palette emphasis: lead with the dominant #bab6af (21% of the board); the rest of the palette supports it.
For interior work: name finishes and fabrics, light temperature and direction, scale against furniture.

A new Interior board starts with Material & finish, Palette and Light strong, Typography light (absent from this reading). Its line is added.

Digital product
Use this as the standing visual direction for everything you produce in this task:
[SUBJECT]. Single dark object centred on a flat grey field, lit softly from above so gilded highlights and oxblood depths do the whole job.
Composition (essential): A single object sits centred in the frame with generous, even margins on every side.
Palette (essential): A neutral grey field carries the object; gilt highlights and an oxblood undertone pull out of the shadow side.
Light: A single high, front-left light rakes across the form, casting a soft shadow to the right.
Form & geometry: A symmetrical mass with softly rounded edges, no hard corners anywhere on the object.
Material & finish (a hint only): Dark, hand-patinated bronze with a matte gilt finish catching the rim light.
Lineage (a hint only): Reads as a museum catalogue plate: object isolated, evenly lit, documentary in intent.
Palette emphasis: lead with the dominant #bab6af (21% of the board); the rest of the palette supports it.
For digital product work: express as a UI style, spacing scale, type hierarchy, component states.
Your instructions: Reply in Portuguese. Keep it short.

A new Digital product board starts with Composition, Typography and Palette strong (this reading has no Typography layer); Material & finish and Lineage light. Its line is added, and so is the example instruction.

Lines marked blue are added by keyline from What you make, not read from your board.

Compiled by keyline’s own code from the reading above (2026-09-09, as recorded) with each field’s starting strengths, 2026-10-18, unedited. The subject slot is left open. The instruction is an example typed for this page, on the Digital product column only.

The palette, as a file.

Each field has one download of the measured palette. Part of the $29 unlock.

The Palette schedule page for the gilt & oxblood board: its title, the line Palette schedule, Measured from 7 references, backgrounds discounted, and a table of eight rows with number, swatch, hex and share: 01 #bab6af 21%, 02 #524f4d 14%, 03 #828180 13%, 04 #532529 10%, 05 #53422a 5%, 06 #7d6f57 5%, 07 #715849 5%, 08 #292722 4%.

Palette schedule

keyline-gilt-oxblood-palette-schedule.pdfInterior. An A4 page, the hex values selectable as text.

keyline-gilt-oxblood-colour-variables.css
/* keyline · gilt & oxblood
   Measured from 7 references, backgrounds discounted. */
:root {
  --color-1: #bab6af; /* 21% */
  --color-2: #524f4d; /* 14% */
  --color-3: #828180; /* 13% */
  --color-4: #532529; /* 10% */
  --color-5: #53422a; /* 5% */
  --color-6: #7d6f57; /* 5% */
  --color-7: #715849; /* 5% */
  --color-8: #292722; /* 4% */
}

Colour variables

Digital product. One CSS custom property per measured colour, its share beside it.

keyline-gilt-oxblood-palette-list.md
# gilt & oxblood

Palette list. Measured from 7 references, backgrounds discounted.

| No. | Hex | Share |
| --- | --- | --- |
| 01 | `#bab6af` | 21% |
| 02 | `#524f4d` | 14% |
| 03 | `#828180` | 13% |
| 04 | `#532529` | 10% |
| 05 | `#53422a` | 5% |
| 06 | `#7d6f57` | 5% |
| 07 | `#715849` | 5% |
| 08 | `#292722` | 4% |

Palette list

Architecture. A plain Markdown table: number, hex, share.

The three files hold the gilt & oxblood board’s eight measured colours, hex and share, and nothing else: no reading text. Brand & graphic and Industrial design get a Colour sheet .pdf, Photography & art direction a Palette sheet .pdf, the same table under another name. On the desk the palette is also a file of the project, palette.json, with the names you give the colours and a CSS variable for each, free. Generated 2026-10-18 by keyline’s own download code; the page is the image the app places in the .pdf.

Everything in it.

No modules, no add-ons. Free to try on unlimited boards; $29 once owns the rest.

Measured palette. Eight colours with real weights, read from your pixels, backgrounds discounted.

free

Eight reading layers, each with a switch and a strength.

free

One prompt with a [SUBJECT] slot. Swap the noun, keep the taste.

free

Per-model dialects. Copies for ChatGPT, Claude and Midjourney.

with $29

What you make. Six fields; new boards start set up for yours.

free

Three grounds. Paper, Aluminium, Graphite.

free

Deterministic layouts. Same seed, same composition.

free

Contrast score. A measured reading of the board's tonal spread.

free

Local by default. Boards live in your browser. Images leave only when you press Generate, for the reading.

free

Clean exports. No watermark. Print resolution and the ledger are on every export, free ones included.

with $29

Field downloads. The measured palette as a schedule, CSS variables or a list.

with $29

Restore by email. Your unlock follows your purchase email to a new machine.

with $29

Twenty references per board, with roles: reference, palette, type, texture, avoid.

free

Keyboard-first. Arrows cycle layouts, G generates, ? lists all of it.

free

Inspect. The prompt line by line, and three models side by side.

with $29

Notes. Markdown files in the project; Decisions first. Palette names underline, two brackets name any file.

free

Prompts kept. The compiled prompt as a file, one model each, with its versions and what came back.

free

Drafts. Excalidraw on the Graphite ground: frames in the tag tints, pinned references, stickies, ink from the direction.

free

Cards. Research clips and quotes, one file each, in sections or by tag, with an image; Send to a note, a board or a draft.

free

A project folder. In Chrome and Edge, a folder you pick on your disk; every file opens without keyline. Elsewhere, the browser.

free

Four example projects. An interior, a house, a desk lamp, a set of posters: a board with its direction, notes, a prompt, a draft and cards each, to open and take apart.

free

Installs as an app. From the address bar in Chrome and Edge, in its own window, offline for the pages you have opened.

free

That's all of it.

keyline is small on purpose. One person builds it, and every card here is live today.

Free: the desk and its files, boards, readings, tuning, the first lines of the prompt, watermarked export. $29 once: the full prompt, copies per model, clean exports, Inspect, your field’s palette download, restore. Yours forever. Unlock now.

Questions.

What exactly does $29 buy?

Everything, forever: the compiled prompt with per-model copies, the Markdown brief, Inspect, the palette download for your field, and watermark-free print-resolution exports, on this board and every board you ever make. One payment. It is not a subscription and not a per-export fee.

Do you store my images?

No. A project is a folder on your disk in Chrome and Edge, or your browser's own storage elsewhere. Your references leave your machine only in one case: the images are sent to the AI for the reading each time you press Generate.

Where are my files?

In the project folder, as files you can open without keyline: a board is a JSON file with its sources beside it and its direction as JSON and Markdown, the Markdown carrying the assembled prompt once you unlock; a note, a prompt and a card are Markdown with a few lines of front matter; a draft is an Excalidraw file; the palette is JSON. Rename or move the folder and the desk opens it again. Without folder access the same files live in the browser, and a folder can be chosen later; everything moves across and is read back equal before the move counts.

Can I see it on a real project first?

Yes. The empty desk offers four example projects, one per field keyline ships references for: an interior, a house on a quarry edge, a desk lamp, a set of fair posters. Each is a board with its direction, two notes, a prompt in versions, a draft and ten or more cards, and comes out again with one command.

Couldn't I just upload my images to ChatGPT?

A vision model will describe your pictures. keyline measures what they have in common: real hexes and weights from the pixels, eight traceable layers, and a compiled prompt with a [SUBJECT] slot that stays reusable. The three-model proof above is the difference in practice.

Does my field change the reading?

The field’s name never reaches the reading. Its strong layers are read first and in the most detail; nothing else about the reading changes. The rest happens on your side of it: the layers a new board starts with, its ratio, the prompt tab, one added line in ChatGPT and Claude prompts, and a download of the measured palette. Choosing a field is free; the download is part of the $29.

What if I clear my browser or switch machines?

Your unlock is restored by the email you purchased with, from Settings › License in the app. In a project folder your files are on your disk and stay through anything the browser does; in the browser's own storage, choose a folder in Settings or export the brief for anything you can't lose.

Are the boards and outputs on this page real?

Yes. The board is composed by the same engine and measured by the same code as yours, over seven CC0 references: four from the Met Open Access collection, three via Openverse. The reading beside it (2026-09-09) is shown as recorded; the three model outputs (2026-08-25, from an earlier reading of the same references) are unedited.

Your references already know what you like.

Forever. Not monthly, not per board, not per export.