OpenCode plugin that stores session and message sync data locally in SQLite. Designed to work across multiple AI harnesses (OpenCode, Cursor, Claude Code).
- Captures session and message events from OpenCode.
- Aggregates message parts into full text content.
- Writes sessions/messages to a local SQLite database.
Add the plugin to your OpenCode config (~/.config/opencode/opencode.json or
project-level opencode.json):
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@dxta-dev/clankers"]
}Install the package (npm or Bun). The postinstall step creates and migrates the local database before OpenCode loads the plugin.
- Add the plugin to your OpenCode config (or drop a built plugin into
.opencode/plugins/). - Install the package so postinstall creates the database.
- Restart OpenCode so the plugin loads with local SQLite sync enabled.
Clankers stores its database and config under a harness-neutral app data directory:
- Linux:
${XDG_DATA_HOME:-~/.local/share}/clankers/ - macOS:
~/Library/Application Support/clankers/ - Windows:
%APPDATA%\clankers\
Defaults
- Database:
<data root>/clankers.db - Config:
<data root>/config.json
Postinstall creates an empty config.json if it is missing.
Overrides
- Set
CLANKERS_DATA_PATHto change the app data root. - Set
CLANKERS_DB_PATHto point at a specific database file.
This repo is a pnpm monorepo with:
apps/opencode-plugin(published as@dxta-dev/clankers-opencode)apps/cursor-plugin(published as@dxta-dev/clankers-cursor)apps/claude-code-plugin(published as@dxta-dev/clankers-claude-code)packages/core
pnpm build:opencode bundles with esbuild (Node 24) and writes the plugin to
apps/opencode-plugin/dist/ for local OpenCode usage.
pnpm install
pnpm build:opencode
pnpm lint
pnpm format