{"repo":"jmagly/carbonyl-agent","free":true,"listed":false,"github":"https://github.com/jmagly/carbonyl-agent","clone":"git clone https://github.com/jmagly/carbonyl-agent.git","description":"Python SDK for the Carbonyl terminal browser. Persistent named sessions, daemon mode, realistic browser fingerprinting, screen-text inspection, and host-browser cookie import. Lightweight Selenium/Playwright alternative purpose-built for LLM agents and scraping that needs a real browser but not a real display.","language":"Python","stars":11,"topics":["ai-agents","bot-detection","browser-automation","carbonyl","chromium","headless-browser","llm","pexpect","playwright-alternative","pty"],"license":"AGPL-3.0","category":"ai-agents","readme_excerpt":"O O \\ / O —— Cr —— O / \\ O O carbonyl-agent Python automation SDK for the Carbonyl headless browser Get Started · Session API · Daemon Mode · Bot Detection · Examples --- What carbonyl-agent Is carbonyl-agent is the Python automation SDK for Carbonyl — a Chromium-based headless browser that renders into terminal text. The SDK spawns Carbonyl via PTY, parses the screen via pyte , and exposes a high-level API for navigation, clicking, text extraction, and session persistence. It is designed for agent-driven web interaction: scripted scraping, automated form submission, and LLM-driven browsing loops that need a real browser but not a real display. Unlike Playwright or Selenium, carbonyl-agent returns terminal text , not a DOM. This makes it fast (no screenshot decode), cheap (no GPU, no window server), and well-suited for the context windows of LLM-driven agents. --- Why This Matters For Developers A real browser, cheap and scriptable. Most automation stacks require either a full display server (Selenium + Xvfb) or a heavyweight DevTools protocol (Playwright CDP). carbonyl-agent gives you Chromium rendering through a PTY — pip install , call open() , read page text() . Named sessions persist cookies across runs; daemon mode keeps a browser warm across short-lived scripts. For Agents Rendered text is the native LLM format. An LLM consuming page text() gets the page as a human would read it in a terminal — headings, lists, table rows — without DOM noise or screenshot OCR. Built-in","default_branch":null,"files":null,"tree":[],"storefront":"/r/jmagly","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/jmagly/carbonyl-agent/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}