Version 0.1.0
Chronicle Schema
The classes and properties Chronicle’s plugins use to describe messages, shell commands, to-dos, and AI conversations. It has 30 classes and 21 properties.
A message from Alex
Alex sent you a message on iMessage. The MessageAction and the Message are keyed by iMessage's own ID for the message, its source and sourceId.
Alex is keyed twice. The first key is a handle in the icloud source. The second, through sameAs, is Alex's email address in the email namespace. That key doesn't belong to iMessage: any source that knows Alex's email address can use the same key.
{
"@type": "MessageAction",
"@key": ["@type", "source", "sourceId"],
"source": "imessage",
"sourceId": "9B1C5E2A-7F43-4D8E-A6B0-3C2F9E14D7A5",
"timestamp": "2026-05-09T18:22:07.000Z",
"agent": {
"@type": "Agent",
"@key": ["@type", "source", "handle"],
"source": "icloud",
"handle": "alex@example.com",
"name": "Alex Chen",
"sameAs": [
{
"@type": "Agent",
"@key": ["@type", "source", "handle"],
"source": "email",
"handle": "alex@example.com"
}
]
},
"object": {
"@type": "Message",
"@key": ["@type", "source", "sourceId"],
"source": "imessage",
"sourceId": "9B1C5E2A-7F43-4D8E-A6B0-3C2F9E14D7A5",
"body": "Found the trailhead!"
}
}{
"@context": {
"@vocab": "https://schema.chronicle.app/",
"doc": "https://schema.chronicle.app/docs/"
},
"@type": "MessageAction",
"doc:key": {
"@list": ["@type", "source", "sourceId"]
},
"source": "imessage",
"sourceId": "9B1C5E2A-7F43-4D8E-A6B0-3C2F9E14D7A5",
"timestamp": {
"@value": "2026-05-09T18:22:07.000Z",
"@type": "http://www.w3.org/2001/XMLSchema#dateTime"
},
"agent": {
"@type": "Agent",
"doc:key": {
"@list": ["@type", "source", "handle"]
},
"source": "icloud",
"handle": "alex@example.com",
"name": "Alex Chen",
"sameAs": [
{
"@type": "Agent",
"doc:key": {
"@list": ["@type", "source", "handle"]
},
"source": "email",
"handle": "alex@example.com"
}
]
},
"object": {
"@type": "Message",
"doc:key": {
"@list": ["@type", "source", "sourceId"]
},
"source": "imessage",
"sourceId": "9B1C5E2A-7F43-4D8E-A6B0-3C2F9E14D7A5",
"body": "Found the trailhead!"
}
}@prefix : <https://schema.chronicle.app/> .
@prefix doc: <https://schema.chronicle.app/docs/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
[
a :MessageAction;
doc:key ("@type" "source" "sourceId");
:source "imessage";
:sourceId "9B1C5E2A-7F43-4D8E-A6B0-3C2F9E14D7A5";
:timestamp "2026-05-09T18:22:07.000Z"^^xsd:dateTime;
:agent [
a :Agent;
doc:key ("@type" "source" "handle");
:source "icloud";
:handle "alex@example.com";
:name "Alex Chen";
:sameAs [
a :Agent;
doc:key ("@type" "source" "handle");
:source "email";
:handle "alex@example.com"
]
];
:object [
a :Message;
doc:key ("@type" "source" "sourceId");
:source "imessage";
:sourceId "9B1C5E2A-7F43-4D8E-A6B0-3C2F9E14D7A5";
:body "Found the trailhead!"
]
] .
Guides
Guide 1
The shape of a record
This guide explains how a Chronicle record is structured, using one example record.
Guide 2
Keys and sources
This guide covers the fields that say where a record came from and what identifies it: source, sourceId,
@key, handle, inRealm, and sameAs.
Guide 3
Connecting records
This guide covers the properties that link records to each other, with an example for each.
Actions
- CancelActionThe withdrawal of a plan or intended activity, such as cancelling a task.
- CompleteActionThe completion of an activity or piece of work, such as finishing a task or a book.
- DeleteActionThe removal of an entity from its source, including moving an item to the trash.
- ExecuteActionThe execution of a command or software resource.
- MessageActionThe sending of a message.
- PlanActionThe act of establishing an intention to do something, such as creating a to-do item.
- UpdateActionA change to an existing entity, such as editing a task's title or notes.
Entities
- AgentAn entity capable of performing an action, such as a person, organization, or software agent.
- AudioObjectAn audio artifact, such as a voice message, music file, or sound recording.
- CollectionA grouping of entities declared by a source, such as a list, an area of responsibility, or a section within a project.
- CommandAn instruction issued to a computer, such as a shell command.
- DocumentObjectA document artifact, such as a PDF, text file, or document attachment.
- ImageObjectAn image artifact, such as a photograph, screenshot, or image attachment.
- MediaObjectA media artifact, such as an image, audio recording, video, or document.
- MessageA communicated item, such as a text message or chat reply.
- PersonA human individual represented by a source, such as a message participant or computer user.
- ProjectAn organized undertaking that groups related work toward an outcome.
- RealmA bounded account or computing domain, such as a workspace, computer system, or email domain.
- SoftwareAgentRunning software acting as a participant, such as an assistant, bot, or automation.
- SoftwareApplicationA software application or model used to perform work.
- TagA label used by a source to categorize or describe entities.
- TaskA unit of work to be done, such as a to-do item.
- ThreadA conversation explicitly grouped by its source, such as an email thread or assistant chat.
- VideoObjectA video artifact, such as a recorded clip or video attachment, which may include audio.