# The same URL-to-Markdown job, run on your machine instead of Jina’s

[Jina AI Reader](https://jina.ai/reader) converts a URL to LLM-friendly Markdown when you prepend `https://r.jina.ai/`: its servers fetch the page, render it in headless Chrome when a lightweight fetch is not enough, and return clean text. Ghostget’s `read` command does the same job as a local CLI: the request leaves your machine directly, and the Markdown lands on your disk if you ask it to.

This page describes Jina AI Reader from its [product and pricing page](https://jina.ai/reader) and the [jina-ai/reader open-source repository](https://github.com/jina-ai/reader), both checked September 26, 2026, and Ghostget v0.18.40.

## A prefix service versus a local command

Reader’s interface is a URL prefix: `https://r.jina.ai/https://example.com` returns the page as Markdown from any client that can open a link. Request headers tune the fetch: a browser-engine choice between a lightweight fetcher and headless Chrome, CSS selectors that target or remove elements, cache bypass and tolerance, hosted proxy options, image captioning, PDF and Office-document parsing, and custom JavaScript run before extraction. A sibling prefix, `s.jina.ai`, turns a search query into Markdown results, and `mcp.jina.ai` exposes the same tools as an MCP server.

Ghostget’s interface is a command: `ghostget read <url>` prints the page as Markdown to stdout, and `ghostget <url> --output <dir>` saves it with its capture record into a local vault that `ghostget search` can query without an embedding model. There is no hosted step and no prefix to route through; the result is a file you own.

## Rate limits, keys, and tokens

Reader meters by request count and output tokens. Anonymous use runs at 20 requests per minute per IP. A free or paid API key raises the cap to 500 per minute, premium keys reach 5,000, and keyed reads count the tokens in each response against a balance that starts at 10 million free tokens. The `s.jina.ai` search endpoint bills a fixed token count per request and requires a key, and the hosted proxy pool that routes around bot challenges is keyed too.

Ghostget has no key and no meter. One read is one HTTP request from your network, or a capped internal render at two browsers at a time when the page needs JavaScript. The ceiling is your connection, not a plan.

## An open-source core under a hosted service

The [jina-ai/reader](https://github.com/jina-ai/reader) repository is the Apache-2.0 open-source branch of the code behind `r.jina.ai` and `s.jina.ai`. It runs stateless or with bucket caching, and the MongoDB-backed storage layer of the hosted service is not included. A published Docker image bundles headless Chrome and LibreOffice, so the engine is genuinely self-hostable; the keys, rate tiers, and proxy pool are the service around it.

Ghostget is MIT licensed and entirely local. There is no hosted tier to outgrow, and nothing to self-host because the CLI on your machine is the whole product. The same install also covers media archiving and connected-account actions, which Reader’s URL-in, text-out shape does not.

## Side by side

| Decision | Jina AI Reader | Ghostget |
| --- | --- | --- |
| Interface | A URL prefix or API call; header-tuned fetching | `ghostget read <url>`, a local command |
| Where the fetch runs | Jina’s servers, choosing between a lightweight fetcher and headless Chrome | Your machine; a capped internal render only when the page needs JavaScript |
| Cost | Free at 20 requests a minute without a key; a key reaches 500 and meters output tokens against a topped-up balance | Free, MIT licensed, no meter |
| Where results live | In the HTTP response; Jina caches pages on its side unless asked not to | stdout, or a searchable Markdown vault on your disk |
| Beyond a single read | `s.jina.ai` search, document parsing, proxy options, an MCP server | Local vault search, one-item media archives, connected-account actions |
| Data path | The URL and its content pass through Jina’s infrastructure and cache | The request goes to the site directly; nothing transits a third party |

## When to pick which

Pick Jina Reader when zero install is the point: a prefix that works from a browser bar, a curl one-liner, or an app that cannot run a local CLI, plus a hosted proxy, document parsing, and a search endpoint when a plain fetch is not enough. Its open-source image also gives you a self-hostable engine if you want the same pipeline on your own servers.

Pick Ghostget when the agent already runs commands on your machine and the read should stay local: no key or rate ceiling, Markdown saved into a searchable vault, and one tool that also covers media archiving and reviewed account actions. If the job is “keep this page as searchable local Markdown,” the hosted prefix is a detour; if it is “read a URL from anywhere,” the prefix is the shortcut.

## Read the same page both ways

Try `curl "https://r.jina.ai/https://example.com"` against `ghostget read https://example.com`. The first returns from Jina’s cache and servers; the second fetches directly and can save the result. The [getting-started guide](https://ghostget.com/docs/tutorials/getting-started/) installs the CLI, and [How agents reach the web](https://ghostget.com/compare/) compares all five approaches.
