Digging the quackhole

Loading duckdb-wasm...

quackhole
get help

Connect to this DuckDB?

This link points at a DuckDB someone is running. Attaching it lets this tab query that machine directly, over an encrypted relay.

Machine
β€”
Relay
β€”

quackhole: connect to DuckDB from anywhere

A database on a laptop, a VM or a sandbox has no address the internet can reach. quackhole gives it one, and this browser tab queries it directly: nothing installed here, no ports opened there.

this tab a public relay your DuckDB

Start DuckDB on a VM, sandbox, or laptop

Start DuckDB somewhere with the quackhole extension. Whichever way you start it, it prints a ticket which connects this browser tab to it.

Hand this to the agent that has access to DuckDB (it's a small binary that runs everywhere).

prompt β€” for claude code, codex, cursor, an agent over ssh…

It sends the agent to llms.txt β€” this project's docs written for one β€” rather than spelling the steps out, so it installs the signed extension instead of guessing at flags. Read it yourself if you would rather know what you are asking for.


Add a remote DuckDB

Paste the ticket the other machine printed. Opening the link it printed does this for you.

A ticket grants this tab query access to that machine, and grants it nothing on yours β€” DuckDB runs in this tab. It carries an access token that does not expire, so treat it like a password.


Let an agent drive this workbench

This page hands its own tools to any agent in the browser with WebMCP, so one calls them directly instead of reading the screen and guessing where to click.

Checking this browser…

run-sql types into the terminal you are looking at and returns only that the statement ran, so an agent has to ask you what it said. A page that queried somebody's machine invisibly, beside a terminal showing nothing, is the version of this nobody should ship.


Hand this to an agent that can browse β€” ChatGPT in a browser that speaks WebMCP, or anything else that does. The link carries a prompt that sends the agent here and says what is waiting.

Read it, or copy it to paste by hand
prompt

Worth copying rather than clicking if you would rather it did not travel in a URL at all β€” and worth having either way, because prefilling a chat from a link is undocumented and the mobile app ignores it.

The button puts that prompt in the URL, so it goes to OpenAI and stays in your chat history. It carries no ticket and no token β€” an agent that should reach a machine you are serving has to be handed the qh1_… ticket by you.

Open in ChatGPT β†’