opencode source

opencode.parts

pass

All message parts (text, tool calls, images, etc.) stored in the local OpenCode database. Each row carries the parent message and session ids, timestamps, and the full part payload — including the actual `text`, `tool_call`, or synthetic-tool fields — as JSON. This is the table to read when you want the transcript content.

To get the full text of a session's conversation:

no filters captured 2026-09-01 11:53:17Zmedian 9368 ms
Verdict: TRUE

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

rendering…

Summary

VariantTrialsMinMedianMaxRow countsErrors
minimal39109 ms9368 ms9863 ms[5, 5, 5]0
by-session311181 ms13917 ms22737 ms[25, 25, 25]0
filter-type37759 ms8597 ms8881 ms[25, 25, 25]0
json-extract311079 ms11084 ms12159 ms[16, 16, 16]0
aggregate311032 ms14454 ms20984 ms[8, 8, 8]0
edge311890 ms12178 ms16836 ms[200, 200, 200]0

Latency per trial

minimalmedian 9368ms
t19109mst29368mst39863ms
scale: 0–9863 ms
by-sessionmedian 13917ms
t122737mst211181mst313917ms
scale: 0–22737 ms
filter-typemedian 8597ms
t17759mst28597mst38881ms
scale: 0–8881 ms
json-extractmedian 11084ms
t112159mst211084mst311079ms
scale: 0–12159 ms
aggregatemedian 14454ms
t120984mst214454mst311032ms
scale: 0–20984 ms
edgemedian 12178ms
t116836mst212178mst311890ms
scale: 0–16836 ms

Probe variants — every command + output

minimal3 trials
min 9109ms · median 9368ms · max 9863ms · rows 5,5,5

parts with type

Command
SELECT id, message_id, session_id, json_as_text(data, 'type') AS part_type FROM opencode.parts LIMIT 5
Trials + output
trial 1·9109ms·rows 5isError=false
First row (click to expand JSON)
{
  "id": "prt_fff83d586001TrSL8DBA8Taanj",
  "message_id": "msg_fff83d584001qKyFsKAditiyIk",
  "session_id": "ses_0007c2a8dffeuGFtEVeqE25gqN",
  "part_type": "text"
}
columns (4)
idmessage_idsession_idpart_type
trial 2·9368ms·rows 5isError=false
First row (click to expand JSON)
{
  "id": "prt_fff83d586001TrSL8DBA8Taanj",
  "message_id": "msg_fff83d584001qKyFsKAditiyIk",
  "session_id": "ses_0007c2a8dffeuGFtEVeqE25gqN",
  "part_type": "text"
}
columns (4)
idmessage_idsession_idpart_type
trial 3·9863ms·rows 5isError=false
First row (click to expand JSON)
{
  "id": "prt_fff83d586001TrSL8DBA8Taanj",
  "message_id": "msg_fff83d584001qKyFsKAditiyIk",
  "session_id": "ses_0007c2a8dffeuGFtEVeqE25gqN",
  "part_type": "text"
}
columns (4)
idmessage_idsession_idpart_type
by-session3 trials
min 11181ms · median 13917ms · max 22737ms · rows 25,25,25

parts for one session

Command
SELECT id, message_id, session_id, time_created, json_as_text(data, 'type') AS part_type FROM opencode.parts WHERE session_id = 'ses_0007c2a8dffeuGFtEVeqE25gqN' ORDER BY time_created ASC LIMIT 25
Trials + output
trial 1·22737ms·rows 25isError=false
First row (click to expand JSON)
{
  "id": "prt_fff83d586001TrSL8DBA8Taanj",
  "message_id": "msg_fff83d584001qKyFsKAditiyIk",
  "session_id": "ses_0007c2a8dffeuGFtEVeqE25gqN",
  "time_created": "1786698257802",
  "part_type": "text"
}
columns (5)
idmessage_idsession_idtime_createdpart_type
trial 2·11181ms·rows 25isError=false
First row (click to expand JSON)
{
  "id": "prt_fff83d586001TrSL8DBA8Taanj",
  "message_id": "msg_fff83d584001qKyFsKAditiyIk",
  "session_id": "ses_0007c2a8dffeuGFtEVeqE25gqN",
  "time_created": "1786698257802",
  "part_type": "text"
}
columns (5)
idmessage_idsession_idtime_createdpart_type
trial 3·13917ms·rows 25isError=false
First row (click to expand JSON)
{
  "id": "prt_fff83d586001TrSL8DBA8Taanj",
  "message_id": "msg_fff83d584001qKyFsKAditiyIk",
  "session_id": "ses_0007c2a8dffeuGFtEVeqE25gqN",
  "time_created": "1786698257802",
  "part_type": "text"
}
columns (5)
idmessage_idsession_idtime_createdpart_type
filter-type3 trials
min 7759ms · median 8597ms · max 8881ms · rows 25,25,25

