Fart 🌫
Program that generates type definitions, libraries, and programs in multiple languages.
🚧 Beware of Project Status: Work-in-Progress
Development 👨💻
ℹ INFO:
docs/contributing.mdcoming soon!!
To execute the Fart tests, simply run deno test. If you have not done so
already, please install Deno.
Give it a Spin
You can give Fart a spin on your machine in one command (assuming Deno is installed). Check out the example code on https://fart.fart.tools/pokemon-example/.
deno run --reload https://github.com/EthanThatOneKid/fart/raw/main/ex/pokemon/run.ts
Local Variation
deno run --reload ex/pokemon/run.ts
Fart CLI
Try running the command below after cloning the repository.
deno run --allow-read --allow-write std/cli/run.ts ./ex/pokemon.fart --reg=ts.deno --output=./ex/pokemon.ts
Fart Server 📡
Please refer to docs/server-architecture.md to learn about how the server code is organized.
Architecture
Please refer to docs/architecture.md to learn about the structure of this repository.
Closed loop
This project is built with the ambition of forming a closed-loop execution substrate for autonomous coding agents, enabling recursive, self-referential spontaneous software. Fart is designed as a structural foundation that perfectly complements GEPA (Genetic-Pareto)'s unique strengths in reflective, evolutionary search.
By combining dynamic HTTP-based transpilation with native remote module resolution (Deno's HTTP imports), Fart enables:
- JIT Epistemologies: Agents are not bound by static schemas. Upon
encountering a novel domain, an agent can dynamically invent a new
.fartschema and immediately evaluate it viaawait import("http://...",). - Zero-Friction Evaluation: Changing application logic traditionally requires file I/O, build steps, and process restarts. Fart eliminates this, providing sub-second code generation and evaluation for extremely fast feedback loops.
- Type-Driven Reflection: Instead of mutating raw code that often results in
syntax errors, frameworks like GEPA can mutate the highly-structured
.fartschema. If the schema is invalid, Deno throws native TypeScript compiler errors at import time, which the optimization engine can ingest to reflectively evolve and fix the structure.
Created with 💖 by @EthanThatOneKid