Bring Your LM 2026.05.26
This release lays the groundwork for using BYLM across devices: local data moved to a new storage engine with a one-time guarded migration, an experimental sync mode replicates your data to a server you host, and workspaces let you group bots and conversations.
A new local storage engine
All local data — conversations, bots, providers, tools, memories, settings, images — moved from the previous database to Couchbase Lite. The switch happens through a one-time migration behind a progress screen on first launch; interrupting it mid-way is safe, and the migration resumes on the next start. This release also hardens the migration itself (accurate progress display during the final compaction step, resumable image back-fill).
As part of the move, provider and tool API keys now live in your device's OS keystore instead of the database.
Sync across your devices (experimental, bring your own server)
True to BYLM's bring-your-own philosophy, sync replicates to a server you run yourself — a Couchbase Edge Server or Sync Gateway endpoint:
- A Sync settings page captures the endpoint URL and credentials, with an enable toggle and a live status block.
- When enabled, the app continuously pushes and pulls conversations, bots, providers, tools, memories, and settings in both directions.
- Changes from another device appear live: a conversation started elsewhere shows up in the list, and a reply streamed on another device lands in the open chat without reloading.
- A sync status icon in every screen's top bar (and a row in the drawer) shows at a glance whether sync is healthy, transferring, offline, or erroring — tap it to jump to the settings.
- API keys deliberately do not replicate — they stay in each device's keystore, and the provider form reminds you to re-enter them per device.
Workspaces
- Create, rename, and delete workspaces to group your bots and conversations; deleting one asks whether to move its contents to Default or delete them too.
- A switcher in the navigation drawer scopes the Conversations and Bots lists to one workspace (or All).
- Bots can be moved between workspaces from the bot form; new bots land in the workspace you're viewing and conversations inherit their bot's workspace.
Bot and provider quality of life
- Favorite bots: a star on each tile pins your frequently-used bots to the top of the list.
- The bot form shows editors only for the parameters the selected model actually supports, adds tools with a single tap, and links to provider creation when no provider exists yet.
- Picking a provider type pre-fills a sensible base URL, suggests alternatives, and links to the upstream API-keys panel.
Settings
- A Code blocks settings page: word-wrap and tab size, persisted and applied to every code block (each block also gets an inline wrap toggle and settings dialog).
- A Cleanup page scans for reclaimable data — starting with orphaned image attachments — and cleans it on demand, instead of paying for the scan at every app start.
- The Settings screen shows the exact build (commit and date) at the bottom, so bug reports can pin the binary.
Fixes and polish
- The composer keeps focus and its caret across a full send-and-reply cycle, and focuses automatically when a conversation opens — you can just start typing.
- Fixed a startup crash on Android introduced by the storage engine switch.
- Editing the sync form no longer loses your typing when a status update redraws the page.
- Retry now also appears when a provider times out mid-stream.
- Code blocks no longer carry a stray empty final line, and streamed text re-themes correctly when the system switches between light and dark.
- Consistent spacing across the conversation screen, and model names wrap to the full row width on narrow screens.