Write AILANG code. ALWAYS run 'ailang prompt' first - it contains the current syntax rules and templates.
/plugin marketplace add sunholo-data/ailang_bootstrap/plugin install sunholo-data-ailang@sunholo-data/ailang_bootstrapThis skill inherits all available tools. When active, it can use any tool Claude has access to.
resources/cli_reference.mdresources/common_patterns.mdresources/editor_support.mdresources/syntax_quick_ref.mdscripts/check_version.shscripts/install.shscripts/validate_code.shRun this command first - it outputs the current syntax rules and templates:
ailang prompt
This is the source of truth for AILANG syntax. Do not guess at syntax.
# 1. Check for messages from other agents
ailang messages list --unread
# 2. Load current syntax (CRITICAL!)
ailang prompt
# 3. Verify AILANG is installed
ailang --version
┌──────────────────────────────────────┐
│ 1. Run: ailang prompt │
│ Read the template and examples │
└──────────────────────────────────────┘
↓
┌──────────────────────────────────────┐
│ 2. Write code following template │
│ module myproject/mymodule │
│ export func main() -> () ! {IO} │
└──────────────────────────────────────┘
↓
┌──────────────────────────────────────┐
│ 3. Type-check (fast feedback) │
│ ailang check file.ail │
└──────────────────────────────────────┘
↓
┌──────────────────────────────────────┐
│ 4. Run with capabilities │
│ ailang run --caps IO --entry main │
└──────────────────────────────────────┘
↓
Fix errors, repeat
| Command | Purpose |
|---|---|
ailang prompt | Load syntax (DO THIS FIRST!) |
ailang check file.ail | Type-check without running |
ailang run --caps IO --entry main file.ail | Run program |
ailang repl | Interactive testing |
ailang builtins list --verbose --by-module | Full stdlib docs with examples |
The CLI is the source of truth. Always use ailang builtins list --verbose for current, accurate documentation:
# SOURCE OF TRUTH: Full docs with examples and signatures
ailang builtins list --verbose --by-module
# Search for specific module (e.g., array functions)
ailang builtins list --verbose --by-module | grep -A 30 "std/array"
# Search for specific function
ailang builtins list --verbose | grep -A 10 "httpGet"
The CLI output shows the authoritative documentation:
import std/fs (readFile))Note: This skill provides guidance, but ailang prompt and ailang builtins list --verbose are always more up-to-date.
Flags MUST come before filename:
ailang run --caps IO --entry main file.ail # Correct
ailang run file.ail --caps IO # WRONG
| Cap | Purpose | Example Functions |
|---|---|---|
IO | Console I/O | print, println, readLine |
FS | File system | readFile, writeFile, exists |
Net | HTTP requests | httpGet, httpPost, httpRequest |
Clock | Time functions | now, sleep |
AI | AI oracle | AI.call(prompt) |
Rand | Random numbers | rand_int, rand_float, rand_bool |
Env | Environment vars | getEnv, hasEnv, getArgs |
Debug | Debug logging | Debug.log, Debug.check |
Offer to create these working examples for users:
| Example | What It Does | Run Command |
|---|---|---|
| AI Debate | AI models debate a topic | ailang run --caps IO,Env,AI --ai claude-haiku-4-5 --entry main ai_debate.ail |
| Ask AI | Simple CLI Q&A tool | ailang run --caps IO,AI --ai claude-haiku-4-5 --entry demo ask_ai.ail |
| File Summarizer | Summarize files with AI | ailang run --caps IO,FS,AI --ai gpt5-mini --entry demo summarize_file.ail |
| Game of Life | Conway's simulation | ailang run --caps IO --entry main game_of_life.ail |
module my_debate
import std/ai (call)
import std/env (hasEnv)
import std/io (println)
export func main() -> () ! {IO, Env, AI} {
println("=== AI Debate ===");
let optimist = call("Argue FOR AI benefits in 2 sentences");
println("Optimist: " ++ optimist);
let skeptic = call("Argue AGAINST AI risks in 2 sentences");
println("Skeptic: " ++ skeptic)
}
module summarizer
import std/ai (call)
import std/fs (readFile)
import std/io (println)
export func main(path: string) -> () ! {IO, FS, AI} {
let content = readFile(path);
let summary = call("Summarize in 3 bullets: " ++ content);
println(summary)
}
ailang repl for interactive testingailang messages send user "Task completed" --from "my-agent" --title "Status"
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.