---
title: "Share"
description: "Mint one sitting as a flat page. The link is the access. Two ways to take it back."
---

Give someone outside your organisation **one conversation**, in full, and nothing else. They get a URL. They see the sitting as the console draws it — messages, reasoning, folded tool calls, per-turn cost — and there is nothing else on the page to reach.

## Why a flat file

A rule that allows one session id on the live console can be wrong later. The store would still be reachable.

A minted share holds **no connection to the store**. One HTML file. CSS and script inside it. Unplug the network and it still renders. What the reader can see is what is in the file.

## Turn it on

Sharing is **off** unless the dashboard is given a host and a credential. No configuration means no tab, no button, no write routes.

Set both in the environment (prefer env over flags — a token on a command line lands in shell history):

```bash
export ASSAY_SHARE_URL=https://share.assay.solutions
export ASSAY_SHARE_TOKEN=…   # the token you were issued for publishing
assay dashboard
```

Both halves or neither. One alone is refused at startup.

## Mint

The share icon is top-right on a session page. The dialog states what minting does.

A second mint is a **second public copy** at a new address. Taking one down does not affect the other.

After a successful mint: the address, **Copy link**, **Open**.

### What a share carries

Three checkboxes, all **on** by default:

| | Off means |
|---|---|
| **Include tool calls** | Heading survives (“14 tool calls · Bash ×9”). Payloads do not. |
| **Include agent reasoning** | Fold still counts reasoning turns. Text is gone. |
| **Rewrite machine paths to ~** | `/Users/<name>/…` becomes `~/…` |

Withheld content is **not in the file**. An omission announces itself. A withheld turn is `omitted`, never “no content”. The banner states what was left out.

Path rewriting is not a secret scanner. Secrets in tool output are why you may leave tool calls out of a share you intend to publish widely. **Mint, read the page, then leave it published.**

Optional **Stops working on** date. That date is the **end** of that day in your zone. The host enforces it.

### What this is not

Subagent messages travel folded, with the same reader switch the console has. That is readability, not disclosure. To leave content out, use the three checkboxes.

## Manage

Dashboard → **Shares**.

| Verb | The page | The record | The link |
|---|---|---|---|
| **Unpublish** | kept | kept | stops (404) |
| **Publish** | kept | kept | works again |
| **Delete** | destroyed | **deleted** | dead forever |

Unpublish is reversible and takes one click. Delete asks first. Delete takes **both** the page and the record. There is no verb that drops one and keeps the other.

Unpublished, deleted, and never-existed are the same 404.

## Point an agent at a share

A share is **five files**, not one. The page is for a person. Long HTML is too large for an agent.

| URL | What it is |
|---|---|
| `<link>` | The page. `Accept: application/json` → the manifest |
| `<link>/agent.txt` | The protocol, in plain language |
| `<link>/outline.json` | The conversation **without** the working-out. Read this first |
| `<link>/manifest.json` | Session card + one row per turn, with byte ranges |
| `<link>/turns.jsonl` | Every turn in full, one JSON object per line |

```bash
curl <link>/outline.json
curl <link>/manifest.json
curl -H 'Range: bytes=914-1612' <link>/turns.jsonl
```

`turns.jsonl` is line-delimited so a byte range returns whole records.

A turn with no text says why (`contentState`: shredded, omitted, …). Never an empty string standing in for erased text.

## Limits you must know

- **Shred cannot reach a minted page.** Delete shares for that principal first.
- **The page is a point in time.** Later turns, later cost corrections, later labels are not in it. The mint instant is on the page.
- **Unpublish is not recall.** It stops the URL. It cannot affect a copy someone already saved.
