What we built
ERA is a Deno-native meta-agent that writes code to create other agents. It’s a self-improving AI meta-programming platform that continuously generates, tests, evaluates, and refines its own creations. Each agent can be promoted into a reusable “utility,” allowing ERA to grow its own capabilities over time.
Inspiration
Even as experienced developers, we found it surprisingly hard to get started building AI agents.
There are too many frameworks, protocols, and tools — and no clear starting point.
We built ERA to change that: a simple, self-improving system that lets anyone create custom agents to solve specific, real-world problems in their daily life.
What it does
ERA automates the full lifecycle of AI agent creation: Prompt → Generate → Test → Evaluate → Refine → Promote.
It includes both a CLI tool and a web interface for creating, managing, and refining agents. The system’s “FBI Director” orchestrator reviews each agent’s code, improves prompts, runs tests, and iterates automatically until success. Each attempt is tracked, versioned, and traced for transparency, allowing measurable improvement with every run.
Why It’s Useful
- Rapidly prototype and evolve specialized AI agents
- Automate debugging and code refinement
- Build reusable utilities that improve future generations
- Deploy instantly via Deno Deploy
- Create a transparent feedback loop for AI development
In essence, ERA transforms agent creation into a self-sustaining, self-improving process.
How we built it
ERA is built entirely in Deno and TypeScript using a modular architecture centered on the FBI Director Orchestrator.
| Component | Purpose |
|---|---|
| FBI Director | Core orchestrator that refines prompts, evaluates results, and drives iterative improvement |
| CLI Tool | Interactive command-line interface for agent creation and continuation |
| Hono Web Server + Alpine.js UI | Lightweight web interface for managing and monitoring agents |
| Tailwind CSS | Utility-first styling for a clean, minimal frontend |
| Daytona Sandbox | Executes and validates generated code safely |
| Wandb AI + Weave Tracing | Tracks inference runs, observability, and performance metrics |
| Groq / OpenAI / Zoom RTMS / Salesforce MCP | Optional inference and enterprise integrations |
| Deno Deploy | One-command production deployment |
| Val.town / Smallweb | Alternative lightweight hosting targets |
Each module contributes to ERA’s continuous self-improvement loop and end-to-end observability.
What we built with
| Tool / Protocol | How It Was Used |
|---|---|
| Deno | Core runtime environment for CLI, web server, and backend orchestration |
| TypeScript | Strongly-typed foundation for modular, scalable code |
| Hono | Fast Deno web framework for ERA’s API and interface |
| Alpine.js | Reactive frontend framework for lightweight interactivity |
| Tailwind CSS | Utility-based styling for the ERA dashboard |
| AG-UI | Provides a clean, modern interface for agent management and visualization |
| Daytona | Executes and validates generated agents inside secure sandboxes |
| Wandb | Handles AI inference calls and experiment tracking |
| Weave | Provides tracing and observability for every AI operation |
| Groq | Low-latency backend for LLM inference |
| OpenAI | Alternative inference engine for code generation and prompt refinement |
| Browserbase | Enables browser-based agent execution and web automation |
| Mastra | Framework for multi-agent workflows and orchestration demos |
| Tavily | Provides web search capabilities for research-driven agents |
| Zoom RTMS | Adds real-time messaging capability for collaborative agents |
| Salesforce MCP | Connects agent workflows to enterprise data and CRM systems |
| Deno Deploy | Seamless cloud deployment for both web and CLI layers |
| Val.town / Smallweb | Demonstrates serverless portability and compatibility |
Built With
- ag-ui
- alpine.js
- browserbase
- daytona
- deno
- deno-deploy
- groq
- hono
- mastra
- openai
- salesforce-mcp
- tailwind-css
- tavily
- typescript
- val.town
- wandb
- weave
- zoom-rtms

Log in or sign up for Devpost to join the conversation.