only-cli/oc: Turn any website into a compact CLI tailored for AI agents. Browse the web in hundreds of tokens, no

github.com · 2026-08-19 · by Long Nguyen ·github
Turn any website into a compact CLI tailored for AI agents. Browse the web in hundreds of tokens, not tens of thousands. - only-cli/oc

only-cli/oc

Turn any website into a compact CLI tailored for AI agents. Browse the web in hundreds of tokens, not tens of thousands. - only-cli/oc

53 stars · 1 forks

README

only-cli

Turns websites into a command line interface for AI agents. oc open <url> fetches a page and hands back a compact, numbered view instead of raw HTML or a screenshot, so agents like Claude Code, Codex, and Antigravity can browse without burning tokens. It also gets past blocks that stop naive fetchers on some sites, by talking to the page the way a real browser would. $ oc open news.ycombinator.com

Hacker News

[1] Show HN: I built a tiny CSV toolkit [2] 312 comments ... actions: do <n> | read <n> | next | raw

$ oc do 1

A typical page is tens of thousands of tokens of markup; the view above fits in a few hundred. No per-site adapters required, no browser extension, no daemon. If you are an LLM reading this repository, llms.txt is the short version. Install npm install -g @only-cli/oc

Requires Node 20+. Requests impersonate Chrome via impers; falls back to native fetch if impers is unavailable. For AI agents Add one line to your agent's instructions file (CLAUDE.md, AGENTS.md, or equivalent):

When you need content from a web page, run npx @only-cli/oc open <url> instead of fetching raw HTML. Run npx @only-cli/oc --help once to learn the commands.

Claude Code users can install the skill instead: copy skills/only-cli/ into .claude/skills/, or run npx skills add only-cli/oc, which also works in Cursor, Codex, Copilot, and others via skills.sh. No setup at all also works: npx @only-cli/oc runs without a global install, and teaches its own commands through --help and the actions: line on every render. Commands oc open <url> fetch and render a page with numbered actions oc do <n> follow the numbered link [n], or read [n] if it is text oc find <query> where a string appears on the page already open oc read <n> full text of the region at [n], up to 2000 tokens oc next the next budget worth of the page already open oc raw [url] distilled markdown of the whole page oc fill <n> <text> type into a numbered input (v0.2) oc submit [n] submit a form (v0.2)

Flags: --budget <tokens> (default 500), --json, --html (raw as cleaned HTML), --session <name>, --verbose/-v (metrics on stderr, or export OC_VERBOSE=1). oc open remembers the page it rendered in a JSON file per session under ~/.only-cli (override with OC_HOME), so oc do 3 follows [3] without the agent ever handling a URL. Pages longer than the budget say what they left out; oc find, oc read <n>, and oc next read the rest without refetching the page. The budget is a target rather than a hard cap: a page that would only run a little long is printed whole rather than cut, since one extra tool call costs far more than the tokens it would have saved. Supported websites Works on any mostly-static site with no per-site setup: news sites, blogs, documentation, forums, search engines. On top of that, clis/ ships tuned shortcuts for:

website domain shortcuts

Hacker News news.ycombinator.com top, new, item <id>, user <name>

Reddit reddit.com (via old.reddit.com) sub <name>, post <id>, user <name>, search <query>

GitHub github.com repo <owner> <name>, user <name>, search <query>, trending, issues <owner> <name>

X x.com user <name>, post <id>

LinkedIn linkedin.com profile <name>, company <name>, jobs <query> (public guest views)

DuckDuckGo duckduckgo.com search <query>, lite <query>

Bing bing.com search <query>, news <query>

Stack Overflow stackoverflow.com (via Atom feeds) question <id>, tag <name>, user <id>, recent

Yahoo Finance finance.yahoo.com quote <symbol>, news <symbol>, history <symbol>, lookup <query>, markets, gainers, losers, trending

YouTube youtube.com video <id>, channel <name>

A few of these (X, Stack Overflow, YouTube) read pages that look login-gated or JS-only from the outside, by finding the server-rendered HTML, feed, or inline data the page already ships without a login. Not supported yet: pages that only render with JavaScript, sites behind logins, and sites with hard bot challenges that expose no feed. Want a website on that list? Open a pull request, or an issue naming the site — see CONTRIBUTING.md. Benchmarks Full methodology, per-task numbers, and other agents/models live in only-cli/benchmarks. The short version, measured against live sites across a news front page, a Reddit discussion, a search results page, and more:

method tokens for 6 real pages notes

oc open 1,936 only method that returned real content on every page

Jina Reader 16,402 blocked on the Reddit page

raw HTML fetch 177,685 blocked on the search page

Status Early. v0.1 covers static pages, budget-aware rendering, and offline tests. Sessions, oc do <n>, oc find <query>, oc read <n>, and oc next are in, the rest of the actions (fill, submit, back) land in v0.2, and a lazy headless fallback for script-heavy pages in v0.3. Known limits, honestly: no JavaScript rendering yet, no sites behind logins yet, and pages behind hard bot challenges may still refuse the tool. Contributors

only-cli, creator and maintainer

License MIT

source

github.com · 5 images · 112 links

Comments (0)

No comments yet