Project Info
This project did not submit a demo video on Devpost.
Link to demo Video demo link (it's taking time to upload so we put it here!): https://drive.google.com/drive/folders/1KrYEVZuv6BYaxwpSi-P-ywp5DF7RNGrP
Inspiration
While ideating, we were inspired by two emerging trends. First, the rise in large scale simulations where multiple agents interact with each other[1]. This area was mainly used to model social experiments. The second trend is async agents that do real-world software engineering with minimal human intervention[2]. We realised AI, in 2026, are now able to take on the full pipeline of project development, from ideating to producing an end project. As the speed and cost of validating ideas is getting increasingly negligible, we believe it would be especially valuable to generate and validate ideas at scale to solve ambitious exploratory problems. [1] https://x.com/simile_ai/status/2022011618176237657 [2] https://builders.ramp.com/post/why-we-built-our-background-agent
What it does
Treemux takes a broad problem statement like TreeHacks and spawns parallel AI agents with diverse profiles, each of which independently explore the solution space. Specifically, each agent generates its own idea, builds a full-stack Next.js application, commits to GitHub, and deploys to Vercel. (To see an example, visit: https://treemux-khueopstbpoeyrjchbbpf-ezt2gb5e0-vjxs.vercel.app/). Then, we simulate judges to evaluates their ideas and converge on an overall winner. At the same time, a dashboard visualizes each agent’s progress as a live DAG. You can watch code being written, builds completing, and deployments going live. When all agents finish, an evaluator judges the submissions. We benchmarked our evaluator judge panel against the dataset from Si, Yang & Hashimoto (2024), where 100+ NLP researchers blind-reviewed research ideas. Single LLM reviewers scored near random chance (53.3%), but our multi-judge panel with achieved stronger agreement with human consensus (achieving a Spearman rank correlation of 0.924), showcasing that the pipeline is robust to noisy scores, judge bias, and reviewer disagreement.
How we built it
There are four parts to Treemux. Orchestrator API (Bun + TypeScript): this spawns the swarm of workers based on task description, creates GitHub repos/branches, provisions Vercel deployments, and broadcasts real-time events to frontend over websockets Worker sandboxes (Python + Modal): each agent runs in an isolated container with Node.js, Bun, and Claude Code CLI pre-installed, along with baked-in skill references (shadcn/ui, Vercel best practices, AI SDK docs) Evaluator Engine (Node + TypeScript + Browserbase): designs a custom AI judge panel from your criteria, researches real people as persona judges, runs all judges (with browser access for live demos), streams results back. Live dashboard (Next.js + Tailwind + React Flow): consumes Server-Sent Events to render a real-time visualization into agents' work progress, artifacts(websites produced), and a judging results.
Challenges we ran into
Given the same exploratory task description, agents tend to come up with the same ideas (similar to how the jokes generated by different LLMs are always the same). To prevent mode collapse, we produce a diverse set of personalities for the agents. Specifically for TreeHacks, we collected hacker profiles from the #hacker-intros channel in slack server, and after anonymisation, used them as the base personality of agents.
Accomplishments we're proud of
The entire pipeline (from idea generation to live deployed apps) could be run with just one prompt, with zero human intervention The dashboard makes the blackbox AI pipeline feel less abstract, since you can see each agent’s steps, like the idea generation, code commits, builds, deployments, live. Each agent produces a deployed websites, a GitHub repo, and a written pitch.
What we learned
We found out how important observability is. When we were discussing the concept with judges, a lot of them said they would like to see the agents in action. Thus we made sure to prioritize the UI. We wanted a UI that is immersive, without overwhelming users with noise.
What's next
Treemux currently mostly simulates judging in a tech-project-related setting (think hackathons, YC-batches etc), but the core orchestration system is domain-agnostic. Over time, it can evolve into a generalized evaluation layer for any structured parallel exploration problem. Consider simulating architectural proposals, government policy trade-offs, parallel R&D hypotheses, or even research journal submissions. These can all be configured with the right choice of new tool calls, MCPs, judges and simulation context. We also plan to make agent roles fully configurable. Users could define agent personalities or agents, such as “optimise for profitability,” “optimise for social impact,” or “optimise for speed”, and watch how different incentives change the exploration and the final winner. Treemux could allow users to use their own ideas as inputs into the system, so that they can be evaluated against the other agent generated solutions. This can help them find blind spots and stress test assumptions.
Treemux
AI-Powered Orchestration Platform
Treemux takes a single problem statement and spawns N parallel AI workers — each running Claude Code CLI inside isolated Modal sandboxes — to ideate, implement, and deploy complete projects autonomously. Every task set gets its own GitHub repo, and each worker gets its own branch and live Vercel deployment, for quick idea prototyping, with real-time progress streamed to users. Finally, we run our own evaluator model, which is responsible for evaluating and judging each of the projects based on idea and implementation.
Task → N × AI Workers (Modal + Claude Code) → GitHub → Vercel → Live Demos → AI Judges
This has tremendous potential. Imagine a founder simulating a batch of 100 YC companies in 3 hours for $10 worth of Claude credits and having a deep research judge pick the best implemented idea.
System Overview
The architecture is split into four independent services:
| Folder | Stack | Role |
|---|---|---|
api/ | Bun + TypeScript | Orchestrator — HTTP/WS server, task lifecycle, provider integrations |
worker/ | Python + Modal | Implementation — isolated sandboxes running Claude Code CLI |
eval/ | TypeScript + Claude Agent SDK | Evaluation — multi-judge scoring with browser-based testing |
web/ | Next.js + React + @xyflow/react | Frontend — real-time pipeline visualization and results dashboard |
How It Works
- Task Submission —
POST /v1.0/taskwith a problem description and N worker profiles - Setup — Orchestrator creates a GitHub repo, N branches, and N Vercel deployments
- Spawn — N Modal sandboxes boot (Ubuntu + Node + Bun + Claude Code CLI)
- Implement — Each Claude agent autonomously writes code, using
treemux-reportto:start— declare its idea and step planstep— commit, push, and report progress after each stepdone— write PITCH.md and finalize
- Real-Time UI — Workers POST callbacks → API → WebSocket → React dashboard updates live
- Evaluation — When all workers finish, the eval service judges every deployment with AI agents + real browsers
- Results — Rankings, composite scores, and detailed feedback streamed to the frontend sidebar
Final Outputs (per worker)
| Output | Description |
|---|---|
| GitHub Branch | Full source code on its own branch |
| Vercel URL | Live deployed demo at a unique URL |
| PITCH.md | Auto-generated project pitch |
| Evaluation Score | Feasibility, novelty, demo readiness |
Provider Deep Dive
Treemux integrates with 8 external providers. Here's exactly how each one is used.
1. Modal — Cloud Sandboxes
Used by: worker/, eval/
Modal provides isolated cloud sandboxes where AI agents execute code without risk to the host system.
- Implementation workers (
worker/implementation_worker.py): Each worker spawns a Modal sandbox with a custom image (Ubuntu + Node.js + Bun + Claude Code CLI). The API triggers the worker via Modal's HTTP endpoint. Inside the sandbox,runner.pysets up git, runs Claude Code CLI, and pushes code to GitHub on every step. - Evaluation sandboxes (
eval/src/modal/client.ts): The eval system can optionally dispatch judge agents to Modal sandboxes for isolated browser-based evaluation, preventing resource contention when running many judges in parallel. - Configuration:
MODAL_IMPLEMENTATION_WORKER_URLenv var points to the deployed Modal function endpoint.
2. GitHub — Version Control
Used by: api/, worker/
GitHub stores all generated code and enables Vercel auto-deployments via branch tracking.
- Repo creation (
api/src/github.ts): The API creates a new public GitHub repo per task (e.g.treemux-<nanoid>) using the REST API withauto_init: true. - Branch creation (
api/src/github.ts): N branches are created (one per worker, e.g.treemux-worker-<jobId>), each forked from the default branch's HEAD SHA. Includes retry logic for the initial commit race condition. - Git push from sandbox (
worker/runner.py): Inside the Modal sandbox, the worker configures git with the providedGITHUB_TOKEN,GIT_USER_NAME, andGIT_USER_EMAIL, then commits and force-pushes after every implementation step. - Authentication:
GITHUB_TOKEN(Personal Access Token withreposcope).
3. Vercel — Deployment Platform
Used by: api/
Vercel provides instant deployments for every worker branch, giving each implementation a live URL.
- Project + Deployment creation (
api/src/vercel.ts): Uses the@vercel/sdkto create a deployment linked to the GitHub repo + branch. Framework is set to Next.js withnpm run build/npm install. - Auto-deploy on push: Vercel watches each branch — every
git pushfrom the worker triggers a new build automatically. - Deployment protection (
api/src/vercel.ts): Disables SSO/password protection so all deployments are publicly accessible for evaluation. - Environment variables (
api/src/vercel.ts): InjectsANTHROPIC_API_KEY,OPENAI_API_KEY, andOPENROUTER_API_KEYinto each Vercel project so deployed apps can call AI services at runtime. - Authentication:
VERCEL_TOKEN(Vercel API token).
4. Anthropic (Claude) — AI Code Generation & Evaluation
Used by: worker/, eval/
Claude powers both the code-writing agents and the evaluation judges.
- Claude Code CLI (
worker/runner.py): The implementation sandbox runsclaude(the Claude Code CLI) which autonomously writes, edits, and commits code. It receives the task idea, worker profile, temperature, and risk level as context. Authenticated viaCLAUDE_CODE_OAUTH_TOKEN. - Claude Agent SDK (
eval/src/agents/): The evaluation system uses the Claude Agent SDK (@anthropic-ai/claude-agent-sdk) for three agent types:- Planner agent — generates a judging plan with scoring categories and judge personas
- Judge agents — score each project on defined criteria (text-only or browser-based)
- Report writer — produces a rankings summary from all judge results
- Models used:
claude-sonnet-4-5-20250929for planning/research/judging,claude-opus-4-6for report writing. - Authentication:
ANTHROPIC_API_KEYfor the Agent SDK,CLAUDE_CODE_OAUTH_TOKENfor the CLI.
5. OpenRouter — AI API Gateway
Used by: api/
OpenRouter provides access to multiple LLM providers through a single API.
- Ideation (
api/src/ideation.ts): Calls OpenRouter withgoogle/gemma-2-9b-itto generate structured ideas from the task description + worker profiles. Returns a JSON array withidea,risk(0-100), andtemperature(0-100) per worker. Currently the pipeline uses synthetic ideation (passing the task directly), but the OpenRouter infrastructure is fully wired. - Pitch generation: The worker sandbox has access to
OPENROUTER_API_KEYto generate compelling elevator pitches for the evaluator. - Authentication:
OPENROUTER_API_KEY.
6. OpenAI — Alternative AI Provider
Used by: worker/ (sandbox environment)
OpenAI GPT models are available as an alternative AI provider in the sandbox.
- Environment injection: The API injects
OPENAI_API_KEYinto both the Modal sandbox and the Vercel deployment environment, allowing worker-built apps to use GPT models at runtime. - Authentication:
OPENAI_API_KEY.
7. BrowserBase (Stagehand) — Browser Automation
Used by: eval/
BrowserBase provides cloud browser sessions for evaluating deployed web applications.
- Stagehand SDK (
eval/src/tools/stagehand.ts): The evaluation system uses@browserbasehq/stagehandto launch browser sessions that navigate to each deployed project URL. - Session pooling (
eval/src/tools/stagehand-pool.ts): A pool manager maintains concurrent browser sessions to evaluate multiple projects in parallel without exceeding limits. - Judge evaluation flow: Browser-based judges navigate to the live deployment, interact with the UI, take screenshots, and assess functionality, accessibility, and demo readiness.
- Authentication:
BROWSERBASE_API_KEYandBROWSERBASE_PROJECT_ID.
8. Microlink — Screenshot API
Used by: web/
Microlink provides live screenshot thumbnails for the pipeline visualization.
- DeployNode (
web/components/pipeline/DeployNode.tsx): Fetches a screenshot of each Vercel deployment URL viahttps://api.microlink.io/?url=<url>&screenshot=true&meta=false&embed=screenshot.url. The screenshot auto-refreshes every 5 seconds with cache busting to show the latest build state. - PreviewNode (
web/components/flow/PreviewNode.tsx): Same screenshot logic for the/livesimulation page. - Why not iframes: Vercel deployments set
X-Frame-Options: DENYby default, which blocks iframe embedding. Microlink sidesteps this by rendering the page server-side and returning a screenshot image.
Getting Started
Prerequisites
- Bun (v1.3+)
- Modal account + CLI (
pip install modal) - GitHub Personal Access Token
- Vercel Token
- Anthropic API Key
Environment Variables
Create api/.env:
# Core
PORT=3000
CALLBACK_BASE_URL=https://your-server-url
# GitHub
GITHUB_TOKEN=ghp_...
GIT_USER_NAME=your-github-username
GIT_USER_EMAIL=your@email.com
# Vercel
VERCEL_TOKEN=...
# AI Providers
ANTHROPIC_API_KEY=sk-ant-...
CLAUDE_CODE_OAUTH_TOKEN=...
OPENAI_API_KEY=sk-proj-...
OPENROUTER_API_KEY=sk-or-v1-...
# Worker
MODAL_IMPLEMENTATION_WORKER_URL=https://...
MODEL=sonnet
# Eval
EVAL_WS_URL=ws://localhost:3002/evaluate
EVALUATOR_WEBHOOK_URL=
Create web/.env.local:
NEXT_PUBLIC_API_URL=http://localhost:3000
Run Locally
# 1. Deploy the Modal worker
cd worker
modal deploy implementation_worker.py
# 2. Start the orchestrator API
cd api
bun install
bun run src/server.ts
# 3. Start the eval server (optional)
cd eval
bun install
bun run src/eval/server.ts
# 4. Start the frontend
cd web
bun install
bun run dev
Trigger a Task
curl -X POST http://localhost:3000/v1.0/task \
-H "Content-Type: application/json" \
-d '{
"taskDescription": "Build a real-time collaborative whiteboard app",
"workers": 3,
"workerDescriptions": [
"Full-stack engineer specializing in React and WebSockets",
"UI/UX focused developer with design system experience",
"Backend engineer focused on scalability and real-time sync"
],
"evaluator": {
"count": 1,
"role": "hackathon judge",
"criteria": "novelty, feasibility, demo readiness"
},
"model": "sonnet"
}'
Open http://localhost:3000 to create a task via the UI, or http://localhost:3000/live to watch builds in real-time.
Key Concepts
treemux-report
A CLI tool available inside each sandbox that Claude uses to report progress:
# Declare idea and plan
treemux-report start --idea "Collaborative whiteboard" --steps "Setup Next.js" "Add canvas" "WebSocket sync"
# After completing each step (commits + pushes automatically)
treemux-report step --index 0 --summary "Scaffolded Next.js with Tailwind"
# When done (writes PITCH.md + final push)
treemux-report done
Each command sends an HTTP callback to the orchestrator, which forwards it to the frontend via WebSocket.
Concurrency Model
- N workers run in parallel, each in a fully isolated Modal sandbox
- Each worker gets its own GitHub branch and Vercel deployment
- Workers report progress independently via HTTP callbacks
- The frontend aggregates all events into a unified real-time dashboard
- No worker depends on another — they race to complete the same task with different approaches
Evaluation Pipeline
- All workers complete →
ALL_DONEevent fires - API's eval bridge connects to the eval server via WebSocket
- Eval server creates a judging plan with AI-generated judge personas
- Each judge evaluates each project (text analysis + live browser testing via BrowserBase)
- Scores are normalized, composites computed, outliers detected
- Rankings + summary streamed back → API → frontend sidebar
License
Built for TreeHacks 2026.
Analysis
View
Metric
- 30
- 10
- 4
- 3
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FastAPIIn code
- Next.jsIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
- VercelClaimed
7 of 8 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- Claude CodeCommits
- CodexConfig
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
875 KB
Source files
201
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
ojpbarbosa/treehacks-26
222 files · 1.3 MB · @ 47390f8
Structure
Interface
31 files · 14%Screens, components and styles rendered to the user.
API & routing
20 files · 9%Request entry points: routes, handlers and controllers.
Application logic
38 files · 17%Domain rules, services and shared utilities.
Background jobs
5 files · 2%Work run outside a request: tasks, workers and schedules.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Markdown50%
- TypeScript46%
- Python4%
- CSS0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
web/package.json
npm · 14- @vercel/analytics
- @vercel/speed-insights
- @xyflow/react
- framer-motion
- lucide-react
- next
- react
- react-dom
- +6 more
eval/package.json
npm · 13- @anthropic-ai/claude-agent-sdk
- @browserbasehq/stagehand
- commander
- csv-parse
- dotenv
- modal
- ws
- zod
- +5 more
api/package.json
npm · 5- @vercel/sdk
- chalk
- nanoid
- +2 more
worker/pyproject.toml
pypi · 2- fastapi
- modal
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.