index
by lmnr-ai
The SOTA Open-Source Browser Agent for autonomously performing complex tasks on the web
# Add to your Claude Code skills
git clone https://github.com/lmnr-ai/index<a href="https://github.com/lmnr-ai/index"></a>
<a href="https://www.ycombinator.com/companies/laminar-ai">
</a>
<a href="https://x.com/lmnrai">
</a>
<a href="https://discord.gg/nNFUUDAKub">
</a>
Index
Index is a state-of-the-art open-source browser agent that autonomously executes complex web tasks. It turns any website into an accessible API and can be seamlessly integrated with just a few lines of code.
- [x] Powered by reasoning LLMs with vision capabilities.
- [x] Gemini 2.5 Pro (really fast and accurate)
- [x] Claude 3.7 Sonnet with extended thinking (reliable and accurate)
- [x] OpenAI o4-mini (depending on the reasoning effort, provides good balance between speed, cost and accuracy)
- [x] Gemini 2.5 Flash (really fast, cheap, and good for less complex tasks)
- [x]
pip install lmnr-indexand use it in your project - [x]
index runto run the agent in the interactive CLI - [x] Supports structured output via Pydantic schemas for reliable data extraction.
- [x] Index is also available as a serverless API.
- [x] You can also try out Index via Chat UI.
- [x] Supports advanced browser agent observability powered by open-source platform Laminar.
prompt: go to ycombinator.com. summarize first 3 companies in the W25 batch and make new spreadsheet in google sheets.
https://github.com/user-attachments/assets/2b46ee20-81b6-4188-92fb-4d97fe0b3d6a
Documentation
Check out full documentation here
Quickstart
Install dependencies
pip install lmnr-index 'lmnr[all]'
# Install playwright
playwright install chromium
Setup model API keys
Setup your model API keys in .env file in your project root:
GEMINI_API_KEY=
ANTHROPIC_API_KEY=
OPENAI_API_KEY=
# Optional, to trace the agent's actions and record browser session
LMNR_PROJECT_API_KEY=
Run Index with code
import asyncio
from index import Agent, GeminiProvider
from pydantic import BaseModel
from lmnr import Laminar
import os
# to trace the agent's actions and record browser session
Laminar.initialize()
# Define Pydantic schema for structured output
class NewsSummary(BaseModel):
title: str
summary: str
async def main():
llm = GeminiProvider(model="gemini-2.5...