Skip to main content
FrogBot exports the conversations it already persists. Chats and messages stay the single source of truth — nothing is copied into a separate capture store, and no extra fields are written when a conversation happens. Each line of the output is one conversation: the chat document and its messages in creation order.

Export from the Local API

Access control is enforced by default. If the caller cannot read the chat or message collections, the export fails instead of quietly returning fewer conversations.

Export from the CLI

The export:training-data command comes from capturePlugin(), so list it in your config’s plugins. It runs a trusted export against your configured database and writes JSONL to stdout or a file.
Value flags accept --flag value and --flag=value. Unknown flags or a flag without a value exit with code 1. The CLI always exports with overrideAccess: true.

What the export contains

Every persisted message part is emitted exactly as stored — text, reasoning, tool calls and results, images, video, files, and any custom or future part type your app writes. Message metadata and chat fields such as title, agent, and todos are included too. Two things are deliberately absent because FrogBot does not persist them with the conversation:
  • System instructions, which live in your agent configuration at request time.
  • Tool schemas, which are supplied to the provider per request.
Add them yourself when your training target requires them. The export stays lossless with respect to what was stored, so it can be converted to any provider’s fine-tuning format later without re-reading your database.