jaiph.org · Your first workflow · Your first agent + sandboxed run · Install & switch versions · Agent Skill · Architecture · CLI · Contributing
Docs note: The Jaiph documentation site follows the Diátaxis framework. Tutorials: Your first workflow, Your first agent + sandboxed run. How-to: Install & switch versions, Run in a Docker sandbox, Authenticate agent backends, Configure backend & model, Add a hook, Use & publish a library, Save artifacts, Write & run tests. Reference: CLI, Configuration, Grammar, Language, Environment variables. Explanation: Why Jaiph, Architecture, Sandboxing, Inbox & Dispatch, Async Handles. Contributor: Contributing, Agent Skill.
Open Source · Powerful · Friendly
Jaiph is a composable scripting language and runtime for defining and orchestrating AI agent workflows. You write .jh files that combine prompts, rules, scripts, and workflows into executable pipelines. The CLI parses source into an AST, validates references at compile time, and the Node workflow runtime interprets the AST directly.
Warning
Jaiph is still in an early stage. Expect breaking changes.
- Workflows — Compose
prompt,run,ensure, channel sends, conditionals,run asyncwith implicit join,catch, and repair-and-retryrecover. - Rules and scripts — Rules stay structured (no raw shell lines);
scriptsteps run bash or polyglot code as subprocesses. - Agents — Backends include Cursor, Claude, Codex (HTTP), or a custom
agent.command. - Testing —
*.test.jhfiles run in-process (jaiph test) with mocks andexpect_*assertions (Write & run tests). - Safety and inspectability — Docker-backed sandbox for
jaiph run(env-controlled; see Sandboxing and Run in a Docker sandbox); live__JAIPH_EVENT__on stderr and durable.jaiph/runs/artifacts (Architecture). - Tooling —
jaiph compile,jaiph format,jaiph install/.jaiph/libs/(Use & publish a library), and optionalhooks.json(CLI, Add a hook).
- CLI (
src/cli) —jaiph run/test/compile/format/init/install/use; prepares scripts, spawns the workflow runner (or in-process test runner), parses__JAIPH_EVENT__on stderr, runs hooks onjaiph runonly. - Parser (
src/parser.ts,src/parse/*) —.jh/.test.jh→ AST. - Validator (
src/transpile/validate.ts) — imports and symbol references at compile time. - Transpiler (
src/transpile/*) — emits atomicscriptfiles underscripts/only (no workflow-level shell). - Node workflow runtime (
src/runtime/kernel/node-workflow-runtime.ts,graph.ts) — interprets the AST;buildRuntimeGraph(graph)consumes theModuleGraphproduced byloadModuleGraph(no filesystem reads). - Node test runner (
src/runtime/kernel/node-test-runner.ts) —*.test.jhblocks with mocks. - JS kernel (
src/runtime/kernel/) — prompts, managed scripts,__JAIPH_EVENT__, inbox, mocks. Diagrams, runtime contracts, on-disk artifact layout, and distribution: Architecture. Test layers and E2E policy: Contributing.
Run a sample workflow without installing anything first:
curl -fsSL https://jaiph.org/run | bash -s '
workflow default() {
const response = prompt "Say: Hello I'\''m [model name]!"
log response
}'Requires node and curl. The script installs Jaiph automatically if needed.
curl -fsSL https://jaiph.org/install | bashOr install from npm:
npm install -g jaiphVerify: jaiph --version. Switch versions: jaiph use nightly or jaiph use 0.10.0.
Initialize a project (optional): jaiph init writes .jaiph/ with bootstrap workflow, gitignore entries for runs/tmp, and SKILL.md. The CLI resolves the skill body in this order — JAIPH_SKILL_PATH, install-relative jaiph-skill.md, docs/jaiph-skill.md under cwd, then an embedded copy baked into the binary as the final fallback — so jaiph init always writes SKILL.md (see Install & switch versions). Canonical skill text for agents: https://raw.githubusercontent.com/jaiphlang/jaiph/refs/heads/main/docs/jaiph-skill.md.
- Run the default workflow:
jaiph run path/to/main.jh [args...]or./main.jh [args...]with a#!/usr/bin/env jaiphshebang. - Run tests:
jaiph test(workspace),jaiph test ./dir, orjaiph test path.test.jh. - Validate without executing:
jaiph compile …(samevalidateReferenceschecks as beforejaiph run; noscripts/emission — see Architecture). - Format sources:
jaiph format …/jaiph format --check ….
Full flags and environment variables: CLI, Environment variables. New here? Start with Your first workflow.
#!/usr/bin/env jaiph
import "tools/security.jh" as security
script check_deps = `test -f "package.json"`
rule deps_exist() {
run check_deps() catch (err) {
fail "Missing package.json"
}
}
workflow default(task) {
ensure deps_exist()
const ts = run `date +%s`()
prompt "Build the application: ${task}"
ensure security.scan_passes()
}
./main.jh "add user authentication"For the full language reference, see Grammar and Language. For install, libraries, sandboxing, hooks, testing, and artifacts, see the How-to quadrant: Install & switch versions, Use & publish a library, Run in a Docker sandbox, Add a hook, Write & run tests, Save artifacts. New to Jaiph? Start with the tutorials: Your first workflow and Your first agent + sandboxed run. Or visit jaiph.org.
- AI agent who wants to work in a predictable, structured way? Read the Agent Skill — it teaches you how to author Jaiph workflows and makes your behavior verifiable and auditable.
- Human who manages agents and wants reliable, repeatable automation? See the Samples and Your first workflow.
- Contributor who wants to improve Jaiph itself? See Contributing.
See Contributing for branch strategy, pull requests, the test layers, and code style. Use GitHub Issues for bugs and feature discussion.
