What you get
Three-panel browsing
Projects, sessions, and the full message thread with pagination and cross-project search.
Rich tool calls
Inputs, outputs, patches, file attachments, inline images, reasoning blocks, subagent drill-down, and cost/token summaries.
Export
Any session as Markdown or JSON, or select many projects/sessions and download a single
.zipgrouped into folders withjson/xml/htmlper item.Edit mode
Opt-in create/update/delete for projects, sessions, messages, and parts. Read-only by default.
Plugin API
Drop a
.jsfile inpublic/plugins/to add part renderers, export formats, session actions, and bulk actions. Toggle them from the UI.No build step
Vanilla frontend, Bun server, one dependency-free package.
Install
Requires Bun and OpenCode used at least once.
# run it (auto-opens the browser)
bunx @homescriptone/opencode-viewer-extender
# enable edit mode
bunx @homescriptone/opencode-viewer-extender --write
# custom port / database
bunx @homescriptone/opencode-viewer-extender -p 8080 --db /path/to/opencode.db
Write a plugin
Plugins register features through a tiny API and are auto-discovered from public/plugins/.
OCV.define({
id: "my-plugin",
name: "My plugin",
setup(api) {
api.registerExportFormat({
id: "txt", label: "Plain text (.txt)",
extension: "txt", mime: "text/plain",
build: ({ session, messages }) => "..."
});
api.registerBulkAction({
id: "wipe", label: "Delete selected",
danger: true, write: true,
handler: async ({ projectIds, host }) => {}
});
}
});
Data & safety
The database is opened read-only by default. Writes require --write.
Deletes cascade and cannot be undone — back up opencode.db first.
Nothing leaves your machine.
Credits
Maintained by Homescriptone Solutions Ltd. Built on opencode-viewer by its original author leeweisern — thank you.