Skip to content

Pages

Full-screen pages for explorations, deep dives, and research attached directly to a task. Pages are markdown-editable, versioned, and automatically indexed for the AI so agents can read, extend, and search them from any surface — CLI, MCP, REST, or AI Chat.

Think of a Page as a full-screen notepad for thinking, planning, and research that lives on top of a task. Every page is tied to a specific task, so it stays in context of the work you’re on. Pages are:

  • Task-bound: Live inside a task detail and accessible from the task row.
  • Markdown-first: Write in markdown; the editor renders rich HTML with TipTap.
  • Agent-friendly: Created, appended, updated, and archived programmatically via CLI, MCP, REST, and AI Chat.
  • RAG-indexed: Every write is indexed so the AI can search, summarize, and reason over page content.
  • Versioned: Every change is captured with history and restore capabilities.
  • Conflict-safe: Optimistic-lock guards return a 409 conflict if multiple agents try to write at once.

This feature is now live on production, so you can start using it right away from the web UI and from the command line.

  1. Open any task detail.
  2. Look for the Pages row under the main task fields (below subtasks).
  3. Click the Pages header to expand and see all pages for that task.
  4. Click New page to create an empty page, or open an existing page.
  5. The editor opens full-screen; create, edit, and save normally.

You can create three kinds of pages on a task. They differ only in how you create them and, for humans, where in the editor you start typing:

TypeHow to createWhere to writeWhen to use
PageClick New page on the task detail → choose a nameIn a new, untitled pageGeneral thinking, notes, and exploration
Description pageType a blank title and choose Description mode from the command paletteIn an auto-renamed page with prefix # (e.g., #TaskNewPage)You want the page to act like an extended description for the task
Exploration pageType a title containing the word Exploration or choose the Exploration preset from the command paletteWill show #Exploration in the titleYou want explicit context that this is a formal exploration / research page

Use the full-screen editor attached to the task:

  • Start typing on a blank page or in a title to create it.
  • Markdown works: Use headings, lists, code blocks, and links.
  • Slash commands: Type / at the beginning of a line for formatting options (e.g., /bold, /checklist, /image, /code).
  • @mentions: Resolve team members within the page to notify them of your writing.

Pages support an append/prepend/replace model for agent workflows. When creating or updating a page programmatically, you can choose mode:

  • overwrite: Replaces the entire current page content.
  • append: Adds content after the existing text (RFC 2046-style).
  • prepend: Adds content before the existing text.

This is especially useful for agents that progressively build a page over time without risking accidental clobbering of previous work.


Every page has a version history. Restrict updates to safe versions and restore previous versions when needed.

  • Click History in the editor header to view all versions of the page.
  • Each version shows the timestamp, author, and a copy of the content at that point.
  • Click a version to view what the page looked like at that time.

Version history and restore are REST-only today. There is no MCP tool and no CLI command for them yet:

  • GET /api/mcp/pages/versions — lists all versions with timestamps and author.
  • POST /api/mcp/pages/restore — restores a page to a chosen version.

Task descriptions also gain version history to help you track contributions, revert edits, and keep a clean changelog of what changed.

  • Open any task.
  • Click Description in the top area to open the description editor.
  • Click History in the description header to view revisions.

As with page history, this is REST-only for now:

  • GET /api/mcp/tasks/description-versions — list the snapshots of a task description.
  • POST /api/mcp/tasks/description-restore — restore one of them.

If two agents or users edit the same task description at the same time, Hypertask uses optimistic locking to detect the conflict:

  • First write wins, second write returns a 409 conflict.
  • View the current text in the conflict response and retry your update with the updated content.

For agents and AI workflows, the Pages system provides a reliable, tracked surface to experiment and plan:

  • Exploration depth: Agents can maintain multi-page explorations for complex tasks without relying on external, untracked tools.
  • Incremental building: Use append or prepend modes to grow pages over time.
  • Conflict handling: Use the version semantics to implement safe concurrent writes for agents that work on the same pages.
  • AI context: Since pages are RAG-indexed, the AI can always see your latest exploration content in chats, summaries, and task planning.

Pages commands live under the new pages command group (CLI & MCP tools). They are fully available from the terminal to manage pages programmatically.

Pages are addressed by numeric page id, and created against a numeric task id — not a ticket number. Get a task id with hypertask task list --json.

CommandDescription
hypertask pages create --task <task-id> --title "title" --content "..."Create a page on a task.
hypertask pages get <page-id>Read a page.
hypertask pages append <page-id> --content "..."Append to a page.
hypertask pages update <page-id> --content "..." [--mode replace|append|prepend]Rewrite a page, or append/prepend.
hypertask pages list [--task <id>] [--project <id>]List pages on a task or across a board.
hypertask pages search <query>Search page content.
hypertask pages archive <page-id>Archive a page (soft delete; alias delete).
FlagApplies toDescription
--content <text>create, append, updateThe body text.
--markdown-file <path>create, append, updateRead the body from a file instead.
--mode <replace|append|prepend>updateHow to apply the content. replace by default.
--if-version <n>updateOnly write if the page is still at this version. Returns a conflict otherwise.
--note <text>updateA note attached to this revision.
--html / --canvascreate, append, updateTreat the content as HTML, or as an HTML canvas page.
--parent <id>createNest under another page.

Create a page (note --task takes the numeric task id):

Terminal window
hypertask pages create --task 2992 --title "Research competitor pricing" \
--content "# Competitor pricing
Start by listing key competitors and their pricing tiers."

Append a paragraph incrementally:

Terminal window
hypertask pages append 4521 --content "Each tier includes X; Y is extra."

Read it back, list a task’s pages, or search:

Terminal window
hypertask pages get 4521
hypertask pages list --task 2992
hypertask pages search "competitor"

Five MCP tools cover pages. Full parameters are in the MCP Tools Reference, which is generated from the server itself.

  • hypertask_create_page — Create a page on a task.
  • hypertask_get_page — Read a page.
  • hypertask_update_page — Write to a page. Its mode parameter (replace, append, prepend) covers all three write shapes, so there is no separate append or prepend tool.
  • hypertask_list_pages — List the pages on a task.
  • hypertask_search_pages — Search page content.

Archiving, version history and restore have no MCP tool yet; use the REST endpoints listed above.


You can create, read, append to, and update pages directly inside AI Chat without leaving the conversation, and the same operations are available through the CLI (hypertask pages ...), MCP, and the REST API. In chat, open a task context with something like “Open HTPR-2992 for editing”, then “Create a page for a competitor analysis” or “Append a note about pricing tiers”.


Pages and task descriptions both support optimistic-concurrency conflict safety using ifVersion-style checks:

  • Server returns 409 Conflict if the agent’s ifVersion header mismatch the current version of the content.
  • Client can retry by fetching the current version, re-reading content, and resubmitting the write with the latest version.
  • Never silently clobber: The server validates the version before persisting to prevent lost updates.
Terminal window
# 1. Read the page as JSON so you get its current version number
hypertask pages get 4521 --json
# 2. Write back, but only if nobody else has written since
hypertask pages update 4521 --mode append \
--content "Additional note appended by agent." --if-version 3
# On a conflict, re-read and decide what to keep before retrying.

  • Legacy browsing: Old explorations embedded on hypertask.app remain visible as read-only HTML; they are not migrated to the Pages system.
  • New writing: All new pages must be attached to a task. No task-less wiki pages exist yet.
  • Co-editing: Live Yjs/websocket co-editing is parked. Page editing is currently human-only or agent-only, not both simultaneously.