# Summaries

Sponge can draft a short summary of a saved article with a model that runs on your computer. A draft shows nowhere until you accept it, field by field, from the terminal. The command and its output call a summary a *digest*.

## What a summary contains

- A lead sentence.
- Three to five ideas, each with a claim, a detail, and up to two quotes.
- One to six quotes in total, each copied word for word from the saved text.

Sponge checks every draft against the capture. A quote that does not appear in the saved text fails the check, the model gets one chance to repair the draft, and a draft that still fails is not stored. A capture under 20 words is too thin to summarize and stops with `source-too-thin`.

## Set up a model

```sh
sponge setup --digest
```

This downloads a pinned llama.cpp build and one model from their public sources and verifies their hashes. It needs 16 GiB of memory or more, and either an Apple Silicon Mac on macOS 26 or Linux on x64 or ARM64. [Requirements and platforms](/docs/requirements) lists the models and download sizes.

If you already run a model server, skip setup and point Sponge at it. The address must be a literal loopback address:

```sh
sponge digest ITEM --endpoint http://127.0.0.1:8080 --model MODEL_ID
```

The same checks apply to its drafts. The saved text goes only to that address on your computer.

## Draft

```sh
sponge digest ITEM --draft     # draft one item with the model from setup
sponge digest --auto on        # draft new captures in the background
sponge digest --auto off
```

`ITEM` is the item id printed by `sponge list`. With `--auto on`, the background worker drafts each new capture made on that computer. Items that arrived by sync are drafted with `sponge digest ITEM --draft`.

## Review

Nothing in a draft is shown in the web library, on a public page or in the library map until you accept it.

```sh
sponge digest ITEM
```

This prints the current summary, its id, and each field marked `[draft]`, `[accepted]` or `[rejected]`. Fields are numbered from zero. Accept or reject them with that id:

```sh
sponge review DIGEST --accept all
sponge review DIGEST --accept gist --accept idea:0 --reject idea:2
sponge review DIGEST --accept quote:1.0
```

| Field | Meaning |
| --- | --- |
| `all` | Every field |
| `gist` | The lead sentence |
| `idea:N` | Idea N |
| `quote:N.M` | Quote M of idea N |

Review is a terminal command today. The web library and the apps show accepted summaries but have no review screen.

## Where accepted summaries appear

- At the top of the article in the [web library](/docs/web-library), the Mac app and the iPhone app, after `sponge sync`.
- On your public page and in shared links, for items you publish. See [Sharing and publishing](/docs/sharing).
- As the source of concepts in the [library map](/docs/library-map).

Drafts and reviews sync between your devices, so you can draft on one computer and review on another.

## Limits

- A summary can be wrong. The quote check proves that quotes are verbatim, not that the claims are right. Read before accepting.
- On Linux the managed model runs on the CPU, which is slow for long articles.
- With less than 16 GiB of memory there is no managed model; use your own smaller model with `--endpoint`.
- The cloud runs no model. If none of your computers has one, items have no summaries.
