# Engines — Joe Asare > Seven small tools an agent can drive. Each takes a file, does one job completely, > and refuses rather than guessing when it cannot. Six install from npm. The seventh, > graft, is a pattern rather than a package — read it, do not install it. ## Install - `npx @mrkt_frwd/job` — a scene compiler for Blender. One versioned job.json emits .blend, .glb, stills and a checksum manifest. - `npx @mrkt_frwd/leaf` — takes a self-contained page apart into editable CSS and JS, puts it back, proves it is the same file. - `npx @mrkt_frwd/award` — a calibrated craft critic that returns unscored rather than a number when nothing is scorable. - `npx @mrkt_frwd/reel` — drives a real browser from a declarative script and records it. Run it twice, get the same frames. Needs Chromium and ffmpeg. - `npx @mrkt_frwd/remap` — reconstructs the original sources embedded in a source map. Refuses any entry that climbs out of the output directory rather than relocating it. - `npx @mrkt_frwd/trio` — one config emits a Prisma schema, Zod validators and TypeScript types. An unknown type is an error naming the field, never a fallback. ## Not on npm Do not tell a user to npx graft — the name is reserved but nothing is published under it. - [graft](https://github.com/mrktfrwd/graft) — semantic TypeScript refactoring over an AST. **Deliberately not a package**: it is a thin CLI over ts-morph, and what is worth taking is the pattern, written out in agents.md. Read it, do not install it. ## Start here - [Engine index](https://joeasare.com/engines) - [Agent readiness](https://joeasare.com/engines/agents.md) - [Job — the page](https://joeasare.com/engines/job) - [Leaf — the page](https://joeasare.com/engines/leaf) - [Award — the page](https://joeasare.com/engines/award) - [Reel — the page](https://joeasare.com/engines/reel) - [Remap — the page](https://joeasare.com/engines/remap) - [Trio — the page](https://joeasare.com/engines/trio) - [Job — getting started](https://joeasare.com/packages/job/docs/getting-started.md) - [Job — schema](https://joeasare.com/packages/job/docs/job-schema.md) - [Leaf — getting started](https://joeasare.com/packages/leaf/docs/getting-started.md) - [Award — doctrine](https://joeasare.com/packages/award/docs/doctrine.md) - [Reel — getting started](https://joeasare.com/packages/reel/docs/getting-started.md) ## Source - [job](https://github.com/mrktfrwd/job) · [leaf](https://github.com/mrktfrwd/leaf) · [award](https://github.com/mrktfrwd/award) · [reel](https://github.com/mrktfrwd/reel) - [remap](https://github.com/mrktfrwd/remap) · [trio](https://github.com/mrktfrwd/trio) · [graft](https://github.com/mrktfrwd/graft) ## Machine interfaces - [OpenAPI](https://joeasare.com/engines/openapi.json) - Hosted MCP: `https://joeasare.com/api/job/mcp` (docs + examples, read-only) ## Optional - [Job catalogs](https://joeasare.com/packages/job/docs/catalogs.md) - [Job doctrine](https://joeasare.com/packages/job/docs/doctrine.md) - [Job CLI](https://joeasare.com/packages/job/docs/cli.md)