Inspiration

Circular works as an extension for AI-native IDEs, offering an agentic approach to browser testing that combines the simplicity of natural language commands with the depth of DevTools monitoring. The inspiration for this project came from two of our team members, who had written over 300,000 lines of “vibe coding” while working at a startup this summer. They experienced firsthand the limitations of Cursor, particularly that it couldn’t actually test the code it generated.

What it does

Circular solves Cursor’s primary flaw: it can’t verify if its code works. Our agent which works as an extension to AI-native IDEs like Cursor runs tests in the browser, monitors DevTools for issues including console logs, network requests, storage changes, and page errors in real-time, and learns from past solutions to solve similar bugs more efficiently. Any issues identified or solutions generated using our agent are then embedded into a database and fed into a dashboard where any user can identify and review previous work that the agent has completed, building a growing library of usable solutions to common problems. In combination, Circular's abilities make Cursor’s vibe coding workflow more robust by adding actual validation and memory of prior fixes, greatly accelerating the coding and debugging process.

How we built it

We built our agent using Stagehand (built on Playwright) to automate browser interactions. Alongside this, we created a Next.js + pgVector + Supabase web app to store logs of past issues and their resolutions, enabling the agent to match current problems against historical fixes.

  • LLMs: We used the Cerebras API and open-source models to generate template files for potential uploads.
  • Embeddings: We served an embeddings model locally via Ollama (using embedding-gemma for size efficiency) to convert code into numerical vectors for similarity checks.
  • Integration: The agent integrates directly with Cursor, extending its context and ensuring it can understand testing output.

Challenges we ran into

  • Choosing models small enough to run locally without sacrificing too much performance (e.g., embedding-gemma at ~600MB vs. Qwen3 embeddings at ~8GB).
  • Defining Cursor rules so our extension could provide the right testing context.
  • Figuring out how to give Stagehand access to DevTools and formatting error outputs so Cursor could understand them.
  • Efficiency: waiting for the agent to fully interact with the created project was slower than ideal.

Accomplishments that we're proud of

We’re proud to have built a product that meaningfully improves on Cursor, one of the most popular AI coding tools today. Circular integrates seamlessly into Cursor, enhances its capabilities, and has the potential to revolutionize coding workflows by bridging the gap between vibe coding and validation.

What we learned

  • How to build browser agents with Stagehand and Playwright.
  • How to serve and use local models with Ollama.
  • How to design embedding-based retrieval for problem–solution matching.
  • How critical context management is when working with AI-native IDEs.
  • Development process from start to end creating a usable product!

What's next for Circular

  • Deployment as extension or CLI.
  • Improved speed and efficiency.
  • Support for voice-based model testing.
  • Support for testing the uploading of more file formats
  • Running the browser agent fully on local models.
  • Expanding access so that every coder can use it.
  • Supporting OAuth testing.

Built With

  • cerebras
  • next.js
  • ollama
  • playwright
  • stagehand
  • supabase
Share this project:

Updates