Bring Your LM 2026.07.16
View as MarkdownThis is the largest Bring Your LM release so far. An assistant reply is now a durable background job that keeps running when you leave the chat or the whole app; agents can build their own tools, call other agents, and ask you questions mid-turn; and a new Workspaces layer scopes your agents, tools and conversations. BYLM is a client for the language-model providers you connect — you bring the provider account, the tools, and the prompts.
Workspaces
A workspace groups your agents, tools and conversations and gives each group its own defaults. The Conversations, Agents, Tools and Jobs lists all scope to the active workspace (picked from the navigation drawer), and each workspace can override the app-wide settings for titles & summaries, context compaction, and the conversation loop — with every field showing whether it is inherited or set here. You can pick a default agent per workspace so the new-conversation button opens straight into it, keep a tool or a memory private to one workspace, and archive workspaces you are done with so they drop out of the switcher. Workspace names are checked for uniqueness as you type.
Background replies, notifications, and the Jobs page
Send a message and the reply generates in a background worker instead of on the screen you started it from. Leave the conversation, switch to another chat, or background the whole app — the reply keeps going, and returning re-attaches to the same live stream rather than starting over. Several conversations can generate at once. On Android an ongoing "Generating response" notification keeps the work alive while it runs, and when a reply finishes on a chat you are not watching you get a "Your reply is ready" notification that opens the conversation when tapped. If the app or the worker is killed mid-reply, the turn resumes on its own when the app comes back. The only thing that cancels a turn now is the explicit "Stop generating" button.
A new Jobs entry in the drawer lists background work live — each assistant turn with its tool calls nested beneath it, a status, timing, and any error. You can restart a failed job, multi-select and delete finished ones, clear all finished jobs at once, and see how many conversations are waiting for your input. The drawer badges the count of active jobs.
Agents that build tools, call other agents, and ask you questions
Agents can now do far more than answer:
- Ask you mid-turn. New ask-the-user tools let an agent ask a text question, offer a choice, or request a yes/no confirmation before continuing. The prompt appears above the composer, your answer flows back into the running turn, and the outcome shows on the tool-call tile. If you are elsewhere, a notification brings you to the question; a waiting conversation is flagged in the list.
- Build and manage tools. With the tool-management tools attached, an agent can list the tool catalog, read a tool's configuration, create and edit fetch tools, run a tool to test it, and (with your confirmation) delete one — all confined to its own workspace, with secrets never entering its context.
- Manage other agents. An agent can list, inspect, create, edit and retire the agents in its workspace, and discover your configured providers and their models to wire them up correctly.
- Call and test other agents. A "Call agent" tool lets an agent start a conversation with a fixed allowlist of other agents and read the reply. Builder agents can also test another agent, follow up, and even answer the clarifying questions it asks — all in a scratch conversation that never touches your real chats.
On-device models
Besides the providers you connect to, BYLM can also run a model directly on the device for when you have no server to point at. This release improves that secondary path:
- Assemble models in the app from a model file plus an optional multimodal projector, instead of hand-editing the database.
- Vision works — a projector-equipped model can now read attached images.
- Pick the compute backend per device (Auto, CPU, Vulkan, and ROCm on Linux), set the decode thread count, and see which backend each reply ran on.
- Android external files — grant a models folder once and the provider lists and runs the model files in it, wherever they sit on the device.
Smarter context management
Long conversations no longer silently drop their oldest messages. You can now configure how context is compacted — how much to keep and how to represent what falls out (truncate, keep the opening anchored, or fold older turns into a rolling summary) — globally, per workspace, or per agent, with a "Compact now" action for on demand. A divider in the conversation marks exactly where the cut is, so you can see which messages the model still receives, and the on-screen history window is now independent of how much the model keeps.
More capable fetch tools
The fetch tool graduated from simple GET requests into a real HTTP client you
can hand an agent. It can now issue any method with a request body; declare
typed, array, required, or defaulted call variables with descriptions; build
URLs and bodies with RFC 6570 templates (including an unescaped {+var}
operator); shape a JSON response through an output-filter chain before it
reaches the model; and retry rate-limited requests, honoring the server's
Retry-After. A new tool test screen runs any configured tool with your own
arguments and shows the raw result, and the fetch tool's API key can be shared,
sealed, to another of your devices.
Attachments and the composer
Attach text files to a conversation, not just images — a document chip shows in the composer and the file reaches the model on backends that support file input. On phones you can take a photo with the camera and attach it. The composer itself was redesigned into a bordered field with an action bar, a per-platform Enter binding (send vs. newline, with a swap button), a Markdown preview toggle, and spell checking on Android and Linux.
Auto titles & summaries
Conversations can now name and summarize themselves. Turn on titles & summaries and each conversation gets an auto-generated title and a summary card that refresh after each reply; you choose the model and edit the prompts, override it per workspace or per agent, and back-fill your existing conversations. Enrichment spend is attributed separately in the usage header so it never inflates the context size.
Conversation quality-of-life
- Search the conversation list by title, agent name, or message content (with the matched fragment shown), and find-in-conversation scrolls between and highlights matches within a thread.
- Name a conversation yourself, or toggle "Show raw Markdown" to inspect exactly what was written.
- Multi-select conversations and agents to delete them or move them between workspaces in one action.
- Richer metrics — cached-prompt-token counts, a prompt/output cost split where the provider reports it, the generating device and backend per message, and paging older history in as you scroll to the top.
- Fewer dead ends — a warning when the chosen model can't read a conversation's images or call its tools, a Retry button on model-load errors, and a non-vision model quietly drops the image with an explanation instead of failing the turn.
Sync and devices
A new Settings → Devices page lists your registered devices, lets you rename them, shows trust badges and key fingerprints with a verify-by-fingerprint flow, and handles incoming key offers with explicit accept or decline. Because API keys deliberately never sync, you can now share a provider (or fetch-tool) key to a verified device, sealed — entered once, accepted explicitly on the other side, never retyped. Sync settings gained a "Retry now" action for transient connection errors.
A note on platforms
Only the Android build is distributed today, on Google Play. Bring Your LM also runs on Linux desktop, but there is no published Linux binary yet — some features above (ROCm, enchant spell check) are Linux-only when you build it yourself.