Ulexite — the conversation-first language for LLM interactions | Ulexite

2 min read Original article ↗

💬 Conversation-first

History is automatic and structural — every message, in order, content-addressed. You never hand-roll a reducer to thread state through calls.

🧩 Multimodal artifacts

text, image, pdf, audio, embedding, and more — routing a video into a model that only accepts [text, image] is a compile error, not a runtime 400.

⚖️ Built-in judges

judge returns a typed, exhaustively-matched VerdictPass, Fail(reason), Score(value), Escalate — not a hand-written grading prompt glued to string matching.

🔁 Traces & replay

Every run produces a complete, replayable trace — resume a conversation from any point, with model calls memoized instead of re-invoked.

👀 What it looks like

A complete, runnable conversation: translate, have a judge check fluency, retry once on failure, escalate to a human if the judge can't decide.

translate.ulx

judge Fluency(subject: text) -> Verdict {

rubric: """Is this an accurate, fluent translation of the source?

Answer Pass, Fail(reason), or Escalate if you cannot tell."""

}

conversation Translate(source: text, target_lang: text) -> text {

system: """You are a professional translator."""

user: """Translate to {target_lang}: {source}"""

assistant -> draft: text

match judge Fluency(draft) {

Pass => draft

Fail(reason) => retry(2) {

user: """Rejected: {reason}. Try again."""

assistant -> draft

} else escalate(human_approval, reason: reason)

Escalate => escalate(human_approval, reason: "judge could not decide")

Score(_) => draft

}

}

Try it yourself in the live playground — no install needed — or see the full examples gallery for eleven more.

🎬 See it run

ulx run translate.ulx Translate --provider anthropic — the judge can't decide, so it escalates to a human instead of guessing. It suspends, a reviewer runs ulx approve, and the same run resumes to completion.

bash

$ ulx run translate.ulx Translate --arg source=hello --arg target_lang=fr --provider anthropic

🧭 system: You are a professional translator.

🧑 user: Translate to fr: hello

🤖 assistant: Bonjour

⚖️ judge Fluency: Escalate

🙋 escalate human_approval: judge could not decide (suspended)

suspended: waiting on `human_approval` — judge could not decide

run id7f2c9a1e4b0d6f83

statussuspended

capabilitieschat, judge, escalate

provideranthropic — chat (claude-haiku-4-5), judge (claude-sonnet-4-5)

resume with: ulx approve 7f2c9a1e4b0d6f83 --value <text> (or: ulx deny 7f2c9a1e4b0d6f83)

$ ulx approve 7f2c9a1e4b0d6f83 --value "Bonjour"

🙋 escalate human_approval: judge could not decide => Bonjour

Bonjour

run id7f2c9a1e4b0d6f83

statusok

capabilitieschat, judge, escalate

provideranthropic — chat (claude-haiku-4-5), judge (claude-sonnet-4-5)

$