Journal
Fields marked * are required. Updates keep every field they are not given. An AI app can ask vritto_describe for the same details, filtered to what its connection may use.
Journal Entryjournal_entry
A private journal entry with mood and reflections.
journal_getJournalEntryFindthrough vritto_findFetch one journal entry by ID. Use only when the entry ID is already known; otherwise search with queryJournalEntries. Returns a compact summary unless detail is "full"; only shared entries are readable.
| Field | Type | Description |
|---|---|---|
| entryId* | string | Journal entry ID. |
| detail | one of summary, full | Row shape: "summary" (default, id/title/entryDate/mood/excerpt/tags) or "full" (every field incl. the complete body). Ask for "full" only when the user needs the body itself. |
journal_queryJournalEntriesFindthrough vritto_findSearch private journal entries with optional text query and kind/mood/date/tag filters, e.g. the last 10 entries with mood "low". Returns active entries the user shared with AI, sorted by entry date, newest first; deleted entries are never returned. Supports an entry-date range, ALWAYS pass from/to when the question concerns a period (a year, a month, 'recently'). Rows are compact summaries; pass detail 'full' or fetch one entry with journal_getJournalEntry when the user needs the full body. `withheld` counts entries that matched but are not shared with AI.
| Field | Type | Description |
|---|---|---|
| query | string | Free-text search over titles, bodies, and tags. |
| kind | one of daily, reflection, gratitude, dream, check_in | Filter by entry kind. |
| mood | one of great, good, okay, low, hard | Filter by mood. |
| entryDate | string | Filter to one entry date YYYY-MM-DD. |
| from | string | Only entries dated ON or AFTER this YYYY-MM-DD date. |
| to | string | Only entries dated ON or BEFORE this YYYY-MM-DD date. |
| tag | string | Filter by tag. |
| includeArchived | boolean | Also return ARCHIVED entries alongside active ones; default false. Deleted entries are never returned by this tool, with or without this flag. |
| detail | one of summary, full | Row shape: "summary" (default, id/title/entryDate/mood/excerpt/tags) or "full" (every field incl. the complete body). |
| limit | integer | Max records to return (default 50 in summary mode). |
journal_queryJournalStatsFindthrough vritto_findJournalling cadence for one year, counted server-side over ACTIVE entries only (deleted and archived are excluded, and sharing does not affect the counts): total entries, entries this week, current streak, average mood and energy, plus a per-month breakdown. Prefer this over journal_queryJournalEntries for every how-often/how-many/streak question, it never touches a body.
| Field | Type | Description |
|---|---|---|
| year | string | Four-digit year for the by-month breakdown (defaults to the current year). |
journal_createJournalEntryCreatethrough vritto_createCreate a private journal entry. Only entry.title is required; include entryDate (YYYY-MM-DD), kind, mood, energy (1-5), body, gratitude lines, and tags when the user provides them, e.g. an evening reflection with mood "good" and energy 4.
| Field | Type | Description |
|---|---|---|
| entry* | object | Journal entry fields; only title is required. |
| entry.title* | string | Entry title. |
| entry.body | string | Private journal body. |
| entry.entryDate | string | Local entry date YYYY-MM-DD; defaults to today. |
| entry.kind | one of daily, reflection, gratitude, dream, check_in | Entry kind; defaults to "daily". |
| entry.status | one of active, archived, deleted | Entry status; defaults to "active". |
| entry.mood | one of great, good, okay, low, hard | Mood check-in; defaults to "okay". |
| entry.energy | integer | Energy from 1 (drained) to 5 (energized); defaults to 3. |
| entry.prompt | string | Prompt that inspired the entry. |
| entry.gratitude | list of string | Gratitude lines. |
| entry.tags | list of string | Tags. |
| entry.linkedRefs | list of object | Linked module records this entry references. |
| entry.locationName | string | Optional place label. |
| entry.weather | string | Optional weather or ambient context. |
| entry.favorite | boolean | Mark the entry as a favorite. |
| entry.private | boolean | Whether the entry is private; defaults to true. |
| entry.aiContextEnabled | boolean | Whether the user shared this entry with SahAI and connected AI clients. Defaults to FALSE for Journal, never set it to true unless the user asks for that entry to be readable by AI. |
| entry.idempotencyKey | string | Stable dedupe key so a retried create does not duplicate the entry. |
Example input
{
"entry": {
"title": "Quiet Saturday",
"body": "Slow morning, long walk by the lake.",
"entryDate": "2026-09-26",
"kind": "daily",
"mood": "good"
}
}journal_patchJournalEntryUpdatethrough vritto_updateUpdate selected fields of one journal entry, e.g. { entryId, patch: { favorite: true } }. Only include the fields being changed; everything else is preserved.
| Field | Type | Description |
|---|---|---|
| entryId* | string | Journal entry ID. |
| patch* | object | Journal entry fields to change; omitted fields are kept. |
| patch.title | string | Entry title. |
| patch.body | string | Private journal body. |
| patch.entryDate | string | Local entry date YYYY-MM-DD; defaults to today. |
| patch.kind | one of daily, reflection, gratitude, dream, check_in | Entry kind; defaults to "daily". |
| patch.status | one of active, archived, deleted | Entry status; defaults to "active". |
| patch.mood | one of great, good, okay, low, hard | Mood check-in; defaults to "okay". |
| patch.energy | integer | Energy from 1 (drained) to 5 (energized); defaults to 3. |
| patch.prompt | string | Prompt that inspired the entry. |
| patch.gratitude | list of string | Gratitude lines. |
| patch.tags | list of string | Tags. |
| patch.linkedRefs | list of object | Linked module records this entry references. |
| patch.locationName | string | Optional place label. |
| patch.weather | string | Optional weather or ambient context. |
| patch.favorite | boolean | Mark the entry as a favorite. |
| patch.private | boolean | Whether the entry is private; defaults to true. |
| patch.aiContextEnabled | boolean | Whether the user shared this entry with SahAI and connected AI clients. Defaults to FALSE for Journal, never set it to true unless the user asks for that entry to be readable by AI. |
| patch.idempotencyKey | string | Stable dedupe key so a retried create does not duplicate the entry. |
| expectedRevision | integer | Optional revision guard; the write is rejected if the stored revision differs. |
Example input
{
"entryId": "je_quiet_sat",
"patch": {
"mood": "great",
"favorite": true
}
}journal_deleteJournalEntryDeletethrough vritto_deleteDelete one journal entry by ID (soft delete). Use only for explicit deletion requests.
| Field | Type | Description |
|---|---|---|
| entryId* | string | Journal entry ID. |
| expectedRevision | integer | Optional revision guard; the write is rejected if the stored revision differs. |
Kept in the Vritto app
journal_updateJournalEntry: Replaces a whole record and clears omitted fields; the merge operation is on MCP instead.