Scannable by design
Kukicha forms like list of string, onerr return, and equals let a beginner skim a file and follow what it does. No dense syntax to decode first.
v0.1.11 — latest release ↗
Readable Single Binary
Readable Kukicha forms — list of string, onerr return, and/or/not — while you're learning. Plain Go — []string, != nil, && — when you're fluent. Same file, same compiler. Keep using the easy-to-use Kukicha stdlib.
Stem Panic is a game written in Kukicha, running live as WASM.
Loading source…
Kukicha forms like list of string, onerr return, and equals let a beginner skim a file and follow what it does. No dense syntax to decode first.
When you want terser code, drop back to []string, != nil, and &&. Kukicha is a strict superset of Go.
Rename a .go file to .kuki and it compiles unchanged. Run kukicha brew to convert any .kuki file back into standalone, idiomatic Go.
Start with the Kukicha forms while you're learning. Drop to plain Go when you're fluent. Both compile to the same thing.
data, err := fetchData()
if err != nil {
return fmt.Errorf("fetch: %w", err)
}
result, err := parse(data)
if err != nil {
return fmt.Errorf("parse: %w", err)
}
label := ""
if count == 1 {
label = "item"
} else {
label = "items"
}
result := fetchData()
|> parse()
onerr return explain "pipeline failed"
label := if count == 1 then "item" else "items"
Every .go file is valid .kuki unchanged.
The compiler detects SQL injection, XSS, SSRF, path traversal, and command injection before your code runs.
42+ packages: fetch, slice, sort, MCP, LLM, HTML, shell. The same readable API whether your surrounding code is Kukicha forms or plain Go.
Compiles to a single binary with no runtime overhead. Built-in WASM support and Go's concurrency model.
kukicha-blend main.go: See your Go code with Kukicha idioms