only text parts

Command
SELECT id, session_id FROM opencode.parts WHERE json_as_text(data, 'type') = 'text' LIMIT 25
Trials + output
trial 1·7759ms·rows 25isError=false
First row (click to expand JSON)
{
  "id": "prt_fff83d586001TrSL8DBA8Taanj",
  "session_id": "ses_0007c2a8dffeuGFtEVeqE25gqN"
}
columns (2)
idsession_id
trial 2·8597ms·rows 25isError=false
First row (click to expand JSON)
{
  "id": "prt_fff83d586001TrSL8DBA8Taanj",
  "session_id": "ses_0007c2a8dffeuGFtEVeqE25gqN"
}
columns (2)
idsession_id
trial 3·8881ms·rows 25isError=false
First row (click to expand JSON)
{
  "id": "prt_fff83d586001TrSL8DBA8Taanj",
  "session_id": "ses_0007c2a8dffeuGFtEVeqE25gqN"
}
columns (2)
idsession_id
json-extract3 trials
min 11079ms · median 11084ms · max 12159ms · rows 16,16,16

text body of one session

Command
SELECT json_as_text(data, 'type') AS part_type, json_as_text(data, 'text') AS body FROM opencode.parts WHERE session_id = 'ses_0007c2a8dffeuGFtEVeqE25gqN' AND json_as_text(data, 'type') = 'text' ORDER BY time_created ASC LIMIT 5
Trials + output
trial 1·12159ms·rows 16isError=false
First row (click to expand JSON)
{
  "part_type": "text",
  "body": "check in opencode session is there where it store where i talked coral mcp benchmark and there is report details too"
}
columns (2)
part_typebody
trial 2·11084ms·rows 16isError=false
First row (click to expand JSON)
{
  "part_type": "text",
  "body": "check in opencode session is there where it store where i talked coral mcp benchmark and there is report details too"
}
columns (2)
part_typebody
trial 3·11079ms·rows 16isError=false
First row (click to expand JSON)
{
  "part_type": "text",
  "body": "check in opencode session is there where it store where i talked coral mcp benchmark and there is report details too"
}
columns (2)
part_typebody
aggregate3 trials
min 11032ms · median 14454ms · max 20984ms · rows 8,8,8

distribution of part types

Command
SELECT json_as_text(data, 'type') AS part_type, COUNT(*) AS n FROM opencode.parts GROUP BY 1 ORDER BY n DESC
Trials + output
trial 1·20984ms·rows 8isError=false
First row (click to expand JSON)
{
  "part_type": "tool",
  "n": "68010"
}
columns (2)
part_typen
trial 2·14454ms·rows 8isError=false
First row (click to expand JSON)
{
  "part_type": "tool",
  "n": "68010"
}
columns (2)
part_typen
trial 3·11032ms·rows 8isError=false
First row (click to expand JSON)
{
  "part_type": "tool",
  "n": "68010"
}
columns (2)
part_typen
edge3 trials
min 11890ms · median 12178ms · max 16836ms · rows 200,200,200

edge: larger limit

Command
SELECT id FROM opencode.parts LIMIT 200
Trials + output
trial 1·16836ms·rows 200isError=false
First row (click to expand JSON)
{
  "id": "prt_fe4ffcfb3001RB5Z5ZThXtSn7D"
}
columns (1)
id
trial 2·12178ms·rows 200isError=false
First row (click to expand JSON)
{
  "id": "prt_fe4ffcfb3001RB5Z5ZThXtSn7D"
}
columns (1)
id
trial 3·11890ms·rows 200isError=false
First row (click to expand JSON)
{
  "id": "prt_fe4ffcfb3001RB5Z5ZThXtSn7D"
}
columns (1)
id

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

