API Reference

hm_timeline & hm_timeline_write

Temporal recall and explicit diary entries

hm_timeline

Search the timeline for past events, decisions, and activity. The timeline is backed by a separate PostgreSQL database with full-text search (tsvector).

Parameters

ParameterTypeDefaultDescription
querystr | NoneNoneFull-text search query
node_keystr | NoneNoneFilter entries related to a specific graph node key
periodstr | NoneNoneRelative window (1h, 3h, 6h, 12h, 24h, 7d, 14d, 30d, 90d, 1y)
startstr | NoneNoneRange start (ISO 8601, e.g. 2026-02-09T15:00:00)
endstr | NoneNoneRange end (ISO 8601)
limitint50Maximum events returned

How the timeline works

The timeline is auto-logged — meaningful tool calls (hm_store, hm_update, hm_forget, hm_ingest) automatically produce human-readable diary entries. Bootstrap tools (hm_get_overview, hm_list_files, etc.) are skipped to avoid noise.

The timeline is not loaded automatically during hm_recall. It is only returned on explicit request via hm_timeline. This keeps graph search fast and focused.

Example

{
  "query": "API migration decisions",
  "period": "30d"
}

CLI equivalent

hm timeline --query "API migration decisions"

REST endpoint

POST /api/v1/memory/timeline

hm_timeline_write

Write an explicit diary entry to the timeline. Use this for decisions, milestones, or events that should be recorded outside of normal tool usage.

Parameters

ParameterTypeDefaultDescription
summarystrrequiredDiary entry text
metadict | NoneNoneOptional structured metadata

Example

{
  "summary": "Decided to migrate from REST to GraphQL for the public API. Approved by Sarah and Marcus."
}

CLI equivalent

hm timeline-write "Decided to migrate from REST to GraphQL for the public API"

REST endpoint

POST /api/v1/memory/timeline/write