Ghostget

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.

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

$ ghostget read https://example.com
Capturing https://example.com/ (auto, auto) ...
---
title: "Example Domain"
source: "https://example.com/"
clipped: "2026-09-05"
platform: "generic"
capture_status: "complete"
capture_method: "http"
capture_scope: "page"
---
# Example Domain

This domain is for use in documentation examples without needing permission. Avoid use in operations.

[Learn more](https://iana.org/domains/example)
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, 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.

terminalv0.17.3
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

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.

8 supported actions

Comments · Content · Feeds · Media · Posts · Profiles

Signed-in web session

1 supported action

Feeds

Signed-in web session

2 supported actions

Organizations · Profiles

Signed-in web session

3 supported actions

Contacts · Messages

Official API

3 supported actions

Comments · Feeds · Posts

Signed-in web session

8 supported actions

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

Signed-in web session

5 supported actions

Conversations · Messages

Local app

13 supported actions

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

Official API + Signed-in web session

11 supported actions

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

Signed-in web session

10 supported actions

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

Signed-in web session

4 supported actions

Feeds · Media · Posts · Profiles

Signed-in web session

3 supported actions

Comments · Feeds · Profiles

Signed-in web session

1 supported action

Profiles

Signed-in web session

4 supported actions

Contacts · Media · Messages

Linked device

16 supported actions

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

Official API + Signed-in web session

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.

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.

ApproachBest fitGhostget boundary
Pipedream ConnectHosted integration breadth and managed end-user authentication across thousands of APIs and prebuilt toolsA smaller local set whose provider operations and implementations are reviewed before they run
Apify MCPDiscovering and running eligible Apify Store Actors through a hosted MCP service, with access to results and storageEach provider operation and implementation must be named and reviewed before it can run
BrowserbaseParallel browser automation on managed cloud sessions, with live inspection and video recording by defaultNo remote browser runtime and no hidden browser fallback when a named operation is missing or drifted
GhostgetNarrow local capabilities whose exact identities, account realms, and risks need reviewEncrypted 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 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 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.

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.

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

Where the boundary changes

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.

Documentation by task

Start with the outcome you need.

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

Check provider support

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

Author a provider plugin

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