🌊 surf.new
A playground for testing web agents powered by Steel.dev. Experience how different AI agents can surf and interact with the web just like humans do.
SFO.to.HND.SURF.DEMO.mp4
🌟 Features
- Test multiple web agents in a controlled environment
- Real-time browser interaction visualization
- Support for various AI providers (Claude, GPT-4, etc.)
- Built with modern web technologies (Next.js 15, FastAPI, Steel SDK)
- Beautiful UI powered by Shadcn UI and Tailwind CSS
🚀 Getting Started
Prerequisites
- Node.js 18+ and npm
- Python 3.11+
- Steel API Key (sign up at steel.dev) or Local running instance
Installation
- Clone the repository:
git clone https://github.com/steel-dev/surf.new
cd surf.new- Install frontend dependencies:
- Install backend dependencies:
python -m venv venv source venv/bin/activate # On Windows: .\venv\Scripts\activate pip install -r requirements.txt
- Set up environment variables:
cp .env.example .env.local
Edit .env.local and add your Steel API key and other required variables.
Running Locally
Run the development server:
Windows Users
If you're developing on Windows, you should use the Windows-specific command:
Technical Reason: Windows has two different asyncio event loop implementations:
- SelectorEventLoop (default): Uses select-based I/O and doesn't support subprocesses properly
- ProactorEventLoop: Uses I/O completion ports and fully supports subprocesses
Playwright requires subprocess support to launch browsers. When hot reloading is enabled, the default SelectorEventLoop is used, causing a
NotImplementedErrorwhen Playwright tries to create a subprocess. Reference Issue: #32
This will start both the Next.js frontend (port 3001) and FastAPI backend (port 8000).
Visit http://localhost:3001 to start using surf.new!
🤝 Contributing
We welcome contributions! Here's how you can help:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
🔗 Links
- Steel.dev - Our main platform
- Documentation
- Discord Community
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
💪 Built With
- Next.js 15 - React Framework
- FastAPI - Python Backend
- Steel SDK - Browser Automation
- Shadcn UI - UI Components
- Tailwind CSS - Styling
- Vercel AI SDK - AI Chat Interface
- Langchain - Agent Framework
Made with ❤️ by the Steel team