# Read, archive, and act with your coding agent

Read public pages, save media, and use supported actions in the services you’ve signed into. Ghostget is a local CLI and TypeScript SDK. You choose the agent and the accounts it can use.

[Install Ghostget](https://ghostget.com/#start)

[See how it works](https://ghostget.com/#how-it-works)

Free and MIT licensed. Runs on macOS and Linux with Bun 1.3.14. Release v0.17.3.

The complete output of one `ghostget read` for a public page: a short record of what was captured and how, then the page as Markdown. Nothing was saved. Public-page read recorded on September 5, 2026; command updated for Ghostget.

**Read**

Turn a public URL into Markdown your agent can inspect on the spot or keep in a local knowledge base.

**Archive**

Preserve one media item you’re allowed to access, with its source bytes, transcript, manifest, and SHA-256 records.

**Act**

Use named actions in 20 services you’ve signed into, from Beeper and Gmail to YouTube. If an action isn’t listed, Ghostget doesn’t offer it.

## Install the verified local release.

Ghostget requires Bun 1.3.14 and runs on macOS and Linux. Install the CLI and SDK from the [`@hraness/ghostget` canonical release archive](https://github.com/hraness/ghostget/releases/download/v0.17.3/hraness-ghostget-0.17.3.tgz), then run the doctor before you connect a service.

Add the Agent Skill

npx skills add hraness/ghostget\#v0.17.3

Add Ghostget’s capture, archive, provider, and publishing guide to your agent. With Bun, run `bunx skills add hraness/ghostget#v0.17.3` instead. [View the Ghostget Agent Skill on skills.sh.](https://skills.sh/hraness/ghostget)

```
bun add --global https://github.com/hraness/ghostget/releases/download/v0.17.3/hraness-ghostget-0.17.3.tgz
ghostget doctor
ghostget read https://example.com/article
ghostget capabilities --json
```

Or ask an agent that can run commands

“Install Ghostget v0.17.3, run `ghostget doctor`, then use it to read this URL: …”

## Each request has one named action

Your agent requests a supported action, such as reading an inbox or saving a video. Ghostget checks the inputs and account, makes the request, and returns a structured result. Sign-in details stay inside Ghostget.

1. **Name the job**The agent asks for an outcome, such as reading an inbox or preserving one video.
2. **Match one action**Ghostget resolves one installed, supported action. There is no general browser or request tool to fall back on.
3. **Check the account**The kernel binds the exact service, account, transport, contract version, and risk level before anything runs.
4. **Run one exchange**Credentials stay opaque to the caller and can reach only the endpoints that action declares.
5. **Return the result**The caller gets a typed result, an explicit note of what is incomplete, or a durable record that the outcome is still unsettled.

## Reviewed operations across 20 supported services.

These cards summarize capability families and access methods, then link to the named actions supported in this release. If an action is not listed there, Ghostget does not offer it.

### [Beeper](https://ghostget.com/providers/beeper/)

**32 supported actions**

Accounts · Bridges · Contacts · Conversations · Messages · Presence · Reactions

Local app

32 reviewed actions: 26 through one pinned CLI and 6 fixed Desktop reads; writes are previewed and uncertain outcomes stay unretriable.

### [Bluesky](https://ghostget.com/provider-capabilities/#provider-bluesky)

**8 supported actions**

Comments · Content · Feeds · Media · Posts · Profiles

Signed-in web session

### [ClasificadosOnline](https://ghostget.com/provider-capabilities/#provider-clasificados)

**1 supported action**

Listings

Signed-in web session

### [Facebook](https://ghostget.com/provider-capabilities/#provider-facebook)

**1 supported action**

Feeds

Signed-in web session

### [Facebook Groups](https://ghostget.com/provider-capabilities/#provider-facebook-group)

**1 supported action**

Feeds

Signed-in web session

### [Facebook Marketplace](https://ghostget.com/provider-capabilities/#provider-facebook-marketplace)

**2 supported actions**

Feeds · Listings

Signed-in web session

### [GitHub](https://ghostget.com/provider-capabilities/#provider-github)

**2 supported actions**

Organizations · Profiles

Signed-in web session

### [Gmail](https://ghostget.com/provider-capabilities/#provider-gmail)

**3 supported actions**

Contacts · Messages

Official API

### [Hacker News](https://ghostget.com/provider-capabilities/#provider-hacker-news)

**3 supported actions**

Comments · Feeds · Posts

Signed-in web session

### [Instagram](https://ghostget.com/provider-capabilities/#provider-instagram)

**8 supported actions**

Comments · Contacts · Content · Feeds · Media · Messages · Posts · Profiles

Signed-in web session

### [iMessage](https://ghostget.com/provider-capabilities/#provider-imessage)

**5 supported actions**

Conversations · Messages

Local app

### [LinkedIn](https://ghostget.com/provider-capabilities/#provider-linkedin)

**13 supported actions**

Articles · Comments · Contacts · Feeds · Organizations · Posts · Profiles · Reactions · Replies

Official API + Signed-in web session

### [Reddit](https://ghostget.com/provider-capabilities/#provider-reddit)

**11 supported actions**

Comments · Content · Feeds · Flair · Media · Messages · Posts · Profiles

Signed-in web session

### [Substack](https://ghostget.com/provider-capabilities/#provider-substack)

**10 supported actions**

Articles · Comments · Content · Feeds · Media · Messages · Organizations · Posts · Profiles

Signed-in web session

### [Threads](https://ghostget.com/provider-capabilities/#provider-threads)

**4 supported actions**

Feeds · Media · Posts · Profiles

Signed-in web session

### [TikTok](https://ghostget.com/provider-capabilities/#provider-tiktok)

**3 supported actions**

Comments · Feeds · Profiles

Signed-in web session

### [Twitch](https://ghostget.com/provider-capabilities/#provider-twitch)

**1 supported action**

Profiles

Signed-in web session

### [WhatsApp](https://ghostget.com/providers/whatsapp/)

**4 supported actions**

Contacts · Media · Messages

Linked device

### [X](https://ghostget.com/provider-capabilities/#provider-x)

**16 supported actions**

Articles · Comments · Content · Feeds · Likes · Messages · Posts · Profiles · Replies · Threads

Official API + Signed-in web session

### [YouTube](https://ghostget.com/provider-capabilities/#provider-youtube)

**5 supported actions**

Comments · Feeds · Media · Posts · Profiles

Signed-in web session

Provider names identify compatible services and do not imply endorsement. Counts are for release v0.17.3.

[Browse every supported action](https://ghostget.com/provider-capabilities/)

## Use an Agent Skill, CLI, or TypeScript SDK

Ghostget does not publish a hosted API or MCP server. Its public interfaces stay local and versioned, so what your agent can do is the same from a skill, a terminal, or typed code.

### Agent Skill

Add the release-matched capture, archive, provider, and publishing guide to an agent that can run commands.

```
npx skills add hraness/ghostget#v0.17.3
```

### CLI

Use stable human output or JSON from a terminal, a script, or an agent tool call.

```
ghostget capabilities --json
```

### TypeScript SDK

Import side-effect-free validators and types without starting the CLI or inspecting local state.

```
import { isProviderPluginId } from "@hraness/ghostget"
```

## Nothing leaves your machine unless you ask it to.

Ghostget is infrastructure around the accounts and tools you already have, not a service in front of them.

**Your sign-ins stay here**

Connected accounts live in encrypted local state. Your agent receives a named action and its result, never cookies, tokens, or a browser it can steer.

**Only the traffic you asked for**

Ghostget contacts the page or service the action names and nothing else. The CLI and SDK send no analytics anywhere.

**Reads you can open later**

Account-bound reads are kept as encrypted snapshots on your machine. A failed refresh or a changed service does not erase the last verified state.

**Writes happen once or stay flagged**

Consequential changes need a short preview and a confirmation. An indeterminate write is never blindly retried and remains unsettled until separate exact evidence can reconcile it.

**Change fails closed**

When a service changes its shape, the affected action becomes unavailable until its contract is reviewed again. Ghostget never switches silently to a browser fallback.

**Bring your own agent**

Ghostget ships no model, planner, approval screen, or app. It works with the coding agent you already use and stays out of its way.

## Use Ghostget with the tools you already have.

Ghostget owns a narrow local layer: named actions and the records they leave behind. Hosted integration catalogs, cloud Actors, and managed browsers solve broader jobs at other layers.

| Approach | Best fit | Ghostget boundary |
| --- | --- | --- |
| [Pipedream Connect](https://pipedream.com/docs/connect) | Hosted integration breadth and managed end-user authentication across thousands of APIs and prebuilt tools | A smaller local set whose provider operations and implementations are reviewed before they run |
| [Apify MCP](https://docs.apify.com/integrations/mcp) | Discovering and running eligible Apify Store Actors through a hosted MCP service, with access to results and storage | Each provider operation and implementation must be named and reviewed before it can run |
| [Browserbase](https://docs.browserbase.com/platform/browser/observability/session-recording) | Parallel browser automation on managed cloud sessions, with live inspection and video recording by default | No remote browser runtime and no hidden browser fallback when a named operation is missing or drifted |
| Ghostget | Narrow local capabilities whose exact identities, account realms, and risks need review | Encrypted provider snapshots and projections, mutation previews and receipts, and fail-closed contract drift |

## Before you install.

### Does Ghostget need an account?

No. Install the CLI and read a public page. You connect a service only when you want its actions, and each connection is stored on your machine. There is no Ghostget account and no Ghostget server in the loop.

### Does it use my credentials?

It uses a sign-in you already have for a service, on this machine, and keeps it out of your agent’s hands. The agent calls a named action and gets a typed result. It never receives cookies, tokens, a shell, or a browser it can steer.

### What does it cost?

Nothing. Ghostget is free and MIT licensed, with no hosted tier and no paid plan. You pay your model provider and any service subscriptions you already have.

### Does it phone home?

No. The CLI and SDK send no analytics to ghostget.com; they make only the network requests the action you chose requires. This website counts page views with cookieless analytics and honors Do Not Track. The [privacy page](https://ghostget.com/privacy/) explains both.

### Which platforms does it run on?

macOS and Linux with Bun 1.3.14. Actions that read iMessage or Apple Photos need macOS. Beeper actions need Beeper Desktop on the same machine, and WhatsApp reads need a linked device.

### Is Ghostget an AI agent?

No. Ghostget is a CLI and an SDK. Your agent owns the model, the plan, approvals, and the interface. Ghostget gives it a set of actions it can call and a record of what happened.

### Does it bypass login, paywalls, access controls, or DRM?

No. Media archiving is limited to one item you are authorized to access that is finite and not protected by DRM. Ghostget does not bypass payment, authentication, access controls, or DRM.

### What happens when a service changes?

The affected action becomes unavailable until its contract is updated, reviewed, and tested. Ghostget does not switch to a browser fallback silently, so a changed page never turns into a guessed action.

### Why does Ghostget refuse to retry some writes?

If a request left the machine and its response was lost, the effect may already exist. Ghostget keeps that uncertainty visible and reconciles it from separately obtained evidence instead of sending the request again.

### What does release v0.17.3 include?

Page capture, media archives, encrypted reads, and 140 supported actions across 20 services. `ghostget capabilities` is the source of truth for what is installed and available on your machine, and the [provider list](https://ghostget.com/provider-capabilities/) names every action in this release.

### Who made it?

Ben Guo, a musician and builder who was a founder and engineering leader at companies including Venmo and Stripe, and who now builds from Puerto Rico. Ghostget is published in the open under the Hraness GitHub organization.

## Ben Guo

Ghostget is built by Ben Guo, a musician and builder, formerly a founder and engineering leader at companies including Venmo and Stripe, now building from Puerto Rico. He publishes it in the open with the rest of his projects at hraness.com.

- [hraness.com](https://hraness.com/)
- [@hraness](https://x.com/hraness)
- [GitHub](https://github.com/hraness/ghostget)

## Precise web capabilities for the agent you already use.

Install the CLI, read one public page, and connect a service only when you need its actions.

[Install Ghostget](https://ghostget.com/#start)

Free and MIT licensed. Runs on macOS and Linux with Bun 1.3.14. Release v0.17.3.

## Arguments and comparisons

These essays compare named, attested operations with browser control, account identity, virtual machines, device policy, rumour-driven agentic search, and desktop privilege grants.

[Browser-using agents and named operations Why Ghostget exposes named operations instead of falling back to general browser control.](https://ghostget.com/compare/personal-agents-browser-use/)

[Agentic-web spoofing and outbound operations Why a failed inbound identity check does not establish a safe outbound operation.](https://ghostget.com/agentic-web-spoofing/)

[Virtual machines and attested operations Why a virtual machine around an agent does not define a safe web operation.](https://ghostget.com/vms-cannot-contain-agents/)

### [Read about PayPal and GrapheneOS attestation](https://ghostget.com/paypal-grapheneos-attestation/)

PayPal crashed on GrapheneOS after a root-detection check. Device-policy attestation is not a named web operation.

### [Read about rumour and named operations](https://ghostget.com/rumour-is-the-exploit/)

A rumour of a bug can be enough for agentic search. A search direction is not a named web operation.

### [Read about Omarchy and named operations](https://ghostget.com/omarchy-root-escalation/)

Omarchy’s default desktop let any user process escalate to root. A host privilege grant is not a named web operation.

## Start with the outcome you need.

These guides describe the current release, the commands to use, and the limits that stay in force.

### [Install and verify Ghostget](https://ghostget.com/getting-started/)

Pin the current release, run the doctor, capture a first URL, and inspect local capabilities.

### [Capture URLs and archive media](https://ghostget.com/capture-and-archives/)

Choose between an inspection, durable Markdown capture, or one verified finite-item media archive.

### [Check provider support](https://ghostget.com/provider-capabilities/)

See every provider action available in the current release and the access method it uses.

### [Understand the security boundary](https://ghostget.com/security/)

Review local custody, account binding, encrypted state, risk levels, and fail-closed drift behavior.

### [Author a provider plugin](https://ghostget.com/plugins/)

Define one operation, prove its contract, then check, test, pack, trust, and install the exact code.
