00The language where v0.9.0 · proprietary

ai is a
keyword,
not an import

Typed model calls, pipelines and contracts — as language primitives, not library glue. One binary. Runs offline in mock mode.

curl -fsSL ecko.sh/install | sh

One binary No runtime No SDKs Mock mode runs offline

01At a glance [0…X]
ImplementationRust — compiler, VM and CLI in one binary
ProvidersOpenAI · Anthropic · Ollama · mock
OfflineMock mode — no key, CI-safe, deterministic
Editorsecko lsp — VS Code, Zed, JetBrains
Platformslinux x86-64 / arm64 · macOS arm64 · windows x86-64
02Run the primitives 5 programs · mock mode

Five short
programs.

Mock mode needs no API key — pick a tab and press run. The output shown is what the runtime returns offline.

# Your types are the schema - no SDK, no JSON Schema hand-write
type Intent = Demo | Pricing | Support
type Lead = Hot { company: String, seats: Int } | Warm { company: String } | Cold

inbound = """
    From: sam@acme.io
    Hey - evaluating for ~40 seats. Can we book a demo next week?
"""

lead = ai[Lead] "Parse into a Lead: {inbound}"
# Majority vote when confidence matters
intent = ai[Intent] 5 "Classify intent: {inbound}"

print(lead)
print(intent)

          
03The problem python + sdk vs ecko

Same model.
No SDK.

Python needs a client, a schema, a parser and a retry loop. In Ecko, ai returns a typed value — the language does the rest.

Python + SDK parse · retry
# shape exists only at runtime
r = client.responses.create(
  model="…", input=prompt,
  response_format=schema
)
data = json.loads(r.output_text)
sentiment = validate(data)
Ecko 3 lines · typed
type Sentiment = Positive | Neutral | Negative

mood = ai[Sentiment] "I love this"
# runtime validates → Positive
04Built in, not bolted on primitives

In the runtime,
not a framework.

The pieces other stacks ship as frameworks live in the runtime here — typed calls, pipelines and contracts you write as ordinary code.

01

Typed output

Your types are the schema.

Declare a type once. The runtime asks the model for that shape and checks the answer before your code sees it — no second schema to keep in sync, no parse-and-hope layer.

02

Pipelines

Compose steps, not agents.

Chain typed calls like functions. Intermediate shapes, budgets and retries stay in the language — you skip standing up an orchestration stack just to move data from one prompt to the next.

03

Contracts

Bad answers stop here.

Contracts reject invalid results on the call path, before they reach the rest of the program. Mock mode keeps the same path green offline when no API key is set.

05Your editor ecko lsp

One server.
Every editor.

Completions, diagnostics and go-to-definition come from ecko lsp in the one binary. VS Code gets a first-party extension; Zed and JetBrains IDEs wire the same server in a few lines.

VS Code · Cursor

First-party extension

Syntax highlighting, snippets and a full language client that launches ecko lsp — live diagnostics, completion, hover and go-to-definition.

diagnostics · completion · hover · go-to-def
install guide

Zed

Point Zed at the binary

No separate plugin. Register the server in settings and get the same diagnostics and completion as VS Code.

"lsp": {
  "ecko": {
    "binary": {
      "path": "ecko",
      "arguments": ["lsp"]
    }
  }
}
setup

IntelliJ · JetBrains

IDEA, WebStorm and friends

Any JetBrains IDE that speaks LSP can run the same server — IntelliJ IDEA, WebStorm, PyCharm and the rest.

Command  ecko
Arguments  lsp
setup
06Licensing per developer · per year

Free for
personal use.
Licensed for
business.

Personal use and education stay free. Production needs a per-developer licence — full terms on Enterprise.

Personal

Free forever

Learning, side projects, evaluation, teaching.

  • The whole language
  • Mock mode & offline CI
  • No key, no registration
  • No telemetry
install free

Enterprise

Custom

Site licences, air-gap, and procurement paperwork.

  • Everything in Team
  • Named contact & onboarding
  • Air-gapped / Ollama bundles
  • Custom terms & invoicing
talk to us
07Install v0.9.0 · 4 platforms

Sixty seconds
to your first
typed ai call.

curl -fsSL ecko.sh/install | sh

Homebrew: brew install ecko-lang/tap/ecko · binaries and checksums →