# Index: The SOTA Open-Source Browser Agent for Autonomous Web Tasks

This repository profile is provided by osrepos.com, an open source repository discovery platform.

Source: osrepos.com
Repository profile: https://osrepos.com/repo/lmnr-ai-flow
Generated for open source discovery and AI-assisted research.

Index is a cutting-edge open-source browser agent designed to autonomously execute complex tasks on the web. It transforms any website into an accessible API, enabling seamless integration and automation. Leveraging powerful reasoning LLMs with vision capabilities, Index simplifies web interactions and data extraction for developers.

GitHub: https://github.com/lmnr-ai/flow
OSRepos URL: https://osrepos.com/repo/lmnr-ai-flow

## Summary

Index is a cutting-edge open-source browser agent designed to autonomously execute complex tasks on the web. It transforms any website into an accessible API, enabling seamless integration and automation. Leveraging powerful reasoning LLMs with vision capabilities, Index simplifies web interactions and data extraction for developers.

## Topics

- ai
- ai-agent
- browser-agent
- llm
- python
- web-automation
- open-source
- sota

## Repository Information

Last analyzed by OSRepos: Mon Apr 27 2026 01:01:27 GMT+0100 (Western European Summer Time)
Detail views: 1
GitHub clicks: 3

## Safety Notice

OSRepos shares public repositories for knowledge and discovery only. Review source code, dependencies, licenses, and security implications before running or installing anything.

## Content

## Introduction

Index, developed by lmnr-ai, is a state-of-the-art open-source browser agent that empowers users to autonomously perform complex tasks on the web. It effectively turns any website into an accessible API, allowing for seamless integration into your projects with just a few lines of code. Index leverages powerful reasoning Large Language Models (LLMs) with vision capabilities, supporting models like Gemini 2.5 Pro, Claude 3.7 Sonnet, and OpenAI o4-mini, to navigate, interact with, and extract information from web pages intelligently.

## Installation

Getting started with Index is straightforward. You can install it using pip and set up the necessary browser dependencies.

bash
pip install lmnr-index 'lmnr[all]'

# Install playwright
playwright install chromium


After installation, remember to set up your model API keys (GEMINI_API_KEY, ANTHROPIC_API_KEY, OPENAI_API_KEY) in a `.env` file in your project root. For advanced observability, you can also include your LMNR_PROJECT_API_KEY.

## Examples

Index offers flexible ways to interact with the agent, whether through code, an interactive CLI, or a serverless API.

### Run Index with Code

You can integrate Index directly into your Python applications to perform tasks and extract structured data using Pydantic schemas.

python
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-pro-preview-05-06")
    agent = Agent(llm=llm)

    # Example of getting structured output
    output = await agent.run(
        prompt="Navigate to news.ycombinator.com, find a post about AI, extract its title and provide a concise summary.",
        output_model=NewsSummary
    )
    
    summary = NewsSummary.model_validate(output.result.content)
    print(f"Title: {summary.title}")
    print(f"Summary: {summary.summary}")
    
if __name__ == "__main__":
    asyncio.run(main())


### Run Index with CLI

For interactive use and quick tasks, Index provides a powerful command-line interface with features like browser state persistence, follow-up messages, and real-time streaming updates.

bash
index run


You can also run the CLI with your personal Chrome instance to leverage existing logged-in sessions:

bash
index run --local-chrome


### Use Index via API

For production environments, Index is available as a serverless API, managing remote browser sessions, agent infrastructure, and browser observability.

python
from lmnr import Laminar, LaminarClient

# Initialize tracing (optional, but recommended for observability)
Laminar.initialize(project_api_key="your_api_key")

# Initialize the client
client = LaminarClient(project_api_key="your_api_key")

for chunk in client.agent.run(
    stream=True,
    model_provider="gemini",
    model="gemini-2.5-pro-preview-05-06",
    prompt="Navigate to news.ycombinator.com, find a post about AI, and summarize it"
):
    print(chunk)


## Why Use Index?

Index stands out as a robust solution for web automation due to several key advantages:

*   **State-of-the-Art Performance**: It's built to be a leading open-source browser agent, capable of handling complex web tasks autonomously.
*   **Flexible LLM Integration**: Supports multiple powerful LLMs, including Gemini, Claude, and OpenAI models, allowing you to choose the best fit for your needs in terms of speed, cost, and accuracy.
*   **Structured Output**: Enables reliable data extraction by supporting Pydantic schemas, ensuring your extracted data is clean and usable.
*   **Advanced Observability**: Integrates with Laminar for comprehensive tracing of agent actions and browser sessions, providing deep insights into its operations.
*   **Ease of Use**: With simple `pip install` and intuitive CLI and API options, Index is designed for quick deployment and integration.

## Links

*   **GitHub Repository**: [https://github.com/lmnr-ai/index](https://github.com/lmnr-ai/index){:target="_blank"}
*   **Documentation**: [https://docs.lmnr.ai/index-agent/getting-started](https://docs.lmnr.ai/index-agent/getting-started){:target="_blank"}
*   **Chat UI**: [https://lmnr.ai/chat](https://lmnr.ai/chat){:target="_blank"}
*   **Serverless API**: [https://docs.lmnr.ai/index-agent/api/getting-started](https://docs.lmnr.ai/index-agent/api/getting-started){:target="_blank"}
*   **Join Discord**: [https://discord.gg/nNFUUDAKub](https://discord.gg/nNFUUDAKub){:target="_blank"}
*   **Follow on X (Twitter)**: [https://x.com/lmnrai](https://x.com/lmnrai){:target="_blank"}