v1.0 · MIT · free forever

The IDE for programming languages that don’t exist yet.

Invent a syntax — any syntax, any file extension. Press Run and a model reads your imagination the way a compiler reads source, then builds a real, working website.

.imagine .dream .dreamjs .anything
Claude Code·Anthropic·OpenAI·DeepSeek

there are no syntax errors in imagination.

synthwave.dreamjs — imaginecode
▶ RUN·CTRL+ENTER
synthwave.dreamjs
bean-there.imagine
IMAGINE TERMINALPROBLEMSOUTPUT
PREVIEW localhost:3333/preview/
NIGHT DRIVE
eleven tracks for an empty motorway
01Chrome Rain3:58
02Lighthouse Protocol4:41
03Ghost In The Sedan5:12
04Neon Grief3:07
⚡ Claude Code Sonnet 5 · medium § rules: 6 HTML Ln 13, Col 27dreamjs
scroll
01

Three steps, and no grammar to learn.

There is no parser to satisfy and no keyword list to memorise. You describe what you mean; the compiler reads intent and writes real HTML or React.

  1. 01

    Invent a language

    Make a file. Call it .dream, .jasminko, .anything. Write sentences, curly braces, arrows, invented verbs — whatever feels right to you.

    universe SYNTHWAVE { vibe -> neon, night-drive, 1984 }
  2. 02

    Press Run

    The Imagine Terminal streams the compiler's reasoning as it happens — what it read, how it interpreted each construct, what it built.

    reading synthwave.dreamjs interpreting universe built 214 lines · 12.4s
  3. 03

    Get a real website

    Not a mock-up. Actual HTML, CSS and JavaScript served from /preview/, ready to open, ship or keep imagining at.

you
write .dream files
+ the rules of your syntax
ImagineCode
VS Code‑style IDE — Monaco, explorer,
tabs, imagine terminal, live preview
the compiler
reads your language, interprets
intent, writes real HTML or React
←  streams the build log live  ·  serves /preview/  ←
02

Two imaginations, both of them compile.

These ship with every install. One is written in plain English sentences; the other is a curly-brace language no compiler on earth accepts. This one does.

SOURCEexcerpt · dreamjs
// synthwave.dreamjs
// an invented curly-brace language.
// no compiler on earth accepts this.
// this one does.

universe SYNTHWAVE {
  vibe    -> neon, night-drive, 1984, slightly wet asphalt
  palette -> #05010f base, #ff2e97 hot, #00e5ff cool
  font    -> a wide geometric sans, a mono for the rest
}

scene Sky {
  background   = vertical gradient #05010f → #2b0a3d
  horizon.line = 1px of #ff2e97, glowing
  grid {
    perspective = true
    animate     -> scroll toward the viewer, forever, 6s
  }
  sun {
    slice = 4 horizontal gaps across the lower half
    glow  = 80px of #ff2e97
    float -> up and down, 4s, gentle
  }
}

deck Tracklist {
  track { "01" | "Chrome Rain" | "3:58" }
  track { "02" | "Lighthouse Protocol" | "4:41" }
  track { "03" | "Ghost In The Sedan" | "5:12" }

  each track {
    border-left = 2px #00e5ff
    OnHover     -> becomes #ff2e97, slides right 6px
    OnClick     -> the row starts pulsing
  }
}
# bean-there.imagine
# a language made of sentences.
# there is no grammar. write what you see.

imagine a page for a small coffee shop.
  the mood is: warm, unhurried, a little bit wooden.
  the background is the colour of oat milk,
  the text is the colour of espresso.

at the very top, a slim bar.
  on its left, the words "Bean There"
  on its right, three quiet links:
    "menu" · "hours" · "find us"
  the bar stays stuck to the top when the page scrolls.

