Every company has legacy code. Decades-old COBOL, Fortran and Java still run payroll, banks and inventory, but they have no APIs, so AI agents can't touch them. REPLIC8 turns a GitHub link into tested tools that any AI agent can call, without rewriting a single line.
Inspiration
Our internships followed the same script: one real project, then a summer of refactoring legacy code so it fit modern systems. We untangled Java nobody had touched in years and wrote Claude skills just to keep old workflows alive. Each time we thought: there has to be a better way.
Legacy software isn't going anywhere. The people who wrote it have moved on, the docs are gone, and AI tools can't plug into it. So company engineers spend months on careful, mundane, expensive rewrites instead of what they were hired for: solving problems.
At HackUTD it clicked: what if you never had to rewrite legacy code at all?
What it does
REPLIC8 makes legacy code callable and easy to understand.
- One GitHub link in, agent-ready tools out. REPLIC8 wraps the original code without changing a line. It finds the real functions, and NVIDIA Nemotron picks which ones become tools. Eight languages run today: COBOL, Fortran, Java, C, Pascal, Python, Perl and PHP.
- Nothing goes live untested. Every tool runs against the real code before it's published, and each answer cites the source file, line and commit it came from.
- One gateway for every system. AI agents connect over MCP (Claude Code or any MCP client), and apps use REST. An agent can pull a repair record from a COBOL system and stock levels from a Java one, then combine them into one answer.
- It repairs itself. Rename a function in the legacy code and REPLIC8 notices, fixes the tool, and saves the repair only if every answer stays identical. In testing, a COBOL rename was repaired in about 6 seconds.
- See your whole universe. A live dashboard maps legacy and modern systems side by side, connected by the data they really share, like a part ID. Modern systems join from their OpenAPI file.
- Secure by default. Legacy code runs in a locked sandbox with no network. The AI never writes code, tools are read-only, and every call needs a scoped token.
How we built it

The pipeline: Fetch, Build, Extract, Propose, Guard, Test, Publish.
- Fetch and build: REPLIC8 downloads the repo at one exact commit and compiles it inside a Docker sandbox. Every run gets a fresh container with no network, a read-only disk and a non-root user.
- Extract: parsers list the functions that really exist, with their line numbers. Each file is parsed in its own time-limited process, because one parser froze on garbage COBOL.
- Propose and guard: Nemotron drafts tools from that list. REPLIC8 rejects any tool that doesn't match a real function, and it builds every call itself.
- Test: each tool runs up to 5 times on the real code, and the first call is repeated to catch unstable answers. The recorded answers become the tool's output rules, replacing the model's guesses.
- Publish: tested tools are saved as numbered versions, so rolling back is one click.
Stack: a Python and FastAPI backend that serves the same tools over MCP and REST. A React and Vite dashboard, with React Flow drawing the live system graph and three.js animating the landing page. Over 270 backend tests and about 40 frontend tests. The dashboard is live on Vercel at replic8.work, and the backend runs on our own machine with Docker Desktop, shared publicly through Tailscale Funnel.
NVIDIA track: Nemotron beyond a chatbot
Nobody chats with Nemotron in REPLIC8. It works as one step of an agent workflow that plans, acts and checks its own work:
- Plan: Nemotron gets the parser's list of real functions plus the source code, with secrets removed. It returns structured JSON: which functions to expose, read or write, and the inputs and outputs of each.
- Check: a guard rejects anything invented. On a bad answer, Nemotron gets one retry with our error message, never its own earlier text.
- Act: REPLIC8 runs each tool in the sandbox and publishes only what passes.
- Repair: when the code changes, Nemotron reads the code diff and proposes a fix. The fix is replayed against the recorded answers before it's saved.
- Tools for other agents: Nemotron's output becomes MCP tools that other AI agents call. It's an agent that builds tools for agents.
We used nemotron-3.5-super-vl-120b-a12b through NVIDIA's API, with reasoning mode off: about 2 seconds per proposal.
8090 track: legacy modernization
The challenge asks to make old software easier to understand, improve or replace. REPLIC8 covers each:
- Understand: every system's functions get plain descriptions, a cited source line, and a thoughtful place on a map of how the systems connect.
- Improve: old code becomes usable by modern agents today, and it keeps working through code changes thanks to self-repair.
- Replace: every tool's recorded answers act as a test suite. A replacement can be checked against them before the old system is turned off.
HackUTD: Best Design
Modernizing legacy software usually takes specialists. We designed REPLIC8 to feel like the future and to be simple enough for anyone to use.
- Feels new: a black starfield where the 8 in REPLIC8 becomes a silver infinity loop that guides you through the story. In the dashboard, every system is drawn as a constellation.
- Simple: paste a GitHub link, follow a live checklist, and try any operation with one click. No code needed.
- Written for people: errors explain what happened and what to do next in plain English, never as status codes or stack traces.
- Built for everyone: read-only by default, a Motion On/Off button, keyboard and screen-reader support, and it works on mobile.
Challenges we ran into
- Creating a frontend that did not look like AI-Slop
- Optimizing prompt structures within API requests to improve output quality and enhance resilience against red-teaming attempts.
- Showcasing how our app is secure, trust worthy and bullet proof.
Accomplishments that we're proud of
- The model does not a hallucinate, and cannot be hacked via prompt injection or token bypass.
- The model supports around 90 % of repositories that are more than 25 years old
- The frontend of the product shows a premium product
What we learned
- How to take advantage of Claude skills and plugins.
- Using technologies like Graphify and Obsidian to lower token usage and allow our agents to communicate more efficiently.
- Dividing work as a team, and orchestrating different agents and plans to solve a large goal.
What's next for REPLIC8
- Set the backend up so it does not run on a cloudflare tunnel server. Instead it is hosted on AWS cloud or Azure.
- Set up billing for our saas product
- Apply to Y-combinator
Built With
- caddy
- claude-code
- cloudflare
- docker
- fast-api
- github
- javascript
- mcp
- nemotron
- nvidia
- python
- react
- tree-sitter
- ubuntu
- vercel