I-Lang v3.0 Specification

The complete protocol specification. Two syntaxes, 88 verbs, 29 modifiers, 14 entities, 13 Greek aliases. MIT licensed.

1. Overview

I-Lang is an AI-native communication protocol built from symbols already inside every LLM's training data: brackets, pipes, arrows, key-value pairs. It defines a formal vocabulary for three communication modes:

ModeDescriptionExample
Human → AIPrecise instructions AI follows with fewer retries[READ:@SRC|path=data.csv]=>[STAT]=>[Ω]
AI → AIStructured communication between agents[SEND:@DST|fmt=json]=>[EVAL]=>[OUT]
AI internalBehavioral identity and reasoning structure::GENE{verify_first|conf:confirmed}

2. Two Syntaxes

2.1 Operation Syntax — What AI Does

[VERB:@TARGET|modifier=value]=>[NEXT_VERB]=>[Ω]

Operations are executable instructions. Each step in a chain receives the output of the previous step. The chain terminates with [Ω] or [OUT].

Components:

ComponentSyntaxDescription
VerbVERBOne of 88 defined verbs (e.g., READ, WRIT, FILT, SORT)
Target@TARGETEntity reference (e.g., @SRC, @DST, @PREV, @LOCAL)
Modifierskey=valueParameters separated by pipes (e.g., fmt=md, lng=ja)
Chain=>Output of left feeds into right

2.2 Declaration Syntax — What AI Is

::GENE{trait_name|conf:confirmed|scope:global}
  T:positive_trait
  A:anti_pattern⇒consequence
::STATE{@SELF, attribute:value}

Declarations define behavioral identity — personality, rules, anti-patterns, and immune responses. They can persist across sessions when stored in profile or configuration files.

3. Verb Categories

CategoryCountVerbs
Data I/O12READ WRIT GET DEL LIST COPY MOVE STRM CACH SYNC SEND RUN
Transform22FMT CONV SPLIT MERGE MAP FILT SORT DEDU FLAT NEST CHNK REDU PIVT TRNS ENCD DECD HASH CMPR EXPN XLAT REWR DIFF
Analysis17SCAN MTCH CNT STAT EVAL SCOR RANK TRND CORR FRCS ANOM SENT CLST BNCH AUDT VALD CLSF
Generation10CREA DRFT EXPD SHRT PARA STYL TMPL FILL EXTC GEN
Execute10PLAN DECI CHEK FIX DPLO SAVE REVW LERN TEST PARS
Control2LOOP WAIT
Output5OUT DISP EXPT PRNT LOG
Structure5LINK SET TAG GRP EMBD
Meta4HELP DESC INTR NOOP
Batch1BATC

Total: 88 verbs. Full definitions with examples: Dictionary →

4. Greek Aliases

13 commonly-used verbs have single-character Greek aliases for maximum compression:

AliasVerbDescription
ΣMERGECombine multiple inputs into one
ΔDIFFCompare two inputs, show differences
φFILTFilter by condition
SORTSort by criteria
λMAPApply function to each element
SPLITSplit input into parts
μSTATStatistical summary
ψSENTSentiment analysis
ξHASHGenerate hash/checksum
ζCMPRCompress content
θXLATTranslate between languages
ΩOUTFinal output
ΠBATCBatch operation

5. Modifiers

5.1 Core Modifiers

Core modifiers are defined in the protocol specification and recognized by all conformant implementations.

ModifierPurposeExample values
fmt=Output formatmd, json, csv, html, yaml, txt
lng=Languageen, zh, ja, ko, es, fr, de
len=Length constraint3, 100w, 500char
ton=Toneformal, casual, pro, academic
sty=Stylebullets, prose, table, numbered
path=File/URL path./data.csv, https://example.com
whr=Filter condition*.md, status=active
mch=Match patternregex, glob, exact
src=Sourcefile, url, clipboard, @PREV
dst=Destinationfile, screen, @NULL

5.2 Extended Modifiers

Extended modifiers are verb-specific parameters defined in the Dictionary. They follow the same key=value syntax but are only meaningful for specific verbs.

ModifierUsed byExample
cmd=RUN[RUN|cmd=python script.py]
algo=HASH, ENCD[HASH|algo=sha256]
key=CACH[CACH|key=q3data]
by=SORT, STAT, RANK[SORT|by=revenue,desc]
fn=MAP, REDU, LOOP[MAP|fn=extract_title]
period=TRND[TRND|period=Q]
threshold=ANOM[ANOM|threshold=2.5]
scale=SCOR[SCOR|scale=1-10]
type=CREA, GEN[CREA|type=blog,topic=AI]

5.3 Modifier Grammar

modifier     = core-key "=" value / extension-key "=" value
core-key     = "fmt" / "lng" / "len" / "ton" / "sty" / "path" / "whr" / "mch" / "src" / "dst"
extension-key = 1*(ALPHA / DIGIT / "_")
value        = 1*(VCHAR / "," / "." / "/" / ":" / "-" / "_" / "*" / ">" / "<" / "=")

6. Entities

6.1 Core Entities

EntityDescription
@SRCSource input
@DSTDestination output
@PREVPrevious output in chain
@LOCALLocal file system
@SCREENScreen/visible content
@LOGLog output
@NULLDiscard output
@STDINStandard input

6.2 External Entities

EntityDescription
@GHGitHub
@R2Cloudflare R2 storage
@COSTencent Cloud COS
@DRIVEGoogle Drive
@WORKERCloudflare Worker
@CFCloudflare Pages/CDN

7. Grammar (ABNF-style)

