https://github.com/steel-dev/surf.new
🌊 An open-source alternative to OpenAI Operator
https://github.com/steel-dev/surf.new
ai-agents browser-automation
Last synced: 6 months ago
JSON representation
🌊 An open-source alternative to OpenAI Operator
- Host: GitHub
- URL: https://github.com/steel-dev/surf.new
- Owner: steel-dev
- License: mit
- Created: 2025-01-30T22:32:55.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-05-14T15:00:38.000Z (6 months ago)
- Last Synced: 2025-05-14T16:21:43.583Z (6 months ago)
- Topics: ai-agents, browser-automation
- Language: TypeScript
- Homepage: https://surf.new
- Size: 27.9 MB
- Stars: 430
- Watchers: 4
- Forks: 74
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🌊 surf.new
A playground for testing web agents powered by [Steel.dev](https://steel.dev). Experience how different AI agents can surf and interact with the web just like humans do.
https://github.com/user-attachments/assets/cc50c603-1cb8-49b1-8910-251b6beec228
## 🌟 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](https://steel.dev) (sign up at steel.dev) or Local running instance
### Installation
1. Clone the repository:
```bash
git clone https://github.com/steel-dev/surf.new
cd surf.new
```
2. Install frontend dependencies:
```bash
npm install
```
3. Install backend dependencies:
```bash
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
pip install -r requirements.txt
```
4. Set up environment variables:
```bash
cp .env.example .env.local
```
Edit `.env.local` and add your Steel API key and other required variables.
### Running Locally
Run the development server:
```bash
npm run dev
```
> ### Windows Users
>
> If you're developing on Windows, you should use the Windows-specific command:
>
> ```bash
> npm run dev:win
> ```
>
> **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 `NotImplementedError` when Playwright tries to create a subprocess.
> Reference Issue: https://github.com/steel-dev/surf.new/issues/32
This will start both the Next.js frontend (port 3001) and FastAPI backend (port 8000).
Visit [http://localhost:3001](http://localhost:3001) to start using surf.new!
## 🤝 Contributing
We welcome contributions! Here's how you can help:
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## 🔗 Links
- [Steel.dev](https://steel.dev) - Our main platform
- [Documentation](https://docs.steel.dev)
- [Discord Community](https://discord.gg/steel-dev)
- [Twitter](https://twitter.com/steeldotdev)
## 📝 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 💪 Built With
- [Next.js 15](https://nextjs.org/) - React Framework
- [FastAPI](https://fastapi.tiangolo.com/) - Python Backend
- [Steel SDK](https://steel.dev) - Browser Automation
- [Shadcn UI](https://ui.shadcn.com/) - UI Components
- [Tailwind CSS](https://tailwindcss.com/) - Styling
- [Vercel AI SDK](https://sdk.vercel.ai/) - AI Chat Interface
- [Langchain](https://python.langchain.com/docs/introduction/) - Agent Framework
---
Made with ❤️ by the Steel team