Export a subgraph as JSON
A subgraph export captures a set of nodes, including their content, metadata, artifacts, and edge relationships, as a structured JSON file. Use this for:Pass one or more root node IDs in
- Reproducibility packages attached to a paper submission.
- Handing off a branch of work to a collaborator who runs their own Thesis instance.
- Archiving a completed research program before archiving.
- Feeding a sub-agent a snapshot of prior context.
node_ids. Thesis exports those nodes and all of their descendants as a single JSON document.Generate a markdown summary
A markdown summary traverses a node and its descendants and produces a human-readable report of the research structure, titles, summaries, key claims, and relationships.The output is plain GitHub-flavored markdown, suitable for pasting into a paper appendix, a Notion page, a README, or a PR description.For long subgraphs, use the streaming variant to receive the summary incrementally rather than waiting for the full response:The stream emits chunks as server-sent events, so your agent or script can display progress as it arrives.
Export a PDF summary
PDF export produces a formatted document suitable for sharing with people outside the Thesis environment, advisors, collaborators, or reviewers who don’t have a Thesis account.If you want to render a PDF from a specific set of node IDs or from pre-rendered markdown (for example, after editing the markdown output from
thesis_export_summary), use thesis_export_summary_render_pdf instead:PDF generation runs server-side. For very large subgraphs, the request may take several seconds. Use the streaming markdown export first to verify the content looks correct before generating a PDF.
Import a subgraph
Bring a previously exported subgraph, or a subgraph from a collaborator, back into your project with Imported nodes arrive in a staged state, so you can review and edit them before committing. If a
thesis_import_subgraph:parent_node_id is provided, the imported root is attached as a child of that node.Set sharing for your nodes
Each node has its own sharing mode, independent of its neighbors in the graph. You can publish a result node publicly while keeping the parent experiment private.
Set sharing on a single node:To update a batch of nodes at once (for example, all nodes in a completed experiment branch), use
| Mode | Access |
|---|---|
private | Only you |
unlisted | Anyone with the direct link |
public | Anyone, visible without a direct link |
thesis_set_sharing_for_nodes with an array of node IDs.Common export use cases
| Use case | Recommended approach |
|---|---|
| Paper appendix with full experimental record | thesis_export_summary_pdf on the root experiment node |
| Handoff to a collaborator on another Thesis instance | thesis_export_subgraph → share the JSON file → thesis_import_subgraph |
| Reproducibility package alongside code release | thesis_export_subgraph (full depth) + artifact files from the node |
| Agent review of prior work before starting a new run | thesis_export_summary to markdown, attach to the new node’s content |
| Publishing a completed insight for external review | thesis_set_sharing_for_node with sharing_mode: "public" |