--- title: LangChain | Lightcone description: Use Lightcone as a document loader and browser tool in LangChain agents. --- Use Lightcone with [LangChain](https://langchain.com) as a **document loader** to extract web page content, or as a **tool** that gives LangChain agents the ability to browse the web. ## Install Terminal window ``` pip install langchain-tzafon tzafon ``` Terminal window ``` npm install @langchain/tzafon @tzafon/lightcone ``` ## Document loader Load web page content into your LangChain pipeline: ``` from langchain_tzafon import TzafonLoader loader = TzafonLoader( urls=["https://example.com", "https://example.com/about"], kind="browser", ) documents = loader.load() for doc in documents: print(doc.page_content[:200]) print(doc.metadata["url"]) ``` ``` import { TzafonLoader } from "@langchain/tzafon"; const loader = new TzafonLoader({ urls: ["https://example.com", "https://example.com/about"], kind: "browser", }); const documents = await loader.load(); for (const doc of documents) { console.log(doc.pageContent.slice(0, 200)); console.log(doc.metadata.url); } ``` ## Browser tool for agents Give a LangChain agent the ability to navigate and interact with web pages: ``` from langchain_tzafon import TzafonBrowserTool from langchain.agents import initialize_agent, AgentType from langchain_openai import ChatOpenAI tools = [TzafonBrowserTool()] agent = initialize_agent( tools, ChatOpenAI(model="gpt-4o"), agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION, ) result = agent.run("Go to news.ycombinator.com and tell me the top 3 stories") print(result) ``` ## How it works - **Document loader**: Creates a Lightcone browser session, navigates to each URL, extracts the HTML content, and returns it as LangChain `Document` objects with metadata (URL, title). - **Browser tool**: Wraps Lightcone actions (navigate, click, type, screenshot, and more) as LangChain tools that an agent can invoke during its reasoning loop. The document loader uses Lightcone’s stealth browser, so it can access pages that block simple HTTP requests or require JavaScript rendering. ## Resources - [LangChain Python integration docs](https://docs.langchain.com/oss/python/integrations/providers/overview) - [LangChain JS integration docs](https://docs.langchain.com/oss/javascript/integrations/providers/overview) ## See also - [**CrewAI**](/integrations/crewai/index.md) — multi-agent workflows with browser tools - [**Web scraping**](/use-cases/web-scraping/index.md) — scraping patterns that work with document loaders - [**Computers**](/guides/computers/index.md) — direct browser control without a framework