open_rabbithole
Opens a document on an infinite canvas for deep exploration. Start a new rabbit hole with content or resume a saved one, then select text to ask questions and dive deeper.
Instructions
Open a document on an infinite canvas so the human can read it and dive down rabbit holes. Start a NEW hole with { title, content } (or { title, file_path }), or RESUME a saved one with { hole_id } (use list_rabbitholes to find it). When opening content fetched from a URL or repo, pass the document's own URL as base_url so relative images and links resolve. For local images that are not on the web, pass assets and reference them as
. For a PDF already processed with ingest_pdf, pass ingest_id when starting the new hole and reference the returned asset names as
. The canvas opens in the browser and this call BLOCKS until the human acts. It returns status='branch_request' when the human selects text and asks a question — answer it with answer_branch. A branch_request with EMPTY selected_text is a follow-up question about the parent document as a whole (a chat reply beneath it) — answer conversationally in that document's context. A branch_request may carry a 'lens' (explain | eli5 | example | deeper) — the question text spells out the style the human tapped; honor it. One marked saved=true was asked while no agent was listening — answer it like any other. On a resumed hole the first branch_request carries a 'rehydration' field with the whole tree (and any saved_asks); read it to reload your context. Long waits periodically return status='keep_listening' with hole_id; immediately call open_rabbithole { hole_id } to keep listening, and do not re-send content. If the host reports a tool timeout (e.g. timed out awaiting tools/call), also re-call open_rabbithole { hole_id }; nothing is lost and asks are saved. It returns status='session_closed' when the human clicks Done or closes the tab.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Document title (required for a new hole) | |
| assets | No | Local image files to attach to this hole; reference them in markdown as asset:name.png images | |
| content | No | Raw markdown for the root document | |
| hole_id | No | Resume a saved hole instead of starting a new one | |
| base_url | No | Document URL used to resolve relative markdown links/images; absolute http(s) only | |
| file_path | No | Path to a .md file (alternative to content) | |
| ingest_id | No | Staged PDF assets returned by ingest_pdf; only valid when starting a new hole |