name: str = "Echo";
fn greet(user: str) {
say("Hello, ${user}!");
}
greet(name);Latest ยท 0.8.8
A typed scripting language for automation, testing, and workflows you can watch.
Short programs. Open any one in the playground.
name: str = "Echo";
fn greet(user: str) {
say("Hello, ${user}!");
}
greet(name);nums: list = [1, 2, 3];
foreach n: int in nums {
say(n * 2);
}class Point {
new {
x: int;
y: int;
}
fn describe(this) {
say("(", this.x, ",", this.y, ")");
}
}
p: Point = Point { x: 3, y: 4 };
p.describe();Built for scripts that need structure โ not another systems language.
Declarations and parameters carry types. Echo checks them when values are bound โ no separate static checker.
watch, clear failures, and a CLI built for scripts you can see: run, check, test, fmt, lint.
What ships and what is held are written down. Do not assume a pattern works until the docs say so.
Ships today: types, modules, classes and interfaces (no inheritance), CLI tooling. Held: generics, try/catch, packages. See Known Limitations.