> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thinkplatform.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Choose User guide for browser tasks, Developers for CLI, SDK and external agents, and Administration for organization management.
> Confirm identity and organization/project context before operations. Documentation access does not grant ThinkPlatform permissions.
> Review side effects, verify changes with a read, and do not blindly retry an operation with an uncertain outcome.
> Use documented UI steps for the web app and documented public CLI or SDK interfaces for automation. Follow each page’s prerequisites and authentication requirements.

# Read and update a Canvas page

> Find content, export it, and make a verified page edit.

Start with [installation](https://docs.thinkplatform.ai/cli/get-started/installation.md), [authentication](https://docs.thinkplatform.ai/cli/get-started/authentication.md), and a verified [project context](https://docs.thinkplatform.ai/cli/guides/context.md). Replace `PAGE_ID` below with an ID returned by your project.

## Find and read a page

```bash theme={"system"}
tp canvas pages list
tp canvas pages search 'Release notes'
tp canvas pages get PAGE_ID
```

Replace `PAGE_ID` with an ID from the list. These commands use your active profile and saved project context.

Search examines titles and blocks. Full `get` returns a page object whose content is in top-level `blocks`, with metadata such as `id`, `title`, and `updatedAt`. For a large inventory, add `--limit` and `--offset` to `pages list`; those options slice the fetched list locally. Continue offsets until a slice is empty, and account for concurrent changes when collecting a full inventory. Use `--fields id,title,parentPageId,updatedAt` to select a compact view, or `--summary` with `pages get` for a compact page summary.

> [accordion] Optional filters and paging
>
> ```bash theme={"system"}
> tp canvas pages list --fields id,title,parentPageId,updatedAt --limit 20 --offset 0
> tp canvas pages list --fields id,title,parentPageId,updatedAt --limit 20 --offset 20
> ```
>
> `--fields` selects a compact view; `--limit` and `--offset` slice the fetched list locally.

Export the project pages before editing:

```bash theme={"system"}
tp canvas pages export --format jsonl --fields id,title,blocks > pages.jsonl
tp canvas pages export --format markdown > pages.md
```

Exports fetch page documents. JSONL is one JSON record per line; Markdown is text. Treat an interrupted export as incomplete and check the exit status before using the file as a backup.

## Create a small document

The Home commands provide convenient text authoring for the same Canvas pages. Preview the request, then run the same create command without `--dry-run` when the destination and content are correct:

```bash theme={"system"}
tp home pages create --title 'Release notes' --content 'Initial release checklist.' --dry-run
tp home pages create --title 'Release notes' --content 'Initial release checklist.'
```

A preview returns `ok`, `dry_run`, `method`, `path`, `params`, and `body`; it does not create a page. The actual create returns the backend page result. Copy its page ID, then verify the stored document:

```bash theme={"system"}
tp canvas pages get PAGE_ID
```

## Append and verify

```bash theme={"system"}
tp home pages update PAGE_ID --append-content 'Review completed.' --dry-run
tp home pages update PAGE_ID --append-content 'Review completed.'
tp canvas pages get PAGE_ID
```

`--append-content` preserves existing blocks and adds a text block. `--content` and `--blocks` replace the page blocks; choose them only when you intend replacement. The Home update command reads the current page and sends its `updatedAt` as `expectedUpdatedAt`. An update preview can therefore perform a read even though it does not write.

On a conflict, fetch the page again, reconcile your change, and preview again. Do not bypass conflict protection with `--force` or blindly repeat an append: a timeout may occur after the server accepted it. Read the page first to see whether your text is already present. Compare the final blocks and title with your intended result. See the [command reference](https://docs.thinkplatform.ai/cli/reference/commands.md) for structured Canvas editing.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.