Conversation Markdown is a convention how to format chat conversations in Well formed Markdown.
It is useful to capture things such as:
# Example Conversation
This is an example of [the Conversation Markdown format](https://wiki.enola.dev/computer/ai/format/markdown-conversation.html).
## Joe requested an image
joe@ 2026-08-28T11:04:08Z
Turn this document into an image.
+[document.pdf](/files/zQmdceedY6vVreSBK18iJz2PjFf3964xH18w4541n2wZ)
## Gemini generated it
/ai/gemini-3.7-flash 2026-08-28T11:05:02Z
{ origin: trajectory1 }
Here is an illustration.
+[image.png](/files/zQmdfffeedY7vVreSBK19iJz2PjFf3Z)
The timestamp is an ISO 8601 datetime. Is it allowed to be "partial" (e.g. just date)
The "actor" string may be an email address (as in a mailto: URI), just a partial local user@, relative path (../user/tony), absolute path to a "bundle" root (/people/maria), or any full URI
AI models or agents use the same "actor" string format
The "role" (user vs agent) is determined by what the actor string points to
Conversation.java model