Skein is a programming language that compiles to BEAM bytecode and runs on the Erlang VM (OTP). The compiler and toolchain are implemented in Elixir. Skein is designed for building cloud services where AI agents are first-class constructs.
Analyzer (Skein.Analyzer) — AST to annotated AST (multi-pass: name resolution, type checking, capability checking, transition checking, plus lint passes for unused bindings/capabilities and unreachable code)
CodeGen (Skein.CodeGen.CoreErlang) — AST to Core Erlang to BEAM bytecode
All phases complete — MVP reached. The full compilation pipeline supports:
Modules with functions, let bindings, match expressions, pipes, string interpolation
Type checking with inference, JSON schema derivation, constraint annotations
Capability-based security with compile-time and runtime enforcement
HTTP/queue/schedule handlers with route matching and path parameters
ETS-backed store operations with capability gating and typed tables (C5, #255) — capability store.table("users", User) names the record type, operations are type-checked, writes are schema-checked at runtime (the Ecto/SQLite path remains unwired library code)
Agent state machines with phase transitions, compile-time transition validation
Scoped KV memory with namespace isolation
LLM client with pluggable backends, schema-validated JSON decoding for llm.json[T] (responses are recursively validated against the derived schema — C3, #298; violations are Err(LlmError.InvalidSchema(violations))), and streaming
Automatic trace recording for all effect calls
Full CLI tooling (new, build, test, run, trace)
VS Code extension with LSP (diagnostics, symbols, hover, completions, go-to-definition)
Test suite: the full umbrella unit and property suites run green — see CI for current counts