ilo 0.9.1

ilo — a programming language for AI agents
ilo-0.9.1 is not a library.
Visit the last successful build: ilo-26.5.0

ilo

A programming language AI agents write, not humans. Named from Toki Pona for "tool".

CI codecov crates.io npm License: MIT

Python                                    ilo
─────                                     ───
def total(price, quantity, rate):          tot p:n q:n r:n>n;s=*p q;t=*s r;+s t
    sub = price * quantity
    tax = sub * rate
    return sub + tax

4 lines, 30 tokens, 90 chars              1 line, 10 tokens, 20 chars

0.33× the tokens. 0.22× the characters. Same semantics. Type-verified before execution.

Why

AI agents pay three costs per program: generation tokens, error feedback, retries. ilo cuts all three:

  • Shorter programs - prefix notation eliminates parentheses; positional args eliminate boilerplate
  • Verified first - type errors caught before execution; agents get ILO-T004 not a stack trace
  • Compact errors - one token, not a paragraph; agents correct faster, fewer retries

Install

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/ilo-lang/ilo/main/install.sh | sh

# npm (any platform with Node 20+)
npm i -g ilo-lang

# Rust
cargo install ilo
Agent Install
Claude Code /plugin marketplace add ilo-lang/ilo then /plugin install ilo-lang/ilo
Claude Cowork Browse Plugins → Add marketplace → ilo-lang/ilo → install
Other agents Copy skills/ilo/ into your agent's skills directory

npm/WASM mode runs interpreter only. HTTP builtins (get, $, post) require the native binary.

Quick start

# Inline
ilo 'dbl x:n>n;*x 2' 5                    # → 10

# From file
ilo program.ilo functionName arg1 arg2

Tutorial: Write your first program →

What it looks like

Guards - flat, no nesting:

cls sp:n>t;>=sp 1000 "gold";>=sp 500 "silver";"bronze"

Pipes - left-to-right composition:

run x:n>n;x>>dbl>>inc

Data pipeline - fetch, parse, filter, sum:

fetch url:t>R ? t;r=($!url);rdb! r "json"
proc rows:L ?>n;clean=flt pos rows;sum clean
pos x:?>b;>x 0

Auto-unwrap ! - eliminates Result matching:

ilo 'inner x:n>R n t;~x  outer x:n>R n t;~(inner! x)' 42  # → 42

Teaching agents

ilo ships as an Agent Skill. Install the plugin and the agent learns ilo automatically.

For manual context loading:

ilo -ai              # compact spec for LLM system prompts
ilo help lang        # full spec

Key docs

Introduction What ilo is and why
Installation All install methods
Tutorial Write your first program
Types & Functions Core language guide
Prefix Notation Why prefix saves tokens
Guards Pattern matching without if/else
Pipes Function composition
Collections Lists and higher-order functions
Error Handling Result types and auto-unwrap
Data & I/O HTTP, files, JSON, env
MCP Integration Connect MCP servers
CLI Reference Flags, REPL, output modes
Builtins All built-in functions
Error Codes ILO-XXXX reference
SPEC.md Full language specification
examples/ Runnable examples (also test suite)

Community

Principles

  1. Token-conservative - every choice evaluated against total token cost
  2. Constrained - small vocabulary, one way to do things, fewer wrong choices
  3. Verified - types checked before execution, all errors reported at once
  4. Language-agnostic - structural tokens (@, >, ?, ^, ~, !, $) over English words

See MANIFESTO.md for full rationale.