{"slug": "deeplook-is-open-source-real-chrome-a-cli-an-http-api-and-mcp", "title": "DeepLook is open source: real Chrome, a CLI, an HTTP API, and MCP", "summary": "A developer released DeepLook, an Apache-2.0 open-source browser tool that renders public web pages in real Chrome and returns visible text plus title, final URL, HTTP status and browser observations for AI agents. The same page-reading capability is exposed through a local CLI, a self-hosted HTTP API (DeepLook-API, with authentication, quotas and concurrency limits) and a stdio MCP server offering a deeplook_open tool. It requires Node.js 22.14+ and Chrome, reads one public HTTP(S) URL per call, keeps the Chrome sandbox enabled, and rejects private, local and metadata addresses including redirects and page resources.", "body_md": "I’m releasing **DeepLook**, an open-source browser tool that turns public web pages into readable text and structured data for AI agents.\n\nIt runs real Chrome, renders the page, and gives your application the visible text together with its title, final URL, HTTP status, and browser observations. You can use the same reading capability from a local CLI, a self-hosted HTTP API, or a coding agent through MCP.\n\nThe original project code is licensed under **Apache-2.0**. You can inspect it, run it on your own infrastructure, and contribute improvements.\n\nResearch and coding agents often need the actual page behind a URL. A lightweight HTTP fetch works for many sources; other pages need JavaScript rendering before useful text appears.\n\nDeepLook handles that browser-reading step. Give it one public URL and consume the result in your own workflow. Search, research planning, deciding which links to follow, and writing a final answer remain your application’s responsibility.\n\nI wanted the boundary to be easy to understand: a page request, a structured result, and an explicit error when the page cannot be read.\n\nYou need **Node.js 22.14+** and **Google Chrome**. Local use does not require a DeepLook account, an LLM API key, or a shared project token.\n\n```\ngit clone https://github.com/sayhitogambit/DeepLook.git\ncd DeepLook\nnpm ci\nnpm run build\n\nnode dist/cli.js doctor --json\nnode dist/cli.js open https://example.com\n```\n\nUse JSON when your application needs page metadata, or the versioned machine format when you need a consistent success/error envelope:\n\n```\nnode dist/cli.js open https://example.com --json\nnode dist/cli.js open https://example.com --machine --timeout-ms 30000\n```\n\nThese commands install from GitHub source. They do not depend on a public npm registry release. You can also build and install your own tarball with `npm pack`.\n\nDeepLook includes a **stdio MCP server**. After building the project, configure your MCP host to launch it:\n\n```\n{\n  \"mcpServers\": {\n    \"deeplook\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/DeepLook/dist/cli.js\", \"mcp\"]\n    }\n  }\n}\n```\n\nConfiguration field names vary between hosts. The command exposes `deeplook_open`, which accepts a URL and an optional timeout:\n\n```\n{\"url\":\"https://example.com\",\"timeoutMs\":30000}\n```\n\nSuccessful calls return page text and a structured result. Failed calls return a typed error. Each MCP process allows one active read, and cancellation propagates to the browser operation.\n\nPage content remains untrusted input. An agent must treat instructions found inside a page as source material, rather than instructions from its user or developer.\n\n[DeepLook-API](https://github.com/sayhitogambit/DeepLook-API) wraps the browser CLI with an HTTP interface, authentication, account quotas, concurrency limits, and lifecycle management.\n\nIts page-reading endpoint is:\n\n```\nPOST /v1/open\nAuthorization: Bearer <your-own-browser-key>\nContent-Type: application/json\n\n{\"url\":\"https://example.com\",\"timeoutMs\":30000}\n```\n\nThe API returns the page object on success. It reports errors such as invalid input, unauthorized access, an exhausted quota, a busy browser, a timeout, or a page that returned a challenge instead of useful content.\n\nThe operator generates and manages the server’s credentials. Administrator credentials and client browser keys have separate roles. There is no founder-owned token for everyone to share, and the source does not provide access to my accounts or infrastructure.\n\nThe [credential guide](https://github.com/sayhitogambit/DeepLook-API/blob/main/docs/credentials.md) walks through creating your own secrets and keeping them outside Git. The CLI and MCP tool can also connect to your own API through private environment variables.\n\nThe project reads **one public HTTP(S) URL per call**. It uses stock Chrome and keeps its sandbox enabled. It checks outbound destinations, including redirects and page resources, and rejects private, local, and metadata addresses.\n\nIt also has clear limits:\n\nThose boundaries matter when you build an agent around a browser. The [technical reference](https://github.com/sayhitogambit/DeepLook/blob/main/docs/reference.md) documents the response contract, errors, deadlines, cancellation, and cleanup behavior.\n\nThe repositories include deterministic tests, tests with a real sandboxed browser, package-installation checks, and HTTP/container integration tests. They exercise practical failure cases as well as successful reads.\n\nThe README is available in **English, Brazilian Portuguese, and Simplified Chinese**. The website source also includes an optional double-opt-in newsletter with confirmation and unsubscribe links; self-hosters configure their own SMTP and private storage. The browser and API themselves do not require email credentials.\n\nI’m opening the project early so developers can try real workflows, inspect the implementation, and help shape what comes next. Useful contributions include reproducible page-reading bugs, documentation improvements, platform testing, and agent integrations.\n\nStart with the [DeepLook repository](https://github.com/sayhitogambit/DeepLook), follow the [getting-started guide](https://github.com/sayhitogambit/DeepLook/blob/main/docs/getting-started.md), and tell me what you build.\n\n*This announcement was prepared with AI assistance and checked against the released project.*", "url": "https://wpnews.pro/news/deeplook-is-open-source-real-chrome-a-cli-an-http-api-and-mcp", "canonical_source": "https://dev.to/sayhitogambit/deeplook-is-open-source-real-chrome-a-cli-an-http-api-and-mcp-2e15", "published_at": "2026-10-20 20:46:46+00:00", "updated_at": "2026-10-20 20:48:08.001932+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "agent-protocols", "ai-crawlers"], "entities": ["DeepLook", "DeepLook-API", "Google Chrome", "Node.js", "GitHub", "Apache-2.0", "MCP"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/deeplook-is-open-source-real-chrome-a-cli-an-http-api-and-mcp", "markdown": "https://wpnews.pro/news/deeplook-is-open-source-real-chrome-a-cli-an-http-api-and-mcp.md", "text": "https://wpnews.pro/news/deeplook-is-open-source-real-chrome-a-cli-an-http-api-and-mcp.txt", "jsonld": "https://wpnews.pro/news/deeplook-is-open-source-real-chrome-a-cli-an-http-api-and-mcp.jsonld"}}