opencode source

opencode.messages

pass

All messages stored in the local OpenCode database, in session order. Each row exposes the message id, parent session, timestamps, and the full message payload as a JSON column.

Run the converter first to populate the JSONL files:

no filters captured 2026-09-01 11:48:10Zmedian 12734 ms
Verdict: TRUE

All variants returned rows on ≥2 of 3 trials, 0 errors.

rendering…

Summary

VariantTrialsMinMedianMaxRow countsErrors
minimal311304 ms12734 ms12941 ms[1, 1, 1]0
by-session38024 ms11063 ms12905 ms[25, 25, 25]0
json-extract312081 ms12380 ms13434 ms[25, 25, 25]0
group-by312984 ms13412 ms18056 ms[2, 2, 2]0
aggregate39182 ms9731 ms26607 ms[1, 1, 1]0
edge38221 ms8476 ms8561 ms[200, 200, 200]0

Latency per trial

minimalmedian 12734ms
t112941mst211304mst312734ms
scale: 0–12941 ms
by-sessionmedian 11063ms
t112905mst211063mst38024ms
scale: 0–12905 ms
json-extractmedian 12380ms
t113434mst212380mst312081ms
scale: 0–13434 ms
group-bymedian 13412ms
t113412mst212984mst318056ms
scale: 0–18056 ms
aggregatemedian 9731ms
t126607mst29182mst39731ms
scale: 0–26607 ms
edgemedian 8476ms
t18221mst28476mst38561ms
scale: 0–8561 ms

Probe variants — every command + output

minimal3 trials
min 11304ms · median 12734ms · max 12941ms · rows 1,1,1

smallest query

Command
SELECT id, session_id, time_created FROM opencode.messages LIMIT 1
Trials + output
trial 1·12941ms·rows 1isError=false
First row (click to expand JSON)
{
  "id": "msg_056853cf0002jholAyxAYx9ywh",
  "session_id": "ses_000c159f2ffeOoNzxoUMIfpfD3",
  "time_created": "1788157967600"
}
columns (3)
idsession_idtime_created
trial 2·11304ms·rows 1isError=false
First row (click to expand JSON)
{
  "id": "msg_056853cf0002jholAyxAYx9ywh",
  "session_id": "ses_000c159f2ffeOoNzxoUMIfpfD3",
  "time_created": "1788157967600"
}
columns (3)
idsession_idtime_created
trial 3·12734ms·rows 1isError=false
First row (click to expand JSON)
{
  "id": "msg_056853cf0002jholAyxAYx9ywh",
  "session_id": "ses_000c159f2ffeOoNzxoUMIfpfD3",
  "time_created": "1788157967600"
}
columns (3)
idsession_idtime_created
by-session3 trials
min 8024ms · median 11063ms · max 12905ms · rows 25,25,25

messages for one session

Command
SELECT id, session_id, time_created FROM opencode.messages WHERE session_id = 'ses_faedde194ffe3SEEUk03dXfiu3' ORDER BY time_created ASC LIMIT 25
Trials + output
trial 1·12905ms·rows 25isError=false
First row (click to expand JSON)
{
  "id": "msg_051221e82001HhQEz330rxiFFR",
  "session_id": "ses_faedde194ffe3SEEUk03dXfiu3",
  "time_created": "1788067585666"
}
columns (3)
idsession_idtime_created
trial 2·11063ms·rows 25isError=false
First row (click to expand JSON)
{
  "id": "msg_051221e82001HhQEz330rxiFFR",
  "session_id": "ses_faedde194ffe3SEEUk03dXfiu3",
  "time_created": "1788067585666"
}
columns (3)
idsession_idtime_created
trial 3·8024ms·rows 25isError=false
First row (click to expand JSON)
{
  "id": "msg_051221e82001HhQEz330rxiFFR",
  "session_id": "ses_faedde194ffe3SEEUk03dXfiu3",
  "time_created": "1788067585666"
}
columns (3)
idsession_idtime_created
json-extract3 trials
min 12081ms · median 12380ms · max 13434ms · rows 25,25,25

extract role from JSON payload