below it, a tall opening scene, centered.
  a very large line of text: "we open at six."
  under it, smaller and softer:
    "the good beans go first."
  under that, [ see today's menu ] — a rounded
  button the colour of espresso.
  when someone clicks it, the page glides down.

then the menu.
  a heading: "today"
  three cards side by side, thin border, generous
  whitespace:

    card one
      "flat white" · "£3.20"
      "milk, folded not poured"

    card two
      "cortado" · "£3.00"
      "small, serious, gone in four sips"

  when the mouse hovers a card it lifts a few pixels
  and its shadow deepens.
  on a narrow screen the three cards stack.
COMPILED · /preview/ 12.4s
NIGHT DRIVE
eleven tracks for an empty motorway
01Chrome Rain3:58
02Lighthouse Protocol4:41
03Ghost In The Sedan5:12
04Neon Grief3:07
05Afterglow, Slowly6:20
06Static Cassette4:04
compiled from imagination
menuhoursfind us
we open at six.
the good beans go first.
see today’s menu
today
flat white£3.20milk, folded not poured
cortado£3.00small, serious, gone in four sips
filter£2.60whatever the roaster is excited about
hours
weekdays — 6am until the pastries run out
weekends — 8am, slower, better
made of beans and imagination

Both panes are the real example files that ship in resources/seed-workspace/ — and the shape of what they compile to.

03

A real instrument, not a toy prompt box.

Monaco, an explorer, tabs, a command palette, quick-open, a status bar with live chips. Everything you expect from an editor — pointed at a language that doesn’t exist.

§

Language Rules

Only you know that ~> means “fades in over two seconds” and not “flows into”. Write it down once and the compiler follows your definitions instead of guessing. Your spec is sent ahead of your source on every build.

CtrlShiftL

Four compilers, one switch

Claude Code, Anthropic, OpenAI or DeepSeek. Bring whichever you already have — you need exactly one.

The Imagine Terminal

Watch the build think. Reading, interpreting, writing — streamed live, with token counts and an estimated cost.

HTML or React

One self-contained page, or function components with hooks via CDN. No build step either way.

🔒

Keys stay server-side

Never in localStorage, never in the page. A 0600 file on your disk — or just an environment variable.

Nothing to install

The Windows installer carries its own runtime, its own editor and its own CLI. Not even Node is required.

Incremental rebuilds

With Claude Code the compiler edits output/ directly, so a second run is surgical rather than a rewrite.

04

Teach the compiler what your syntax means.

The one step that changes the output most. A spec has four parts — a name, prose about how your language works, a glossary of constructs, and worked examples the compiler treats as test cases to match.

  • Outranks the compiler’s own reading heuristics…
  • …but never the fidelity law: it defines what your constructs mean, it never adds anything your source didn’t write.
  • Edit a rule and the next build re-checks the existing site against the new meaning — even if no source file changed.
  • ✦ Propose rules from my files reads your workspace and drafts the glossary for you.
§LANGUAGE RULES
dreamjs
x ~> yx fades into y over two seconds
universethe page shell — palette, fonts, mood
scene A over BA is layered on top of B, absolutely
decka responsive list of rows
::applies styling to the thing on the left
endinga small centered footer line
sent ahead of your source on every build 5 active
05

Pick the compiler you already pay for.

ImagineCode reuses your existing setup. One provider is enough — and ⚡ Connect verifies it with a real round-trip before you build.

Claude Codedefault
Your existing Claude Code setup — no key to paste
Agentic: reads and edits output/ directly, so rebuilds are surgical
Anthropic API
An sk-ant-… key
One streamed pass that returns the whole page
OpenAI API
An sk-… key
One streamed pass (Chat Completions)
DeepSeek API
An sk-… key
One streamed pass (OpenAI-compatible endpoint)

The built-in model lists are a floor, not a ceiling — ↻ models merges your account’s own /v1/models response on top.

Keyboard

CtrlEnter / F5Run imagination
ShiftF5Stop build
CtrlShiftLLanguage rules
CtrlSSave
CtrlShiftP / F1Command palette
CtrlPQuick-open file
Ctrl`Toggle Imagine Terminal
CtrlBToggle sidebar
06

Ink-black surfaces. Hairline geometry.
One phosphor accent.

ImagineCode: a VS Code-style IDE compiling an invented language into a real website
The IDE, mid-build — synthwave.dreamjs on the left, the site it just became on the right.
0compiler providers
0output formats
0file extensions
0open source, forever
07

Go and imagine something impossible.

Free, open source, MIT. No account, no pricing page, no trial. Windows, macOS, or straight from source — every link below does exactly what it says.

One compiler provider is all you need. Claude Code works with no key to paste; otherwise an Anthropic, OpenAI or DeepSeek key. First launch plays a short introduction — replay it any time from Help → Show Introduction.