; === Operation Syntax ===
chain        = step *("=>" step)
step         = "[" verb-call "]"
verb-call    = VERB [":" target] ["|" modifiers]
VERB         = 2*5(ALPHA)                    ; e.g., READ, FMT, OUT
target       = "@" entity-name               ; e.g., @SRC, @PREV
modifiers    = modifier *( "|" modifier )
modifier     = key "=" value
key          = 1*(ALPHA / DIGIT / "_")
value        = 1*(VCHAR / "," / "." / "/" / ":" / "-" / "_" / "*" / ">" / "<" / "=")
entity-name  = 1*(ALPHA / DIGIT / "_")

; === Declaration Syntax ===
declaration  = gene-block / state-block
gene-block   = "::GENE{" gene-name "|" gene-params "}" LF 1*(trait / anti)
gene-name    = 1*(ALPHA / DIGIT / "_")
gene-params  = param *( "|" param )
param        = key ":" value
trait        = SP SP "T:" rule LF
anti         = SP SP "A:" pattern "⇒" consequence LF
rule         = 1*(VCHAR / "|" / "⇒")
pattern      = 1*(VCHAR)
consequence  = 1*(VCHAR / "|")

state-block  = "::STATE{" target ", " 1*(key ":" value *("," key ":" value)) "}"

8. JSON AST

I-Lang chains can be represented as JSON AST for machine processing, validation, and interoperability with MCP/A2A.

{
  "type": "chain",
  "version": "3.0",
  "steps": [
    {
      "verb": "READ",
      "target": "@SRC",
      "modifiers": { "path": "sales.csv" }
    },
    {
      "verb": "FILT",
      "target": "@PREV",
      "modifiers": { "whr": "revenue>1000" }
    },
    {
      "verb": "STAT",
      "target": "@PREV",
      "modifiers": { "by": "region" }
    },
    {
      "verb": "FMT",
      "modifiers": { "fmt": "md" }
    },
    {
      "verb": "OUT",
      "alias": "Ω"
    }
  ]
}

Declaration AST:

{
  "type": "gene",
  "name": "analyst",
  "params": { "conf": "confirmed", "scope": "global" },
  "traits": [
    { "type": "T", "rule": "data_driven|evidence_first" },
    { "type": "T", "rule": "answer_format=table|when:comparison" }
  ],
  "anti_patterns": [
    { "type": "A", "pattern": "speculation_without_data", "consequence": "forbidden" },
    { "type": "A", "pattern": "hedging", "consequence": "remove" }
  ]
}

9. Error Model

Error codeConditionExpected behavior
E_UNKNOWN_VERBVerb not in 88-verb dictionaryReport unknown verb, suggest closest match
E_MISSING_TARGETVerb requires target but none givenReport missing target, show expected syntax
E_INVALID_MODIFIERModifier key not recognized for this verbReport invalid modifier, list valid options
E_CHAIN_BREAKStep in chain produces no output for next stepReport which step failed, preserve partial results
E_ENTITY_NOT_FOUNDReferenced entity does not exist or is inaccessibleReport entity resolution failure
E_PERMISSION_DENIEDGuarded/dangerous verb blocked by host runtimeReport which verb was blocked and why
E_DECLARATION_CONFLICTTwo GENE blocks define contradictory rulesReport conflict, apply higher-priority block
E_SYNTAX_ERRORMalformed chain or declarationReport error location, show corrected syntax

10. Execution Semantics

10.1 Chain execution

Steps in a chain execute left to right. The output of each step becomes the implicit @PREV input to the next step. If a step specifies an explicit target, it overrides @PREV.

10.2 Entity resolution

Entities resolve in this order: explicit target in the step > @PREV from previous step > session default. External entities (@GH, @R2, etc.) require runtime-level configuration.

10.3 Declaration persistence

::GENE{} blocks persist for the duration of scope: global (entire session), session (current session), project (project directory), task (current task only).

10.4 Priority resolution

When multiple ::GENE{} blocks apply, priority determines order: P0 > P1 > P2. Within the same priority, more specific scope wins (task > project > session > global).

11. Security Model

I-Lang classifies verbs into three risk levels: safe (read-only, no side effects), guarded (modifies state, requires confirmation), and dangerous (data loss or code execution risk, requires explicit authorization). See the full security model for verb classifications and runtime requirements.

12. Versioning

VersionDateChanges
v3.02026-04Current. 88 verbs, 29 core modifiers, 14 entities, 13 Greek aliases. Two syntaxes (operations + declarations). Extended modifier system.
v2.02026-03Added declaration syntax (::GENE, ::STATE). Behavioral DNA. Greek aliases.
v1.02026-02Initial release. Operation syntax only. 64 verbs.

13. Examples

# Read CSV, filter rows, sort, output as markdown table
[READ:@SRC|path=sales.csv]=>[φ|whr=revenue>1000]=>[∇|by=revenue,desc]=>[FMT|fmt=md]=>[Ω]

# Translate previous output to Japanese, formal tone
[θ:@PREV|lng=ja,ton=formal]=>[Ω]

# Batch read all markdown files, merge, summarize
[LIST:@LOCAL|mch=*.md]=>[Π:READ]=>[Σ]=>[SHRT|len=5,sty=bullets]=>[Ω]

# Define behavioral DNA for an AI agent
::GENE{analyst|conf:confirmed|scope:global}
  T:data_driven|evidence_first
  T:answer_format=table|when:comparison
  A:speculation_without_data⇒forbidden
  A:hedging⇒remove

14. Full Specification

The complete, machine-readable specification is available at:

github.com/ilang-ai/ilang-spec  ·  npm: @i-language/spec  ·  HuggingFace

Related pages: Benchmark · Conformance · Security

← Back to I-Lang  ·  Compare with MCP & A2A →  ·  Browse the Dictionary →