Command
SELECT id, json_as_text(data, 'role') AS role FROM opencode.messages WHERE session_id = 'ses_faedde194ffe3SEEUk03dXfiu3' ORDER BY time_created ASC LIMIT 25
Trials + output
trial 1·13434ms·rows 25isError=false
First row (click to expand JSON)
{
  "id": "msg_051221e82001HhQEz330rxiFFR",
  "role": "user"
}
columns (2)
idrole
trial 2·12380ms·rows 25isError=false
First row (click to expand JSON)
{
  "id": "msg_051221e82001HhQEz330rxiFFR",
  "role": "user"
}
columns (2)
idrole
trial 3·12081ms·rows 25isError=false
First row (click to expand JSON)
{
  "id": "msg_051221e82001HhQEz330rxiFFR",
  "role": "user"
}
columns (2)
idrole
group-by3 trials
min 12984ms · median 13412ms · max 18056ms · rows 2,2,2

messages by role

Command
SELECT json_as_text(data, 'role') AS role, COUNT(*) AS n FROM opencode.messages GROUP BY 1 ORDER BY n DESC LIMIT 10
Trials + output
trial 1·13412ms·rows 2isError=false
First row (click to expand JSON)
{
  "role": "assistant",
  "n": "63007"
}
columns (2)
rolen
trial 2·12984ms·rows 2isError=false
First row (click to expand JSON)
{
  "role": "assistant",
  "n": "63007"
}
columns (2)
rolen
trial 3·18056ms·rows 2isError=false
First row (click to expand JSON)
{
  "role": "assistant",
  "n": "63007"
}
columns (2)
rolen
aggregate3 trials
min 9182ms · median 9731ms · max 26607ms · rows 1,1,1

total message volume

Command
SELECT COUNT(*) AS n, COUNT(DISTINCT session_id) AS sessions FROM opencode.messages
Trials + output
trial 1·26607ms·rows 1isError=false
First row (click to expand JSON)
{
  "n": "68331",
  "sessions": "465"
}
columns (2)
nsessions
trial 2·9182ms·rows 1isError=false
First row (click to expand JSON)
{
  "n": "68331",
  "sessions": "465"
}
columns (2)
nsessions
trial 3·9731ms·rows 1isError=false
First row (click to expand JSON)
{
  "n": "68331",
  "sessions": "465"
}
columns (2)
nsessions
edge3 trials
min 8221ms · median 8476ms · max 8561ms · rows 200,200,200

edge: larger limit

Command
SELECT id, session_id FROM opencode.messages LIMIT 200
Trials + output
trial 1·8221ms·rows 200isError=false
First row (click to expand JSON)
{
  "id": "msg_056853cf0002jholAyxAYx9ywh",
  "session_id": "ses_000c159f2ffeOoNzxoUMIfpfD3"
}
columns (2)
idsession_id
trial 2·8476ms·rows 200isError=false
First row (click to expand JSON)
{
  "id": "msg_056853cf0002jholAyxAYx9ywh",
  "session_id": "ses_000c159f2ffeOoNzxoUMIfpfD3"
}
columns (2)
idsession_id
trial 3·8561ms·rows 200isError=false
First row (click to expand JSON)
{
  "id": "msg_056853cf0002jholAyxAYx9ywh",
  "session_id": "ses_000c159f2ffeOoNzxoUMIfpfD3"
}
columns (2)
idsession_id

All returned rowsacross all non-errored trials · filterable · paginated

