exons.ai
One agent. One file.
An .exons file describes a complete agent — identity, execution, tools, memory, safety, and verification — using YAML frontmatter and a collision-free {~…~} template syntax.
prompt.exons
---
name: hello-prompt
description: A simple greeting prompt
type: prompt
---
Hello, {~exons.var name="user_name" default="World" /~}!
Welcome to go-exons. Today's topic is: {~exons.var name="topic" default="template engines" /~}.
{~exons.if eval="user_name != 'World'"~}
We're glad to have you here, {~exons.var name="user_name" default="friend" /~}.
{~exons.else~}
Please tell us your name!
{~/exons.if~}
go-exons parses, validates, and serializes these specs. It does not execute them against an LLM — that’s the runtime’s job.
install
go get github.com/itsatony/go-exonsGo is the production implementation. Python, Rust, and TS/JS ports are coming; all share the same JSON Schema.
Why exons
Today prompts and agents live scattered across code strings, notebooks, and dashboards — hard to version, review, and port between providers. .exons turns the agent into an artifact:
- Diffable — a plain text file that fits any code review and any Git repository.
- Complete — identity, execution parameters, tools, memory, dispatch rules, safety constraints, and verification cases in one place.
- Portable — define tools once, export to every provider’s format (OpenAI, Anthropic, Gemini, vLLM, Mistral, Cohere, MCP).
- Collision-free — the
{~…~}delimiters were chosen deliberately so they never collide with prompt content (JSON, XML, Go templates).
At a glance
Three document types cover the spectrum: prompt (a simple template), skill (a reusable capability), and agent (a full agent definition).