516 rows stored · 1116 returned · 4 truncated · page 1/21
00prt_fff83d586001TrSL8DBA8Taanjmsg_fff83d584001qKyFsKAditiyIkses_0007c2a8dffeuGFtEVeqE25gqNtext
01prt_fff83fb720013Tjat5ZRZdIxxemsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNstep-start
02prt_fff83fb77001ZcHd027izEXlZumsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNtext
03prt_fff83fb7f001mCFDkk0kZaTSjTmsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNtool
04prt_fff83fb9a0015cJ9kC8jmYrYremsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNstep-finish
15prt_fff83d586001TrSL8DBA8Taanjmsg_fff83d584001qKyFsKAditiyIkses_0007c2a8dffeuGFtEVeqE25gqNtext
16prt_fff83fb720013Tjat5ZRZdIxxemsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNstep-start
17prt_fff83fb77001ZcHd027izEXlZumsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNtext
18prt_fff83fb7f001mCFDkk0kZaTSjTmsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNtool
19prt_fff83fb9a0015cJ9kC8jmYrYremsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNstep-finish
210prt_fff83d586001TrSL8DBA8Taanjmsg_fff83d584001qKyFsKAditiyIkses_0007c2a8dffeuGFtEVeqE25gqNtext
211prt_fff83fb720013Tjat5ZRZdIxxemsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNstep-start
212prt_fff83fb77001ZcHd027izEXlZumsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNtext
213prt_fff83fb7f001mCFDkk0kZaTSjTmsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNtool
214prt_fff83fb9a0015cJ9kC8jmYrYremsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNstep-finish
315prt_fff83d586001TrSL8DBA8Taanjmsg_fff83d584001qKyFsKAditiyIkses_0007c2a8dffeuGFtEVeqE25gqNtext
316prt_fff83fb720013Tjat5ZRZdIxxemsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNstep-start
317prt_fff83fb77001ZcHd027izEXlZumsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNtext
318prt_fff83fb7f001mCFDkk0kZaTSjTmsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNtool
319prt_fff83fb9a0015cJ9kC8jmYrYremsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNstep-finish
020prt_fff83d586001TrSL8DBA8Taanjmsg_fff83d584001qKyFsKAditiyIkses_0007c2a8dffeuGFtEVeqE25gqNtext1786698257802
021prt_fff83fb720013Tjat5ZRZdIxxemsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNstep-start1786698267506
022prt_fff83fb77001ZcHd027izEXlZumsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNtext1786698267512
023prt_fff83fb7f001mCFDkk0kZaTSjTmsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNtool1786698267519
024prt_fff83fb9a0015cJ9kC8jmYrYremsg_fff83d594001jpnZ6STZzJGT3Ases_0007c2a8dffeuGFtEVeqE25gqNstep-finish1786698267546
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

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

#ColumnInferred typeNon-nullNullsSample value(s)
1idstring168"prt_fff83d586001TrSL8DBA8Taanj""prt_fe4ffcfb3001RB5Z5ZThXtSn7D"
2message_idstring816"msg_fff83d584001qKyFsKAditiyIk"
3session_idstring1212"ses_0007c2a8dffeuGFtEVeqE25gqN"
4part_typestring168"text""tool"

Trial comparison

Variant / comboTrial #LatencyRowsStatusFirst key returned
minimalt19109ms5okid, message_id, session_id
minimalt29368ms5okid, message_id, session_id
minimalt39863ms5okid, message_id, session_id
by-sessiont122737ms25okid, message_id, session_id
by-sessiont211181ms25okid, message_id, session_id
by-sessiont313917ms25okid, message_id, session_id
filter-typet17759ms25okid, session_id
filter-typet28597ms25okid, session_id
filter-typet38881ms25okid, session_id
json-extractt112159ms16okpart_type, body
json-extractt211084ms16okpart_type, body
json-extractt311079ms16okpart_type, body
aggregatet120984ms8okpart_type, n
aggregatet214454ms8okpart_type, n
aggregatet311032ms8okpart_type, n
edget116836ms200okid
edget212178ms200okid
edget311890ms200okid

Catalog vs. response schemaclaimed guide vs columns coral actually returned

Catalog guide (verbatim)
To get the full text of a session's conversation:
Columns coral returned (4)
idmessage_idsession_idpart_type
Probed by bld-dabqr1nqj5pc73dgn3h0-676t6 at 2026-09-01T11:53:17Z
JSON record: reports/opencode/tables/parts.json
first_run_at: 2026-09-01T08:43:44Z
last_retried_at: 2026-09-01T11:53:17Z
retry_count: 3
View version history →