---
title: "2026.07.16"
date: 2026-07-16
extra:
  version: "2026.07.16"
  build: 14
  change_id: ronywlqlzxww
  highlights:
    - text: "Replies keep generating when you leave the chat, and Jobs tracks them"
      path: "/jobs"
    - text: "Agents can build tools, call other agents, and ask you questions mid-turn"
      path: "/agents"
    - text: "Workspaces scope your agents, tools and conversations, each with its own defaults"
      path: "/workspaces"
    - text: "Long conversations compact instead of silently dropping their oldest messages"
      path: "/settings/defaults"
    - text: "Search the conversation list by title, agent name, or message content"
      path: "/conversations"
---

This 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.