416 rows stored · 1016 returned · 4 truncated · page 1/17
00msg_056853cf0002jholAyxAYx9ywhses_000c159f2ffeOoNzxoUMIfpfD31788157967600
11msg_056853cf0002jholAyxAYx9ywhses_000c159f2ffeOoNzxoUMIfpfD31788157967600
22msg_056853cf0002jholAyxAYx9ywhses_000c159f2ffeOoNzxoUMIfpfD31788157967600
33msg_056853cf0002jholAyxAYx9ywhses_000c159f2ffeOoNzxoUMIfpfD31788157967600
04msg_051221e82001HhQEz330rxiFFRses_faedde194ffe3SEEUk03dXfiu31788067585666
05msg_051221e96001T13GD87z7HDJr2ses_faedde194ffe3SEEUk03dXfiu31788067585686
06msg_05122516d001EMycw3FbKUG8IUses_faedde194ffe3SEEUk03dXfiu31788067598701
07msg_0512266d40011GlDjmc8YK3FCPses_faedde194ffe3SEEUk03dXfiu31788067604180
08msg_0512277ed001X28iWE4K1lZUnMses_faedde194ffe3SEEUk03dXfiu31788067608557
09msg_051228bd4001yXmpnFGAbgSsVkses_faedde194ffe3SEEUk03dXfiu31788067613652
010msg_051229aab001l5AXKfM1RYesVjses_faedde194ffe3SEEUk03dXfiu31788067617451
011msg_05122bced001nMkjl9MtA0uovqses_faedde194ffe3SEEUk03dXfiu31788067626221
012msg_05122d4c100118jEC7Is6h83Hoses_faedde194ffe3SEEUk03dXfiu31788067632321
013msg_051236ca2001E1w4um2BZE33fdses_faedde194ffe3SEEUk03dXfiu31788067671202
014msg_05123b4dc001D0WRcrgzdL48EVses_faedde194ffe3SEEUk03dXfiu31788067689692
015msg_05123e8bb0014TsGdsWAqnshJzses_faedde194ffe3SEEUk03dXfiu31788067702971
016msg_051242fac001voFb6nirWIm4VYses_faedde194ffe3SEEUk03dXfiu31788067721132
017msg_051247973001NPhm7JzMLtwKp2ses_faedde194ffe3SEEUk03dXfiu31788067740019
018msg_05124c361001CjdiZwiU2PjjzKses_faedde194ffe3SEEUk03dXfiu31788067758945
019msg_05124d933001CYjn9qLg0MjBvdses_faedde194ffe3SEEUk03dXfiu31788067764531
020msg_05124e5a00011ztajUjzxE1Vjlses_faedde194ffe3SEEUk03dXfiu31788067767712
021msg_051250df0001HuG014U44Iqtm1ses_faedde194ffe3SEEUk03dXfiu31788067778032
022msg_051254875001Ph6au4bMEOiFT8ses_faedde194ffe3SEEUk03dXfiu31788067793013
023msg_051257ec4001jAomb84uHY542Ases_faedde194ffe3SEEUk03dXfiu31788067806916
024msg_051259206001GN0BjxfXBlzkk5ses_faedde194ffe3SEEUk03dXfiu31788067811846
Truncated. 4 trials returned more rows than we stored (safety cap = 200/trial). Increase theMAX_ROWS_RETURNED inscripts/probe_table.py and re-probe to capture more.

Column profile

3 columns actually returned by coral. Catalog claims no required filters. Click a column to drill in.

#ColumnInferred typeNon-nullNullsSample value(s)
1idstring168"msg_056853cf0002jholAyxAYx9ywh""msg_051221e82001HhQEz330rxiFFR"
2session_idstring1212"ses_000c159f2ffeOoNzxoUMIfpfD3""ses_faedde194ffe3SEEUk03dXfiu3"
3time_createdstring816"1788157967600""1788067585666"

Trial comparison

Variant / comboTrial #LatencyRowsStatusFirst key returned
minimalt112941ms1okid, session_id, time_created
minimalt211304ms1okid, session_id, time_created
minimalt312734ms1okid, session_id, time_created
by-sessiont112905ms25okid, session_id, time_created
by-sessiont211063ms25okid, session_id, time_created
by-sessiont38024ms25okid, session_id, time_created
json-extractt113434ms25okid, role
json-extractt212380ms25okid, role
json-extractt312081ms25okid, role
group-byt113412ms2okrole, n
group-byt212984ms2okrole, n
group-byt318056ms2okrole, n
aggregatet126607ms1okn, sessions
aggregatet29182ms1okn, sessions
aggregatet39731ms1okn, sessions
edget18221ms200okid, session_id
edget28476ms200okid, session_id
edget38561ms200okid, session_id

Catalog vs. response schemaclaimed guide vs columns coral actually returned

Catalog guide (verbatim)
Run the converter first to populate the JSONL files:
Columns coral returned (3)
idsession_idtime_created
Probed by bld-dabqr1nqj5pc73dgn3h0-676t6 at 2026-09-01T11:48:10Z
JSON record: reports/opencode/tables/messages.json
first_run_at: 2026-09-01T08:41:08Z
last_retried_at: 2026-09-01T11:48:10Z
retry_count: 3
View version history →