# What's new in Knit

> New ways to connect, useful improvements and the details behind each release.

See what is new, find the improvements that matter to you and explore the features in more detail. Release dates and change lists come directly from the app's published changelog.

## Longer reads

- [Your own relay, kept running for you](https://getknit.app/updates/knit-hosted/index.md): Knit's developer now runs Knit Spool for people who would rather not. A separate paid option, and Knit works without it. (Announcing, 17 September 2026)
- [Take the same Knit mesh across kilometres](https://getknit.app/updates/meshtastic/index.md): Pair one Meshtastic board and the mesh gains a hop measured in kilometres. What rides the radio, what stays on the phones, and what a listener can see. (New in Knit 2.5.0, 6 September 2026)
- [Keep the conversation going after you part](https://getknit.app/updates/internet-relays/index.md): What an Internet relay is, what it can and cannot see, and why every sealed copy it holds expires within 48 hours. (Behind the feature, 31 August 2026)

## Releases

### 2.9.0 — 12 October 2026

Bluetooth that reaches farther, and photos and files that cross the mesh faster

Bluetooth that reaches farther, and photos and files that cross the mesh faster. Knit 2.9.0 lets phones find each other over Bluetooth from farther apart, and a connection drifting toward the edge of range switches to Bluetooth's long-range mode to stay up instead of dropping. Both phones need that mode, so iPhones and phones without it connect as they did before. Two phones a few metres apart that could take over a minute to reconnect, or sometimes never did, now reconnect sooner. When your phone loses its last Bluetooth connection it keeps looking at full speed for three minutes, so walking back into range reconnects you sooner, and connecting to a watch no longer hides your phone from the phones around it for up to a minute.

Most of the rest of this release is about how a photo, voice message or file gets from one phone to another when several phones are around. When several nearby phones had the same photo, yours could download a full copy from each of them. It now asks the phone that sent it, or one it has a faster Wi-Fi link to, and tries the others only if no copy starts within a few seconds. Phones that only pass a message along now wait instead of downloading the photo at the same moment, so the person it's for gets it first, and your phone no longer sends the same photo two or three times. A transfer on a connection that keeps dropping picks up where it stopped, as long as the phone sending the rest runs this version. A ring on the bubble fills as the rest arrives, so on a slow Bluetooth connection you can tell a transfer that's still moving from one that's stuck. Messages no longer wait a minute or more behind a photo going to the same phone. The trade is that photos take a little longer, most of all when several nearby phones download the same one.

Forwarding a photo, GIF or file to someone who already has it no longer sends it again, and a file passed from chat to chat costs nearby phones one copy instead of one per message. A photo saved from a chat no longer gets a little blurrier each time it's sent on, and Knit still removes its location and camera details before it leaves your phone. Knit now screens what you send only in the Nearby and Meshtastic rooms, not in direct messages or groups. With Content filtering on, whoever receives a message decides what stays hidden, and identity slurs are caught in every chat. Your profile photo and group photos are checked when you set them.

A card at the top of your chats now says what a release added, and it goes away when you close it or after a week. Diagnostics lists people whose messages reach you through another nearby phone under Reachable indirectly. It can also keep a field log of how your radios behaved, off until you turn it on, and it saves a report when Android closes Knit for not responding; both stay on your phone until you share them. A direct file send that fails has a Retry button, and one that failed with "no connection was made in time" now keeps sending its Wi-Fi details until the other phone connects. If you've paired a Meshtastic board, which stays off until you do, direct messages over LoRa no longer wait behind room posts. Contacts on Knit for iPhone are no longer told an update will bring them files, direct transfers or forward secrecy, which that version doesn't offer. Forward secrecy rotates keys per block of messages and deletes the spent ones; a chat with someone whose version lacks it, as with an older version of Knit, uses the older encryption instead.

- Phones find each other over Bluetooth from farther apart, and a connection near the edge of range switches to Bluetooth's long-range mode to stay up, on phones that have it.
- Your phone asks the phone most likely to have a photo or file before trying the others, and phones that only pass it along wait, so the person it's for gets it first.
- A photo or file cut off midway picks up where it stopped, and a ring shows how much has arrived.
- Forwarding a file someone already has no longer sends it again, and a photo keeps its sharpness when it's passed on.

**Added**

- Phones now find each other over Bluetooth from farther apart, and a connection drifting out of range switches to Bluetooth's long-range mode to stay up. Both phones need that mode, so iPhones and phones without it connect as before.
- A photo, voice message or file on its way from a nearby phone now shows how much has arrived, with a ring that fills as the rest comes in. On a slow Bluetooth connection, you can tell a transfer that's still moving from one that's stuck.
- When a release adds features worth knowing about, a card at the top of your chats now says what they are. It goes away when you close it or after a week, and Settings' menu keeps every past note under What's new.
- Diagnostics now lists people whose messages reach you through another nearby phone under Reachable indirectly, along with the phone that passed them on. Their profile says Reachable indirectly too, where it used to say Offline.
- When a file you sent directly doesn't get through, its card now has a Retry button that offers the same file again without the file picker. The button shows only while Knit can still open the file.
- You can turn on a field log in Diagnostics: three days of how your phone's radios behaved, with no names, messages or ids in it. Share it as a file to help tune Knit; it never leaves your phone unless you do.
- When Android closes Knit because it stopped responding, Knit now saves a report under Diagnostics' crash reports at its next start, as it already does for a crash. The report stays on your phone until you share it.

**Changed**

- Knit no longer blocks what you send in direct messages, groups or the commons, only in the Nearby and Meshtastic rooms. Whoever receives it decides: with Content filtering on, flagged text and pictures stay hidden until tapped, and the notification just says "Message hidden".
- Your profile photo and group photos are now checked for explicit content when you set them, and one that fails isn't used. Until now, only the phones receiving a photo checked it.
- If a stranger had the same name as one of your contacts, your contact's name kept an alias after it for good, even once the stranger was gone. The alias now goes away a week after your phone last heard from that person.
- Forwarding a photo, GIF or file to someone who already has it no longer sends it again, and a forwarded GIF keeps its animation. A file passed from chat to chat now costs nearby phones one copy instead of one per message.
- A photo saved from a chat or another app no longer gets a little blurrier each time it's sent on. Knit still removes its location and camera details before the photo leaves your phone.
- A photo sent to someone nearby over Bluetooth no longer crawls when other phones are around. Phones that only pass the message along now wait instead of downloading the photo at the same moment, so its recipient gets it first.
- A person you mention while writing a message now shows as a single chip, and backspace removes the whole name at once instead of one letter at a time.

**Fixed**

- Direct messages and groups now catch racial and other identity slurs, which only the Nearby room used to catch. A slur that arrives stays hidden until tapped, and everyday swearing in private chats still goes through.
- A message you sent just as another phone came into range could miss that phone and reach it only about a minute later. It now arrives as soon as the two phones connect.
- When a contact's phone set up encryption with yours again, after a reinstall for example, their direct messages could stop opening hours later until the two phones started over. Those messages and their delivery ticks now arrive as normal.
- A direct message sent over LoRa while the Nearby room is busy no longer waits behind room posts until the room goes quiet. When your board runs short of airtime, direct messages now go out ahead of room posts and delivery ticks.
- Two phones a few metres apart could take over a minute to reconnect over Bluetooth, and sometimes didn't reconnect at all. Your phone now reconnects sooner and can link with phones a little further away.
- When your phone connected to a watch or another Bluetooth device, other phones nearby could lose sight of it for up to a minute, and an iPhone couldn't connect in that time. Your phone now reappears within seconds.
- When your phone lost its last Bluetooth connection to nearby phones, it could start looking for them less often almost at once, so it took longer to reconnect when you came back into range. It now keeps looking at full speed for three minutes first.
- A large photo or file on a connection that kept dropping started over each time, so it might never arrive. It now picks up where it stopped, as long as the phone sending the rest runs this version.
- A message sent while a photo was going to the same phone over Bluetooth could wait a minute or more, until the photo finished. Messages now arrive within a few seconds, but photos take longer, especially when several nearby phones download the same one.
- When several photos were on their way to the same phone over Bluetooth, your phone could send one of them two or three times, and messages waited behind every copy. It now sends each photo once.
- When several nearby phones had the same photo or file, your phone could download a full copy from each of them. It now asks the phone that sent it, or one it has a faster Wi-Fi link to, and tries the others only if no copy starts within a few seconds.
- A photo could be downloaded a second time just after it arrived, while your phone was still saving it. Your phone now waits until the photo is saved before it asks anyone for it again.
- A chat you deleted, someone you blocked or a group you left could still show up when you long-pressed the Knit icon, and tapping it opened an empty chat. That menu now matches your chat list and shows people's new photos and names.
- With content filtering on, an explicit group photo or contact photo could still appear if it came through an Internet relay, or after that contact next updated their profile. Knit now hides it, as it does any other photo the filter catches.
- A direct file send could fail with "no connection was made in time" when the message carrying its Wi-Fi details was lost on the way. Your phone now sends those details again until the other phone connects.
- An animated sticker or reaction image saved from another app went out as a still picture, and so did a GIF picked from some file managers. Both now arrive animated.
- A voice message could show a flat waveform and no length if its audio reached your phone before the message did, which happens most often in groups. It now shows its length and waveform in either order.
- When a Bluetooth connection to a nearby phone ended while both phones stayed close, part of it could stay open until Bluetooth was turned off, and photos and files from either phone moved more slowly. Your phone now closes it within a few seconds.
- Adding an iPhone contact from their code left "Waiting to reach…" on their profile for good, and some messages said an update would bring an iPhone contact files, direct transfers or forward secrecy. Neither happens now, since Knit for iPhone doesn't offer those.
- Tapping Paste in Add contact crashed Knit if the last thing you copied was a picture or a file. Paste now handles whatever you copied without crashing.
- After a contact renamed themselves, the "changed their photo" lines from before the rename showed the new name. Each line now shows the name they used at the time, so it agrees with the rename line next to it.

[Read 2.9.0 in full on What's New](https://whatsnew.fyi/product/knit/releases/v2.9.0) · [Tag and signed APK on GitHub](https://github.com/getknit/knit/releases/tag/v2.9.0)

### 2.8.0 — 3 October 2026

Remove a contact, clear the Nearby room, and see stuck messages get through

Remove a contact, clear the Nearby room, and see stuck messages get through. Knit 2.8.0 puts Remove contact in the menu on someone's profile. It deletes your chat with them from this phone, and they aren't told. Someone you share a group with stays in your contacts for as long as you're both in it. The Nearby room can now be cleared like any other chat, with a long press in the chat list; its messages go from your phone only, and the room stays in your list.

Most of this release is about messages that should have arrived and didn't. If you and a contact both wrote first while out of range of each other, or Knit had just repaired the encryption between you, a message could sit on one tick forever. It now gets through and shows as delivered. Messages from someone you hadn't met yet, passed along by a nearby phone, could take ten minutes to appear, or up to a day if that phone had restarted; they now show up together once that person's profile reaches you. After a backup was restored, chats with some contacts could stay unreadable on both phones for up to six hours, and they now get through once the two phones can reach each other. Two people who added each other from links and could only reach each other through an Internet relay, which stays off until you add one, no longer wait up to a day on "Waiting for their device to answer".

If the phone's secure storage didn't respond when Knit started, Knit could delete your messages and come back as a stranger to your contacts. That one was bad, and it's fixed: Knit now waits, with Try again to keep everything, and Start over only if the storage never answers. Photos behave better too. A group's new photo no longer flips back to the old one, a contact who changes their photo along with their name or status arrives with both, and a profile photo you crop is saved the moment you confirm the crop.

A paired LoRa board that is switched off or out of range no longer drains your battery while Knit looks for it, and two phones near each other with LoRa boards no longer spend the radio's airtime for hours re-sending delivery ticks. Near a few phones already connected to each other with their screens off, yours now joins them over Bluetooth within a few minutes rather than ten or more. A photo or voice message that hasn't arrived yet swaps its spinner for a still hourglass after half a minute, and a GIF is labelled GIF. In a chat with someone on an older version of Knit, the relay indicator said "Not covered yet" though no relay would ever carry it. Relays carry a direct message only when both sides have forward secrecy, where keys rotate per block of messages and spent keys are deleted, and their version doesn't. The chat now says so, and relays can carry it once they update. A stranger can no longer get a group past Message Requests by naming you as its creator.

- Remove a contact from the menu on their profile. It deletes your chat with them from this phone, and they aren't told.
- Clear the Nearby room's messages with a long press in the chat list. Only your phone forgets them, and the room stays in your list.
- Messages that used to stall now get through: ones stuck on a single tick, messages from people you hadn't met yet, and chats left unreadable after a restore.
- If the phone's secure storage doesn't respond when Knit starts, Knit waits and offers Try again instead of deleting your messages.

**Added**

- You can now remove someone from your contacts using the menu on their profile. It deletes your chat with them from this phone, and they aren't told. People you share a group with stay in your contacts while you're both in it.
- You can now clear the Nearby room's messages by long-pressing it in the chat list, as you can with other chats. This only removes them from your phone, and the room stays in your list.
- A GIF now shows as "GIF" rather than "Photo" in the chat list, in message details and when you reply to one. Most GIFs from before this update still show as Photo.

**Fixed**

- If the phone's secure storage didn't respond when Knit started, Knit could delete your messages and come back as a stranger to your contacts. Knit now waits instead, with Try again to keep everything or Start over if the storage never answers.
- If you and a contact added each other from links and could only reach each other through an Internet relay, one of you could see "Waiting for their device to answer" for up to a day. Your phones now connect without either of you having to write first.
- A group's new photo could flip back to the old one, and its "changed the group photo" line could jump to the end of the chat under someone else's name. The new photo now stays put while other phones are still downloading it.
- When a contact changed their photo along with their name or status, your phone could keep the old name or miss the new photo until they edited their profile again. Both changes now arrive together.
- When a nearby phone passed along messages from someone you hadn't met yet, most of them could take ten minutes to appear. They now show up together once that person's profile reaches your phone.
- Messages from someone you hadn't met could fail to appear for up to a day if the phone passing them along had restarted since it last heard from that person. That phone can now prove who wrote them, so they show up as soon as it passes them on.
- If you and a contact both wrote first while out of range of each other, or Knit had just repaired the encryption between you, a message could stay on one tick forever. It now gets through and shows as delivered.
- After restoring a backup, messages with some contacts could stay unreadable on both phones for up to six hours, most often with someone you only share a group with. They now get through once the two phones can reach each other again.
- If a message reached you through an Internet relay a moment before it arrived over the radio, a friend nearby who can only get it through your phone could wait up to a minute. Your phone now passes it on straight away.
- On a weak Bluetooth link, a message you sent while your phone was catching a nearby phone up on older messages could arrive minutes after the catch-up finished. That wait is now much shorter.
- If you left the Profile screen right after cropping a new photo, the photo could be lost, and the greyed-out Save button made it look unsaved anyway. It now saves when you confirm the crop, and a message tells you so.
- A paired LoRa board that is switched off or out of range no longer drains your battery while Knit looks for it. After a few quick tries your phone reconnects when the board comes back, without pausing its search for nearby phones every few minutes.
- A photo, file or voice message that hasn't reached your phone yet no longer keeps a spinner turning for as long as the chat is open. After half a minute it changes to a still hourglass, so a chat left open uses less battery.
- If you came near a few phones that were already connected to each other with their screens off, your phone could take ten minutes or more to join them over Bluetooth. It now joins within a few minutes.
- A stranger could get a group past Message Requests by naming you as its creator, so their first message notified you and showed up among your chats. That group now waits in Message Requests like any other request.
- When two phones near each other each had a LoRa board, Knit could spend the radio's airtime for hours re-sending delivery ticks, and new LoRa messages waited behind them. A tick now goes over LoRa only when the radio is how it reaches that person, and Knit waits longer between retries.
- In a chat with someone on an older Knit, the relay indicator said "Not covered yet", but relays were never going to carry that chat. It now explains that relays need forward secrecy, and will carry the chat once that person updates Knit.

[Read 2.8.0 in full on What's New](https://whatsnew.fyi/product/knit/releases/v2.8.0) · [Tag and signed APK on GitHub](https://github.com/getknit/knit/releases/tag/v2.8.0)

### 2.7.0 — 24 September 2026

Back up to one encrypted file, pause the mesh for an hour, and use less battery

Back up to one encrypted file, pause the mesh for an hour, and use less battery. Knit 2.7.0 adds Backup and restore to Settings: your identity, contacts, groups and messages go into one encrypted file, locked by a recovery key Knit shows you once and never keeps. On a new phone you restore it from the welcome screen. Use the backup on one phone at a time; if the same backup ends up on two, each one says so and offers Sign out here, which clears that phone so it starts over with a new identity.

The mesh notification now has Pause 15 min and Pause 1 hour beside Stop, for when another app needs Bluetooth for a while and you don't want to switch Knit off. The chat list shows when the pause ends, and the mesh comes back by itself. Stop means something firmer now too: it keeps the mesh off until you start it again, where opening Knit used to switch it straight back on.

Most of the rest is about battery. Each message crosses a Bluetooth link once rather than twice, and a phone left alone with the screen off stops waking its Wi-Fi Aware radio every few seconds. With the screen on and nobody around, the Bluetooth search slows to about once a minute after three minutes, unless the phone is plugged in. A relay you have set up asks for far less while nothing is happening, and the on-device content filter unloads after ten quiet minutes, which frees about thirty megabytes. On an older phone like a Pixel 3, the chat list now shows up in about two seconds after Android has closed Knit, where it could sit empty for ten or more.

Tapping a file someone sent you now opens it: the first tap asks where to save it and later taps open that copy, though archives and app packages are only ever saved. A long chat has an arrow back to the newest message. On a phone a parent or an organisation manages, Settings says so, and a permission they turned off names who can allow it. A Meshtastic user who messages your Knit board directly gets one automatic reply saying where to find Knit, once a day per person, and only on a board you set up for Knit. The fixes include a Wi-Fi Aware radio that went quiet after a busy chat, photos crossing Bluetooth three times, the mesh staying down after a reboot, and Wi-Fi searching that stopped in the background on Android 10 to 12.

- Backup and restore puts your identity, contacts, groups and messages in one encrypted file, locked by a recovery key Knit shows you once. Restore it on a new phone from the welcome screen, and use it on one phone at a time.
- Pause the mesh for 15 minutes or an hour from its notification, and it comes back by itself. Stop now keeps it off until you start it again.
- A quiet mesh uses less battery: fewer Bluetooth sends and searches, a Wi-Fi Aware radio that stops waking every few seconds when you are alone, and a content filter that unloads when idle.
- Tap a file someone sent you to open it, and jump back to the newest message from anywhere in a long chat.

**Added**

- On a phone a parent or an organisation manages, Settings and Diagnostics now say so, and a permission they turned off names who can allow it instead of sending you to a switch you can't flip. Voice notes get the same Open settings dialog as the location pin.
- Scroll up through a chat and a small arrow now sits in the bottom corner to take you straight back to the newest message. It shows once you are a few messages up and goes away when you reach the bottom.
- Android takes an app's permissions back after a few months without use, and Knit would then have to ask for them again. The permissions page and Settings now show that switch beside the battery row, with a button to the page where it turns off.
- A Meshtastic user who messages your Knit board directly now gets one automatic reply saying nobody reads it and where to find Knit. The board answers each person once a day, and only if you set it up for Knit.
- Settings now has Backup and restore: your identity, contacts, groups and messages go into one encrypted file locked by a recovery key Knit shows once. Restore it on a new phone from the welcome screen, and use the backup on one phone at a time.
- If the same backup ends up on two phones, each one now says so and offers Sign out here, which clears this phone so it starts over with a new identity. Dismiss the notice instead if the other phone is already gone.
- The mesh notification now offers Pause 15 min and Pause 1 hour beside Stop, so another app can have Bluetooth for a while without you switching Knit off. The chat list shows when the pause ends, and the mesh comes back by itself.
- Tapping a file someone sent you now opens it. The first tap still asks where to save it and later taps open that copy, though archives and app packages are only ever saved, since nothing on the phone can check them.

**Changed**

- Stop on the mesh notification now keeps the mesh off until you start it again, where opening Knit used to switch it back on. The chat list says the mesh is stopped and offers Start.
- Your phone spends less battery on a quiet mesh. Each message crosses a Bluetooth link once rather than twice, and a phone left alone with the screen off stops waking its Wi-Fi Aware radio every few seconds.
- A relay you have set up asks for far less while nothing is happening, and one that has gone quiet is tried every fifteen minutes rather than every minute. On mobile data your phone now checks in with it every four minutes, though the relay still checks in on its own schedule.
- Knit loads its on-device content filter when you open the app or someone comes into range, rather than on every background restart. A message that arrives twice is checked once.
- Knit unloads its on-device content filter after ten minutes without a message and loads it again for the next one, so the app holds about thirty megabytes less while nothing is happening. The first check after a quiet spell takes a second longer.
- A relay you have set up now learns about a new contact, or a chat that just connected, as it happens rather than up to fifteen seconds later. Idle, your phone looks over what it shares with the relay once a minute instead of four times.
- An open chat now looks up the sizes of just the pictures and files on screen, where it used to read every one stored on the phone each time an image arrived anywhere. A chat with no attachments skips the lookup entirely.
- Walking with your phone used to make Knit look for contacts and tidy up every thirty seconds or so; now it does that once a minute at most. The quarter-hour tidy-up skips the parts it already did within the hour, so an idle phone has less to do in the background.
- With the screen on and nobody around, your phone used to keep searching for Bluetooth neighbours at full tilt for as long as it stayed alone. After three minutes it now looks about once a minute, unless it is plugged in.

**Fixed**

- Strangers who added you to a group you never answered no longer turn up as contacts in Search or the new-message picker. They appear once you accept the group, the same moment it leaves your message requests.
- On older phones, opening Knit after Android had closed it could leave the chat list empty for ten seconds or more. A Pixel 3 now shows your chats in about two seconds, once the first launch after this update has finished converting its storage.
- After a busy stretch of chat, a phone's Wi-Fi Aware radio could stop getting its short messages through for hours while still seeing every neighbour, so reactions and read ticks fell back to Bluetooth. The mesh now notices within about a minute and restarts that radio.
- A photo sent over Bluetooth could cross the air three times, because every nearby phone offered its copy while the first was still arriving. A phone now asks for a picture only while nothing is on the way, and a neighbour sends one only when asked.
- A phone on a relay with nearby phones could get a message by radio and from the relay a split second apart, and took the second copy as proof a neighbour had passed it on. It then skipped its own hop, and the phone behind it waited for the next re-offer.
- On some phones the Wi-Fi dropped every time Knit tried to open a Wi-Fi Aware connection to a neighbour. After the third drop Knit stops opening them from that phone and says so in Diagnostics, where you can let it try again; nearby phones can still connect to it.
- A public Wi-Fi that Android accepted but that silently blocked your relay left it showing as connected while nothing got through. The relay now reads as unreachable, and Knit reconnects as soon as your phone moves to another network.
- A photo waiting in a chat only ever said it would appear when a nearby device had it, even when your relays were live. It now also says whether a relay can bring it, or that the connected relays carry messages only.
- Your phone could still upload a photo to your relay right after the phone next to you passed it over Bluetooth or Wi-Fi, depending on which arrived first, the message or the photo. It now holds that upload until you are apart.
- A name or status you set moments after meeting someone could show up blank, or as the old one, on their phone until the next day. It reaches them right away now, and a relay no longer gets stuck syncing on it.
- A link shared into Knit from another app usually went out without its preview, because you tapped Send before the preview had loaded. Sending now waits a few seconds for it.
- With a LoRa board paired, Nearby and direct messages never got a link preview at all. They now attach one the way they attach a photo, and someone reading over the board alone sees the link without it.
- A group started while one of its members could only be reached through your relay never showed up on their phone until they met someone by radio. Now the group and its first message arrive over the relay like any other chat.
- On Android 10, 11 and 12, Knit stopped looking for phones over Wi-Fi as soon as you left the app. It keeps looking in the background now, and tells you when Android will only allow that with Knit open.
- Unless you had turned off battery optimisation for Knit, the mesh stayed down after a reboot until you next opened the app. It now comes back at boot either way.
- Now and then Android refused to let a phone accept Wi-Fi connections from its neighbours, and Knit asked again hundreds of times a second until something else reset the radio. It now waits between tries and resets the radio itself after a few.
- On a slower phone, Knit could hang for twenty seconds after a reboot or a background restart, and Android offered to close it. The mesh now starts without holding up the app.
- A phone drifting at the edge of Wi-Fi range made yours resend your profile every half minute, and the phones that heard it threw every copy away. It now goes out to each phone once, and again only after ten minutes.

[Read 2.7.0 in full on What's New](https://whatsnew.fyi/product/knit/releases/v2.7.0) · [Tag and signed APK on GitHub](https://github.com/getknit/knit/releases/tag/v2.7.0)

### 2.6.0 — 16 September 2026

Search every chat, send big files phone to phone, and see what your mesh carried.

Search every chat, send big files phone to phone, and see what your mesh carried. Knit 2.6.0 adds search across every chat, contact and message: tap the magnifier above the chat list, type a few letters, and a result opens its chat on that exact message. It searches what is already on your phone, so it works with no signal at all. A stranger's message request stays out of the results until you accept it.

Send a file too big to attach, past the 8 MB that photos and files in a chat allow, to a contact who is nearby. Pick it from the menu in a direct message and the two phones connect to each other over Wi-Fi for the transfer, phone to phone and off the mesh, and it lands in their Downloads folder. The nearby count above the chat list now opens Your mesh, a screen for what your phone has done for others: messages it passed along or handed straight to the person they were for, what it is carrying right now, and how many people it has met. Every number is counted on your phone and stays there.

The app looks different too. Material You dynamic colors take Knit's palette from your wallpaper on Android 12 or newer, off until you flip the Dynamic colors switch in Settings, and a light or dark setting of your own sits beside it. Someone without a photo gets their own colour behind their initial, the same one on every phone, and a group without a photo shows up to four of its members' faces where a grey icon used to sit. Setting up Knit is now three pages, and only the nearby-devices permission gets you in; notifications and background battery use can wait. Your own profile has a screen of its own, and a contact's profile opens with whether they are online, verified, blocked or open to chat.

Underneath, 2.6.0 fixes a long list. Direct messages and group chats keep every message now, instead of dropping the oldest past 5,000. A message you start and don't send waits for you as a draft. Where you are can go into a chat from its menu, read only between that tap and the send. A paired LoRa radio no longer repeats what Bluetooth or Wi-Fi already delivered, and no longer spends its airtime on direct messages a relay is already carrying; a Nearby post's delivered tick now comes home over LoRa or a relay instead of waiting for the other phone to be back on Bluetooth or Wi-Fi. A relay that sends junk or stops answering no longer ties Knit up. Tap a relay invite link and the relay is added once you have read what it will see. And Settings gained an About screen listing every library Knit is built from, each with its license, readable offline.

- Search every chat, contact and message from the magnifier above the chat list. A hit opens its chat on that exact message, and a stranger's message request stays out of the results until you accept it.
- Send a file too big to attach to a nearby contact straight over Wi-Fi, phone to phone and off the mesh. It arrives in their Downloads folder.
- Your mesh, behind the nearby count, shows what your phone passed along for others, what it is carrying now and how many people it has met. Every number is counted on your phone and stays there.
- Material You dynamic colors take Knit's palette from your wallpaper on Android 12 or newer, off until you flip the switch, and a light or dark setting of your own sits beside it, following your phone until you pick one.

**Added**

- Knit now supports Material You dynamic colors, taking its palette from your wallpaper the way Android's own apps do. The Dynamic colors switch in Settings stays off until you turn it on, on Android 12 or newer, and the online dot and verified shield stay green either way.
- You can send where you are from the menu at the top of a chat. Knit reads your position only between that tap and the send, and the other phone gets a card that opens in any maps app. Android asks for the permission the first time you use it, never before.
- Settings now lets you set Knit to light or dark instead of following your phone. It follows your phone until you pick one, and the choice appears on Android 12 or newer.
- A message you start typing and don't send is still there when you come back to that chat, and the chat list shows it as "Draft:" until you send it. Every chat keeps its own.
- Send someone nearby a file that is too big to attach, from the menu in a direct message. The two phones connect to each other over Wi-Fi for the transfer, and the file arrives in their Downloads folder.
- Tap the magnifier at the top of the chat list to find a chat, a contact, or a message by what it said. Open a message from the results and its chat lands on that message. A stranger's message request stays out of the results until you accept it.
- The Support Knit screen now offers GitHub Sponsors alongside Ko-fi and Liberapay. Pick whichever you already have an account on.
- Tap the nearby count above the chat list for a new Your mesh screen: messages your phone passed along or handed straight to the person they were for, what it is carrying right now, and how many people it has met. Every number is counted on your phone and stays there.
- Tap a relay invite link and Knit adds that relay and turns relays on for you, once you have read what the relay will see. A contact card that names a relay you don't use now offers to add it the same way.
- Diagnostics now shows which version a connected relay is running. A relay that publishes nothing about itself, including one that is not Knit's own relay software, shows no version.
- Settings has a new menu with an About screen and the open-source libraries Knit is built from; tap one to read its license, even offline. About also shows the version, the build and where Knit was installed from, with a Copy button for bug reports.

**Changed**

- Setting up Knit is now three pages: what it does, your name, and the permissions it needs. Only the nearby-devices permission gets you in; you can leave notifications and background battery use for later.
- Direct messages and group chats now keep every message, however long they run. Knit used to drop the oldest once a chat passed 5,000, and the Nearby room and a paired radio's channel still keep only the last 30 days.
- The chat list now opens and updates without going back through every message you have stored. A phone with years of history gets to its chats as fast as a new one.
- Your name, photo and status moved to their own screen. Settings still sits in the chat list's menu, and the first row on it opens your profile.
- A contact's profile now opens with whether they're online, verified, blocked or open to chat, and Message sits at the top rather than below the technical details. Under that it lists the groups you share and when you first met.
- Your own profile is now grouped under What people see and This device, and Save moved up to the top bar. The Open to chat switch still takes effect the moment you flip it.
- Menus, cards, dialogs and sheets now match the rest of the app. They had been drawing a grey-purple from Material's defaults that never sat right next to Knit's coral.
- A file, link or location card in a message now carries its own colours instead of the bubble's. The same card had looked different depending on whether you sent the message or received it.
- On Android 11 and older, a list pulled past its end now glows Knit's coral. It had been a flat grey that belonged to nothing else on the screen.
- A contact with no photo now gets their own colour behind their initial, and Knit picks the same one on every phone and in your notifications. A chat list full of people without photos no longer looks like a row of identical grey circles.
- A group with no photo now shows the people in it, up to four faces in one circle, where a grey icon used to sit. Its notifications carry the same faces, and a group with only one other person gets a coloured group icon instead.
- Enter in the message field now starts a new line instead of sending. The send button sends, so you can write a message across several lines before you tap it, and on a hardware keyboard Ctrl+Enter sends too.
- The menu that pops up over a text field no longer offers Autofill. Android puts it on any box that could hold a saved password or address, and nothing you type into Knit is one.
- A stranger who floods the Nearby room can no longer push out what you and your contacts posted there: their oldest posts go first, and each stranger keeps at most 200. A phone in range can also only pass Knit so many room posts a minute.
- Settings and the permissions page now say when Knit's battery use is set to Restricted, and that the mesh stops as soon as you leave the app. Both offer the system page where you can change it.

**Fixed**

- Diagnostics now lists Wi-Fi Aware on a phone that has no such radio, or one that needs Android 12 for it, and says which. That row used to be left out, which looked the same as Wi-Fi being switched off.
- A LoRa radio you never paired now reads "Not in use" in Diagnostics, and a paired one that is out of reach says so. Both used to sit under the same grey dot with "0 heard".
- Knit no longer repeats over your LoRa radio a message that Bluetooth or Wi-Fi has already delivered. If you have a board paired, its limited airtime now goes to the messages that actually need the range.
- Restarting Knit no longer makes a paired LoRa radio repeat what it has already sent. Knit now remembers how much airtime it has spent, so a restart can't hand the radio a fresh allowance to burn through.
- Leave a group and start it again with the same people, and the others get your messages once more. The chat shows you rejoined, and nobody but you can put you back in.
- Someone two phones away from you now shows up as nearby as soon as they arrive. Before, the phone in the middle sometimes held on to their details, so you saw them only after a minute or once they had sent something.
- Knit no longer crashes if Android is backing it up at the moment the mesh tries to restart. The restart now waits for the backup to finish, and the mesh comes back on its own rather than staying off until you next open Knit.
- The delivered tick on a Nearby post now reaches you over a paired LoRa radio or a relay, so you no longer wait for the other phone to be back on Bluetooth or Wi-Fi. Knit gives a reply a minute to carry it first, then sends it on its own.
- A delivered tick from someone out of range now reaches you even if you have no LoRa radio of your own. A phone beside you that has one passes it the last step, instead of dropping it as it used to.
- If you use a relay, Knit no longer spends your LoRa radio's airtime on direct messages the relay is already carrying to that person. The radio still carries the Nearby room, and messages to anyone the relay can't reach.
- A new group's first message now opens even when Knit was shut down on your phone between the key arriving and the group itself. It used to stay unreadable for up to fifteen minutes after you came back.
- A contact you could only reach through an Internet relay or a LoRa board showed as Offline on their profile. The status line under their name now says Reachable via relay, and Online still means your own radios can see them.
- A contact whose phone dated a profile, reaction, group name or photo far in the future could keep that version stuck on your phone for good. Knit now caps such dates at a few minutes past its own clock, the way it already does for messages.
- A relay that sends junk or stops answering after it connects no longer ties Knit up for minutes at a time or keeps a photo from ever arriving through it. Relays and Diagnostics now say what went wrong instead of showing it as connected.
- A phone in a group chat kept sending itself a sealed key message every hour or two, and every phone around it carried the copies. Knit no longer mistakes its own profile for a contact's, which is what started the loop.
- Knit no longer crashes when you open it again within a minute of leaving, if you have set its battery use to Restricted. Android stops the mesh when a restricted app leaves the screen, and opening Knit starts it again.
- Blocking someone no longer makes your phone keep re-syncing with the phones around it for as long as the block stands, which was costing radio time and battery. Anything they sent while blocked stays hidden after you unblock them.
- Adding a relay now works whether you type its address as wss:// or WSS://. Knit used to reject the capitalised one the same way it rejects an address it cannot use, with nothing to tell the two apart.
- A photo from the Nearby room that reached you over a LoRa radio while no other phone was near now loads once one comes back into range. It used to sit loading until you restarted Knit.
- A photo that reached you through a relay now goes on to the phone next to you that asked for it. That phone used to wait until it thought to ask again, which could be half an hour.
- A photo sent through a relay now goes up as soon as it's clear the radios didn't deliver it, instead of up to fifteen minutes later. One the two phones already passed over Bluetooth or Wi-Fi is no longer uploaded to the relay as well.
- Unpairing a LoRa board now always reaches your contacts. It sometimes didn't, so their phones could go on treating that radio's posts as yours and sending you messages through it.

[Read 2.6.0 in full on What's New](https://whatsnew.fyi/product/knit/releases/v2.6.0) · [Tag and signed APK on GitHub](https://github.com/getknit/knit/releases/tag/v2.6.0)

### 2.5.0 — 8 September 2026

A Meshtastic radio for reaching far past Wi-Fi and Bluetooth, and files of any kind.

Message someone kilometres away with no phone in between. Knit 2.5.0 pairs with a Meshtastic LoRa board over Bluetooth, and that board carries the public Nearby room and your direct messages far past where Wi-Fi and Bluetooth give out. One board can extend every Knit phone around it, so two groups across a valley need a board with each group, not one for every person. Knit is still a mesh of phones out of the box, and most people will never need a board.

The radio changes the route, not the protection around a message. A direct message crossing LoRa is the same sealed, end-to-end encrypted frame Knit would hand to a phone nearby, and it opens the same way at the other end. Group chats, typing and attachment bytes stay on the phone mesh or an opt-in Internet relay, and Knit tells you when something cannot take the LoRa path. What the radio cannot seal is the addressing. Sender, recipient, timing and rough size stay readable so radios can route the message, now across kilometres rather than across a room, which is why direct messages over LoRa get a switch of their own.

Pairing a board also brings its own Meshtastic channel into Knit, so you can read the radio mesh around you without switching apps. That channel sits outside Knit's private messaging and should be treated as public, much like the Nearby room. On firmware 2.8 and newer, Meshtastic radios can sign what they send. When that signature checks out against the key in a Knit contact's profile, Knit shows the post as verified. Otherwise, the room still shows the radio number the post came from so you can compare it with the number a contact says they use. If the channel is not for you, one switch in LoRa settings takes it off your chat list and leaves your board carrying only Knit's own traffic.

Away from the radio, 2.5.0 brings a pile of everyday improvements. Send any kind of file in a direct message or group chat, under the same 8 MB limit photos already have. React with any emoji, from a quick row that learns the ones you actually use. Threads with thousands of messages now open as quickly as short ones, and group chats show a shield beside every member you have verified, just like a direct message does in its header. Link previews are new and stay off until you switch them on, because fetching a page's title and picture reveals your IP address to that site. Knit also stopped handing your screen text to Android's content-capture service.

- Pair a Meshtastic board over Bluetooth and the mesh gains a hop measured in kilometres. Put one radio with each distant group and everyone else keeps using the phone already in their pocket.
- Your board's own Meshtastic channel becomes a room in Knit, plaintext by design like the public Nearby room. A post carries a shield when the sender's radio signed it, and a switch removes the room if you would rather not read it.
- Send any kind of file in a direct message or group chat, under the 8 MB limit photos already have. It arrives with its name and saves wherever you point Android's file picker.
- Link previews stay off until you switch them on. Fetching a page's title and picture shows that site your IP address, which is why Knit does not fetch one unless you ask.

[How Knit uses a Meshtastic radio](https://getknit.app/updates/meshtastic/index.md)

**Added**

- Pair a Meshtastic radio and Knit will use it. The Nearby room and your direct messages then reach contacts well past where Wi-Fi and Bluetooth give out.
- Turn off the Meshtastic room in LoRa settings if you'd rather not read your radio's own channel. It leaves the chat list and goes quiet, and your board carries only Knit's own messages.
- A contact's post in the Meshtastic room now shows a shield when their radio signed it. On radios running firmware 2.8 or newer, a post can be up to 166 bytes, the most the radio can still sign.
- A contact's profile now shows the LoRa radio they say they use. The Meshtastic room prints the same number under a heard post, so you can compare the two.
- Paste a link into a message and, when your phone is online, a small card with the page's title and picture goes along with it. Off by default in Settings, since fetching the card shows the website your IP address.
- Tell people nearby you're open to chat, from Settings. When someone in radio range has said the same and you two have never messaged each other, you both get one nudge to say hi in the Nearby room, and their profile shows the flag.
- Send any kind of file in a direct message or group chat, under the same 8 MB limit photos already have. A received file shows its name and size, and saves wherever you point Android's file picker; the Nearby room stays photos only.
- React with any emoji. Long-press a message and tap the "+" beside the quick reactions to browse or search the whole set, and the quick row starts remembering what you actually use instead of the same six forever.
- A group chat now shows which members you've verified. A shield sits beside their name on every message they send, the same one a direct message shows in its header.

**Changed**

- A chat with a lot of messages no longer opens on "No messages yet". Faint placeholder bubbles fill the thread while Knit loads it, so a long conversation stops looking like an empty one.
- A long chat now opens as fast as a short one. Knit loads the newest messages first and adds older ones as you scroll back, so a thread with thousands in it no longer stalls on the way in.
- Aliases are three words now, like ReallyJoyfulFerret. Settings and a contact's profile show the new one.
- Knit no longer feeds what is on screen to Android's content-capture service (the "app content" suggestions). An end-to-end-encrypted messenger has no business handing its screen text to another process, and long lists got smoother for it.
- Chats now say what happened in them. A quiet centered line marks a contact changing their name ("Sam is now Sam Vimes") or photo and a group being renamed or created, with no notification, no unread badge and no bump up your chat list.
- Adding someone from a contact link now says they have to add yours as well. The Add-by-link screen and the waiting line on their profile both carry the note, so a one-sided add no longer looks like a bug.

**Fixed**

- Knit no longer gets stuck showing a blank screen. Opening it at the moment it was closing could leave it drawing nothing, with no way out but force-stopping it; it now notices and rebuilds its own screen.
- Phones that only relayed your messages no longer count as nearby. The online dot, chat list, group picker and nearby count now show only what your own radios can currently see.
- A Nearby room message sent while two radios were out of range of each other now arrives when they come back into range. It used to wait for the phones to get close enough for Wi-Fi or Bluetooth instead.
- Messages waiting on your Meshtastic radio now survive a dropped Bluetooth connection. Knit used to discard them one at a time while the phone reconnected, so a message could vanish without ever being sent.
- Message details for a room post names more of the people who got it. The list now says it may not be everyone who received the post.
- A message that has to travel between two Meshtastic radios now goes out as soon as there's room on the air. It could sit for the better part of an hour while a larger one blocked the queue ahead of it.

[Read 2.5.0 in full on What's New](https://whatsnew.fyi/product/knit/releases/v2.5.0) · [Tag and signed APK on GitHub](https://github.com/getknit/knit/releases/tag/v2.5.0)

### 2.4.0 — 31 August 2026

Voice notes, and optional Internet relays for when nobody is in radio range.

Keep chatting after the meetup, and let friends hear your voice. Knit 2.4.0 adds opt-in Internet relays for existing conversations across distance and voice notes for direct and group chats. The phone mesh still works with no internet needed and no account.

Internet relays are opt-in and stay off until you add one. They carry sealed copies of existing conversations that the relay cannot read, with no accounts or contact discovery. Copies expire within 48 hours. A relay sees connection IP addresses and that a conversation is active; Knit explains this before you enable it. Anyone can run a relay using Knit Spool, the AGPL relay software.

Say it in your own voice. Hold the microphone to record a voice note in a direct message or group chat, then listen before sending. Voice notes are sealed like photos. The public Nearby room stays photos and text only, plaintext by design.

This release also improves stability on phones with unreliable Wi-Fi Aware support. Knit now recognises repeated refusals and stops retrying until the radio is ready, while Bluetooth continues carrying the mesh.

- Opt-in Internet relays park a sealed copy of a message when no chain of phones can reach the other end. They stay off until you add one, and the copies expire within 48 hours.
- Record and preview voice notes in direct messages and group chats. They stay sealed like image attachments; the public Nearby room stays photos and text only.
- Add a contact from a shared link when you are too far apart to scan a code. Adding and verifying now share one screen. A link alone does not verify who sent it; compare safety numbers over a trusted call.
- Two people with the same name are told apart by the alias Knit gives every device, so you can say which Sam you are.

[How Internet relays actually work](https://getknit.app/updates/internet-relays/index.md)

**Added**

- Knit puts less on the air. Between two current phones the delivered tick — for a private message, a reaction, a nearby-room or group post — now crosses the Wi-Fi Aware fast lane in one packet instead of two, a short message likewise, and a profile in two instead of three. The frame travels in a compact form the receiver unpacks before checking the signature, so nothing about what is signed changes, and an older phone keeps receiving exactly what it did.
- Two people with the same name are now told apart. When someone nearby uses a name Knit already knows, both show their alias after it — the two-word name Knit gives every device, like "Sam (JoyfulFerret)" — in the room, the chat list, Contacts, group members and notifications, and it goes away again when the names differ. Your own alias is now shown in Settings under your name, and on a contact's profile, so you can tell someone which Sam you are. Typing an alias after "@" finds the right person to mention.
- Add a contact from a link. Too far apart to scan each other's code? Share your contact link (menu › Add contact › Share link) over any messenger, and add someone from theirs — tap it, share it to Knit, or paste it into Add contact. Each of you ends up with the other's key pinned and in Contacts, no message needed; with Internet relays on, the two of you also meet at a relay before you have ever exchanged a message. A link is not a scan: compare safety numbers over a call if it matters who is on the other end.
- Voice notes. Hold the microphone in a chat to record, slide up to keep recording hands-free, and slide away to cancel. You hear the recording back before deciding to send it, and can add text to it like any other attachment. Voice notes travel exactly the way photos do — encrypted end to end, carried by nearby phones when you are out of range of each other, and by your Internet relays if you have turned them on. They are available in direct messages and group chats. They are not offered in the Nearby room, because Knit checks images for explicit content before they reach you and there is no equivalent check it can run on speech, so it does not put unchecked audio in front of strangers.
- Group delivered-ticks (the ✓✓ on your own group messages) now survive you being away: members' receipts are batched, encrypted, and carried by the mesh — and the Internet relays, where enabled — until they reach you, just like the messages themselves.
- Knit can now use Internet relays, which you turn on yourself. Knit remains a messenger that works with no internet and no account, but a message to somebody out of radio range used to wait for the two phones, or a chain of phones between them, to meet. With relays on, Knit parks a sealed copy on a relay server, which hands it over the next time the other phone connects. A one-time explanation spells out what a relay can see — your IP address, when you send, and roughly how much — and what it cannot: your messages or photos, who you are talking to, or who else is in a group.
- A Settings screen for relays lists the ones you use, adds and removes them, and reports each one as connected, still connecting, or why it refused. Knit ships with one relay already listed and unused; it stays inert until you turn the feature on, and removing it sticks.
- Each relay also has its own switch, so you can stop using one without deleting it. Deleting forgets its address and any access token it came with, which for a private relay cannot be undone; switching one off just stops sending to it. The main switch still decides whether sealed copies leave your phone at all — a relay's own only narrows which of them carry.
- Group chats travel over relays as well as direct messages, without anyone learning from the relay that a group exists or who is in it.
- Photos travel over relays too, in sealed pieces. A photo waits while a phone that can carry it is still in radio range, so an ordinary in-person exchange never touches a relay. Where a relay cannot take it — no photo support, or the photo is larger than any relay in your list will hold — the message says "Nearby only" rather than reporting a failure: it still arrives over Wi-Fi or Bluetooth as it always did.
- Changes to your name, status, or photo now reach people you have only ever met across a relay. They previously spread by radio alone, so such a contact kept whatever it saw when you were last in range.
- A conversation says how it is being carried. A globe appears beside the double tick when the other phone answered over the internet, and beside a message that arrived that way; the connection header says when the radios are dark and a relay is carrying the conversation. The Nearby room is exempt by design — it is public and unencrypted, so it is never uploaded, and says so.
- Diagnostics gains an Internet relays section: what has been sent and received over them, photo pieces moved, photos left to the radios, and any errors a relay reported.
- A fresh install now says what to do next. The chat list always has the Nearby room in it, so it never looked empty even when there was nothing to open; a short card under that row now names the two ways in — broadcast to everyone in range, or add one person. It disappears on its own as soon as you have a conversation to open.

**Changed**

- Adding someone is one screen again. "Verify contact" and "Add by link" were two entries in the menu that did halves of the same job; they are now a single Add contact screen — your code to be scanned, a scanner for theirs, your link to send, and a box to paste the link they sent you. Nothing about how a contact is added changed: a scan still verifies the key on the spot, and a link still asks you to compare safety numbers before you trust who is on the other end.
- Knit is a smaller download and starts faster. The build strips out the parts of its bundled libraries the app never actually calls — about four megabytes of code that was being shipped and loaded for no reason. Nothing about what Knit does changed; there is just less of it to install and less for your phone to hold in memory while it runs.
- Nearby phones relaying your messages no longer learn what kind of attachment one carries. A photo and a voice note used to be told apart by a label sent alongside them in the clear; that label now travels encrypted with the message, where only the person you sent it to can read it. Relays still see roughly how large an attachment is, which they need in order to carry it for you.

**Fixed**

- The last fix for phones that shut Knit down seconds after opening did not hold on the phone it was written for. Knit was slowing its retries down correctly, then throwing that away every time the phone announced anything about Wi-Fi Aware — and a phone that cannot run Wi-Fi Aware announces something after every refusal, so the two fed each other and Knit ended up asking hundreds of times a second. It now tells a radio genuinely coming back from a phone just repeating itself, never asks more than once every three seconds no matter what, stops entirely well before Android would step in, and remembers that it gave up so a restart does not start the whole thing over. Bluetooth carries the mesh throughout.
- Knit no longer gets stuck restarting on a phone where the on-device checking model won't run. The model that screens messages and photos runs in native code, and on unusual hardware it could close the app a few seconds after opening, every time, with nothing to show for it. Knit now notices that pattern, turns that model off, and carries on — Diagnostics says so, and offers to try it again. While it is off, messages in the Nearby room are still checked against the word list; direct messages, group chats and photos are not checked.
- Knit no longer crashes when Android restarts the mesh out of sight. Phones that run short of memory — and some that simply prune background apps hard — stop Knit while it is off screen and start it again a moment later. Since Android 12 that restart is not allowed to put the mesh notification back up, and Knit was treating the refusal as a crash. It now stands down quietly and picks the mesh up again the next time you open the app or restart your phone. To have the mesh survive on its own instead, turn on Allow background battery use during setup or from Profile.
- A relay you have configured can no longer flood the app's memory. Knit now holds only what it actually asked a relay for, ignores anything else the relay volunteers, and treats the relay's stated size limits as a claim to be capped rather than a fact. Relays were always untrusted with the contents of your messages; now they are untrusted with how much of your phone they can use.
- A notification can no longer be used to exhaust your phone's memory. When someone messaged you, Knit opened their profile photo at whatever size the picture claimed to be — and a picture that arrives from someone else is theirs to choose. A tiny file can unpack into hundreds of megabytes. Knit now opens every photo at the size it actually needs, and remembers the ones it has already opened, so a busy conversation does the work once instead of once per message.
- Opening "New message" no longer flashes "no contacts yet" before your contacts appear. The list takes about a second to read on a cold start, and the screen could not tell "still loading" from "nothing here", so it drew the empty state over the transition. It now shows placeholder rows that fade into the real ones.
- Phones a few miles away, and phones with no Wi-Fi Aware radio at all, no longer show up as directly connected over Wi-Fi Aware. A relayed message carries its original sender's name, and Knit was crediting that name with the link the message actually arrived on. It now credits the phone that put the message on the air, which is the only sender Wi-Fi Aware really tells it about.
- Knit no longer re-downloads the same messages from a relay over and over. Relays hold a sealed copy longer than a phone keeps one, so for the back half of that window Knit kept asking for messages it had already delivered and thrown away, on every reconnect, and never counted a conversation as caught up. It now remembers that it dealt with them.

[Read 2.4.0 in full on What's New](https://whatsnew.fyi/product/knit/releases/v2.4.0) · [Tag and signed APK on GitHub](https://github.com/getknit/knit/releases/tag/v2.4.0)

### 2.3.1 — 27 August 2026

One fix, for phones that were being shut down seconds after Knit opened.

This release improves stability on phones that were closing Knit shortly after opening it. Bluetooth continued carrying messages while the app addressed repeated Wi-Fi Aware connection failures.

Some Wi-Fi chips reported Aware support but repeatedly refused connections. Version 2.3.1 slowed the retries; 2.4.0 completed the fix by recognising those repeated refusals.

**Fixed**

- Knit no longer disappears seconds after you open it on a phone whose Wi-Fi chip will not run Wi-Fi Aware. Some phones report Wi-Fi Aware as available and then refuse to hand it over while Wi-Fi is connected, and Knit kept asking every three seconds, forever — each attempt costing the system a little memory it never got back. Android eventually stopped the app for asking too often: within a minute of opening it, over and over, with nothing in the logs to explain why. Knit now slows those attempts down and gives up on a radio that keeps refusing, then picks it up again if Wi-Fi Aware becomes usable. Bluetooth carried the mesh the whole time, which is why messages still went through.

[Read 2.3.1 in full on What's New](https://whatsnew.fyi/product/knit/releases/v2.3.1) · [Tag and signed APK on GitHub](https://github.com/getknit/knit/releases/tag/v2.3.1)

### 2.3.0 — 24 August 2026

Forward secrecy for direct messages and group chats, encrypted delivery receipts and reactions, taking a photo without leaving the chat, and a crash report you can read before deciding to send it.

Knit 2.3.0 adds forward secrecy to direct messages and group chats. As a conversation runs, keys change and spent keys are deleted to protect traffic someone recorded earlier.

Keys rotate per block of messages, not per message. Peers on older builds use the previous static-key scheme without forward secrecy until they update. On the phone itself, chats are encrypted at rest under a hardware-backed key; reading them requires unlocking the device.

- Direct messages and group chats re-key as they run and drop the spent keys, so traffic recorded off the air cannot be decrypted later.
- Delivery receipts and reactions travel sealed in direct messages and group chats, rather than readable by any phone relaying them. They stay in the clear in the public Nearby room, which is plaintext by design, and toward peers on older builds.
- Long-press the attach button to take a photo without leaving the chat. Knit sends the shot without writing it to your gallery.
- Message info says when a message actually reached you, beside the time its author sent it. The gap is how long the mesh took to carry it.

**Added**

- Direct messages between updated phones are now forward-secret. Each conversation derives its own key material from a prekey published in your profile, then re-keys as the conversation goes back and forth, and drops the old keys. Someone who records traffic today and gets hold of a phone later cannot read the earlier messages.
- Group chats gain the same property. Every member drives their own key chain and hands its current seed to the others inside encrypted direct messages. A group's info screen says whether the group is running the new scheme or still waiting on somebody to update.
- Delivery receipts and reactions are encrypted. Until now they crossed the mesh readable by any phone relaying them, so an onlooker could tell when a message reached you, and who reacted to which message with what. They now travel sealed and look like ordinary messages on the wire.
- You can take a photo without leaving the chat. Long-press the attach button — the round button beside an empty message field — and a viewfinder opens in place of the conversation. The shot is sent as an attachment without ever being written to your gallery or handed to another app.
- Long-pressing a message offers "Message info": who sent it, when, whether it has been delivered and how it travelled, and the full list of who reacted with each emoji, which the reaction tally on the bubble does not show.
- Message info also says when a message reached you, on your own phone's clock, beside the time its author says they sent it. The gap between the two is how long the mesh took to carry it — sometimes seconds, sometimes hours if it came the long way round through someone else's phone. A direct message you sent shows the moment it landed on theirs. Messages already on your phone have no arrival time and never will: Knit wasn't watching for it then, and would rather say nothing than guess.
- Knit records its own crashes on the device. A Diagnostics row shows the report, with identifiers, file paths and contact names stripped out of it, and you decide what happens next — copy it, share it, or open a prefilled bug report. Nothing is uploaded, and there is no code in Knit that could upload it.

**Changed**

- Chats with a phone on an older version keep working, on the previous encryption scheme. A group falls back the same way while any one member has not updated, and moves over on its own once everyone has.
- The Profile entry in the overflow menu is now called Settings, since the screen also holds settings that are not about you, such as content filtering.

**Fixed**

- Saving a received photo to your gallery now saves the photo. Attachments in direct messages and group chats are stored encrypted, and the export wrote those encrypted bytes to Pictures/Knit under an image name — an unopenable file, reported as a success.
- Editing your name, status or photo now reaches the other phone straight away. An edit made soon after first contact was re-sent under a label the mesh had already seen, so it was discarded on arrival and stayed invisible for up to twelve hours.

[Read 2.3.0 in full on What's New](https://whatsnew.fyi/product/knit/releases/v2.3.0) · [Tag and signed APK on GitHub](https://github.com/getknit/knit/releases/tag/v2.3.0)

### 2.2.3 — 13 August 2026

A themed launcher icon, and a launch screen that follows the system light/dark theme.

Knit's launcher icon now ships a monochrome layer, so on Android 13 and newer it picks up your home screen's theme instead of sitting there in its own colours. Opening the app on a dark phone no longer flashes near-white at you first. Neither is a big change; both are the sort you see every day.

**Added**

- The launcher icon supplies a monochrome layer, so on Android 13 and newer it takes part in themed-icon colour schemes instead of falling back to a generic shape.

**Fixed**

- Starting Knit on a dark-themed device no longer flashes a near-white screen before the app draws. The launch window and splash background now track the system theme, in lockstep with the in-app colours.

[Read 2.2.3 in full on What's New](https://whatsnew.fyi/product/knit/releases/v2.2.3) · [Tag and signed APK on GitHub](https://github.com/getknit/knit/releases/tag/v2.2.3)

### 2.2.2 — 31 July 2026

Fixes a crash in "Scan their code".

Verifying a contact is smoother in 2.2.2. The rebuilt QR scanner handles unreadable frames without closing the app and explains when it needs camera permission. You can still show your own code for a friend to scan.

**Fixed**

- "Scan their code" no longer crashes when the camera opens. The scanner has been rebuilt on CameraX; the library it used before could crash the app on devices whose camera reports one frame size and delivers another, which is why it worked on some phones and not others. Decoding now treats any unexpected frame as a frame without a code in it.
- Declining the camera permission, or running on a device with no camera, now shows an explanation instead of a blank screen. Showing your own code still works either way.

[Read 2.2.2 in full on What's New](https://whatsnew.fyi/product/knit/releases/v2.2.2) · [Tag and signed APK on GitHub](https://github.com/getknit/knit/releases/tag/v2.2.2)

### 2.2.1 — 23 July 2026

The first release available on F-Droid. A build-only change with no code or feature differences from 2.2.0.

[Read 2.2.1 in full on What's New](https://whatsnew.fyi/product/knit/releases/v2.2.1) · [Tag and signed APK on GitHub](https://github.com/getknit/knit/releases/tag/v2.2.1)

### 2.2.0 — 22 July 2026

The first release published on F-Droid, and the first built reproducibly: F-Droid rebuilds Knit from source, byte-compares its result against ours, and ships ours.

Install Knit through F-Droid with a reproducible build. F-Droid rebuilds the app from source and compares it byte for byte with the release APK before distributing it.

F-Droid, direct downloads and offline sharing use the same signed APK. A friend can hand you Knit over the mesh, and you can receive updates later through F-Droid.

**Added**

- The Support Knit screen offers Liberapay alongside Ko-fi.

**Changed**

- Release builds are reproducible. F-Droid rebuilds this release from source and byte-compares it against the APK on Knit's GitHub Releases page, then distributes ours — so one signed APK serves F-Droid, a direct download, and Knit's own offline "share the app" feature alike, and a phone handed Knit over the mesh can still take updates normally.

[Read 2.2.0 in full on What's New](https://whatsnew.fyi/product/knit/releases/v2.2.0) · [Tag and signed APK on GitHub](https://github.com/getknit/knit/releases/tag/v2.2.0)

## Older releases

- [Every Knit release on What's New](https://whatsnew.fyi/product/knit)
- [Older tags on GitHub](https://github.com/getknit/knit/releases/tag/v2.1.0)

Source: [Knit's changelog](https://github.com/getknit/knit/blob/main/CHANGELOG.md)

Canonical page: https://getknit.app/updates/
