Skip to content

Changelog and release notes

RYNO publishes a note for every version of its macOS app: what you can now do, what changed and what was fixed, in plain language and dated. The latest version is 1.3.2, released on 2026-09-03. Follow new versions with the RSS feed, or read the same notes inside the app.

New to RYNO? Contact the team , or start with the documentation . Every version below is also in the RSS feed.

Versions at a glance

Every published version, the most recent first
VersionReleasedWhat changed
1.3.2What the documentation promises
1.3.1The app no longer stops on its own · Panels, menus and tooltips move again · The interface is in English
1.3.0Flow steps · Reading a flow · Screenshots in a flow · These release notes · Fixed
1.2.0Update checks · When an update is offered · Answering an offer
1.1.0Install and updates · Several windows, several projects · Request tabs · Throwaway requests · Domain associations · Collections, navigation and interface · Agent bridge · Fixed
1.0.0Your workspace · Requests and deep links · Environments and secrets · Devices · Running · Flows and reports · Getting around · Agent bridge · Privacy

[1.3.2] —

Nothing changed in the app itself this time. The documentation now says plainly what Ryno can and cannot tell you when your iPhone or iPad is connected by cable.

What the documentation promises

  • The opening line no longer promises a result Ryno cannot see. On an iPhone or an iPad connected by cable, Ryno sends the link but cannot tell you what the device did with it — so the first thing you read now names the devices where Ryno does report back: an Android phone and an iOS simulator.

[1.3.1] —

Nothing new to do in RYNO this time. Several things that were quietly broken now work — including one that could stop the app without a word, and another that left every panel and menu without any motion at all.

The app no longer stops on its own

  • Closing every window no longer kills RYNO. The app stays available when you close its windows, but it kept watching iOS devices and talking to windows that were gone — and the warning that followed could end the app in silence, taking unsaved work with it.
  • Watching stops when nobody is looking, and picks up again when you open a window.
  • Reopening a window shows an up-to-date device list, as if it had never paused.

Panels, menus and tooltips move again

  • Side panels, dialogs, popovers, menus, dropdowns and tooltips used to appear all at once, with no fade and no motion — nothing announced where they came from or what they covered.
  • A side panel now slides in on a spring, just after the background dims, and settles instead of snapping into place.
  • Closing a panel is immediate — no delay on the way out, only on the way in.
  • Closing a panel while it is still opening turns it around from wherever it is, with no jump.
  • Escape and clicking the background still close a panel while it is animating.
  • If your system asks for reduced motion, you get it — and never a longer wait.

The interface is in English

  • Hundreds of labels, error messages and tooltips were still in French, so a message you were shown did not always match what you were reading elsewhere.
  • Screen reader labels were affected too — the ones nobody sees, and nobody would have caught by looking.
  • The welcome screen said RYNO was for Android only, while the About panel said Android and iOS. Both now say the same thing.
  • Keyboard shortcuts show the right keys for your platform, without guessing before the window is ready.

[1.3.0] —

This release lands in two places. Flows stop being lists of steps you simply put up with: you can see and change what a step will actually do, read a flow's description in full, keep its header within reach while you scroll, and decide once for the whole flow when screenshots are taken. And these release notes are now written in English, for you rather than for the people who build RYNO — with a way to find your way around as they grow.

Flow steps

  • You can finally see what a step will do — and change it. A step could carry run options — a screenshot at the end, a logcat capture, force-stopping the app, clearing its data, a time limit — that were applied on every run but shown nowhere. A flow written by an agent would take a screenshot at every step with no way to stop it. A step now shows those options, with the same controls as the request editor.
  • A step that points at a request can decide differently. You see the options it inherits from the request, and you can override them for this flow only. An overridden option is marked, with a button to hand it back to the source. The request file is never touched.
  • A step card tells you what it carries. A badge counts the options that are no longer at their default, whether the card is open or closed.

Reading a flow

  • A flow's description opens at the height of its text. It used to be locked to two lines, so you read the first thing you look at through a slot. It now opens fully, follows your typing, caps and scrolls — and you can drag it taller past that cap.
  • The flow header stays at the top. The name, Run flow and delete stay within reach while you scroll through the steps, instead of disappearing on the first scroll.
  • The description uses the full width and scrolls with the steps, next to the step count, instead of being squeezed into a column beside the run button.
  • Switching flows starts at the top rather than keeping where you were in the previous one.

Screenshots in a flow

  • A flow decides once when screenshots are taken: per request (what you had until now), never, at every step, only on failure, or only on success. The setting is saved in the flow file, so your team gets it too.
  • A screenshot taken "on failure" catches the right moment. It is taken when the verdict is given, on the screen you were actually looking at — not at the start of the step, before anything has been judged.

These release notes

  • You always know which version you are reading. The version number stays at the top while you read what it changed, and one version replaces the previous one instead of leaving you with orphan lines.
  • The version you are running is marked, and a divider shows where what is new for this machine ends.
  • You can search for a version by number or by date. Typing the start of a number no longer brings back a version that merely contains it somewhere else.

Fixed

  • A finished run is recorded once. On the summary screen, every key press saved the run again under a new identity — eighteen reports for a single session.
  • The repository moved, so the links from the About and Privacy screens point to its new address.

[1.2.0] —

This release holds in one sentence: automatic updates work now. They did not. RYNO was already meant to tell you at launch when a newer version existed. The mechanism was there, but the question it asked could never be answered — so the answer was always no new version, for everyone, every time.

Update checks

  • RYNO finally finds published versions. It asked for the latest version at an address it was never allowed to read, so it always heard silence and never offered you anything. It now reads the published version where it already reads the downloads.
  • The installer no longer tells you to check a version number you never typed. Run without options, it suggested reviewing a requested version that did not exist. It now says what is true: no version is published.

When an update is offered

  • At launch, and when you come back to RYNO — no longer once a day. A version published in the morning used to reach you the next day. RYNO now checks at startup if the last look is more than 15 minutes old, and when you return to the app after leaving it aside, if it is more than an hour old.
  • Nothing runs in the background. No timer: an app sitting behind other windows asks nothing, and RYNO can stay open for hours without a single request.
  • A fresh install gets its offer. The very first window was counted as a return to the app, which consumed the startup check and sent the answer to a screen that was not on display yet. Brand new installs, and the first launch of the day, were offered nothing.

Answering an offer

  • Two explicit answers: Install and Skip this version. No close button, and no offer that disappears on its own. Closing is not answering — an offer that fades away leaves RYNO unable to tell whether to ask again or stay quiet.
  • Skip this version is remembered, and only for that version. Skipping one release does not skip the next one.
  • The offer can be read in full. Its text used to run on a single line and overflow, pushing the buttons off screen. It now wraps, with the buttons underneath.
  • A failure looks like a failure. A download that could not complete was announced in the same neutral tone as good news.

[1.1.0] —

RYNO now installs, updates and explains itself: one command to install it, an update offered at launch and downloaded in front of you, and the news of each version readable offline inside the app. Around that, your desk gets wider — several windows, tabs, throwaway requests — and domain association checks become honest on iOS.

Install and updates

  • Install RYNO with one command. A single curl puts the app in /Applications, with no manual quarantine unlocking and no extra step. The install address never changes from one version to the next.
  • RYNO tells you at launch when a newer version exists, quietly. And it stays silent when it cannot check: a machine off the internal network is normal, not an anomaly, and a banner at every launch would only teach you to ignore banners.
  • Downloading an update is visible, with the app still open. Accepting an update used to close RYNO and then show nothing at all while 150 to 200 MB went through — several minutes of silence indistinguishable from a crash, and clicking the icon reopened the old version. The download now happens while RYNO is open, with megabytes received and a button to cancel; the app only closes for the few seconds it takes to put the new one in place.
  • What's new. The news of each version is readable in the app and offline. Nothing is fetched, nothing is waited for.

Several windows, several projects

  • Command+N opens a new window, and a project is only ever open once: asking for a project that is already open brings its window to the front instead of making a copy that would write to the same files.
  • The agent bridge talks to the right project. With several windows open, a tool no longer addresses "the" workspace but the one you point it at.
  • A setting applies in every window, immediately, without closing any.

Request tabs

  • Tabs for open requests, with Command+T and Command+W. Moving between requests no longer means walking the tree again.
  • The switch shortcut walks tabs by recent use — most recently visited first, like an app switcher — instead of following display order.
  • The tab bar no longer loses track: a tab does not silently vanish from it.

Throwaway requests

  • Test a deep link without writing anything into your project. A throwaway request lives for the length of the try and creates no file: no need to clutter a collection to check one URL.
  • Command+Shift+N creates one from the keyboard.
  • A try that works can be promoted into a real request, without typing it again.

Domain associations

  • The check now follows the device you target. A request aimed at an iPhone or a simulator was compared against Android data and an Android package name, so the verdict was not about the app you were testing. RYNO now reads what Apple publishes for the domain and compares it with the bundle identifier of your request.
  • The domain declares your app, but not this path. Apple lets a domain declare which paths each app handles: RYNO now tells this common case apart from a domain that does not declare your app at all. An iOS request without a bundle identifier says so plainly instead of showing a made-up verdict.
  • A detail panel behind the verdict, so you can see what the domain actually declares rather than a plain red or green.
  • The device side of the check is shown next to the server side on Android: a domain can declare your app correctly while the device has not verified it, and neither fact implies the other.
  • The signature of the installed app is compared with the one the domain declares.

Collections, navigation and interface

  • Open a workspace by dropping a folder onto the window.
  • Keyboard navigation in the collection tree.
  • Resizable sidebar, and it can be closed.
  • Secrets are hidden in the environment panel: a local value is no longer shown in the clear by default.
  • Real history of opened requests, capped and cleaned of what no longer exists.
  • The list of destination collections is the same everywhere — importing a spreadsheet, or moving a request.

Agent bridge

  • Read and manage flows from an agent, and compose their steps from existing requests or ones created on the spot.
  • Explicit input and output for every tool: what a tool accepts and what it returns is now a promise, not an observed shape.
  • Inspector mode in development: a catalogue of tools and live calls, with output examples rather than the last values that happened to pass by.

Fixed

  • A close confirmation waits for your answer instead of answering itself after a delay. Losing unsaved work because a dialog timed out is exactly what that dialog was there to prevent.
  • Unsaved work is protected when you switch workspace, as it already was when closing.
  • The privacy document can no longer drift from what the app actually collects.
  • Automatic checking of flow steps was removed: it announced a verification RYNO could not perform.

[1.0.0] —

First release. RYNO tests Android and iOS deep links from your desktop, with no database and no server: a folder on your disk is the whole truth, and everything in it can be versioned and reviewed with your team.

Your workspace

  • A workspace is a folder on your disk. One file per request, in a tree you organise as you like, plus your environments. Everything is versionable.
  • Open without friction: opening a valid folder that RYNO has never seen sets it up and loads it, with nothing to confirm. A folder that cannot be found stays an explicit error.
  • Your last workspace reopens at startup, and recent ones are one click away.
  • Clone a workspace from a Git repository, right from the app.
  • Guard rails: quitting or reloading with unsaved changes asks before losing them.

Requests and deep links

  • Deep link editor: scheme, host, path and query parameters, each one enabled or disabled on its own.
  • {{double brace}} variables are filled in when you run, with completion while you type and a warning for anything left unresolved.
  • Per platform launch options: action, categories and intent extras on Android; bundle identifier, launch mode, arguments and environment on iOS.
  • A collection tree: create, rename, duplicate, move and delete requests and folders, from the keyboard or the mouse.
  • Import a spreadsheet to create a whole collection at once, with a line-by-line summary of what worked and what did not.
  • Domain association check on Android: RYNO asks a domain whether it really declares your app. It is advisory — a domain that does not answer resolves to unknown instead of spinning forever.

Environments and secrets

  • Shared environments are versioned with your project, and local secrets stay out of Git: your credentials never leave your machine.
  • Switch environment from the sidebar, and edit shared values and secrets side by side.
  • Where each value comes from is shown: you always know what will be filled in.

Devices

  • Android: devices appear and disappear instantly, with no polling. Plug one in and it is there.
  • iOS: simulators are listed for you, refreshed at an adaptive pace (slower on battery), and a stopped simulator can be started from the menu.
  • Physical iPhones and iPads, in a deliberately limited mode: RYNO can send a deep link to a connected device, but cannot check that it was received — Apple's tools do not allow it. RYNO says so as soon as a physical device is your target, and reports sent, never succeeded.
  • Two fleets in the picker, each stating how it is tracked. Stopped simulators are greyed out rather than hidden.
  • Hide devices you never use from the picker. The setting is personal to your machine and does not travel with your project. A hidden device is never targeted.
  • Guided Wi-Fi pairing on Android, and a troubleshooting panel for devices that do not show up.
  • A device that is unavailable, locked or has developer mode off stays visible, greyed out, with the reason and what to do — never silently hidden.
  • Your target is never swapped quietly: if the device you aimed at disappears, the absence of a target is explicit.

Running

  • Run a request from the keyboard, on the device you target, with a preview of exactly the command RYNO will run.
  • Values are escaped safely: a variable value cannot break out of its argument.
  • One run log for both platforms, with the exit code and the raw output.
  • Run history is kept, capped, and readable per request.

Flows and reports

  • Flows chain several requests into one scenario, with custom steps.
  • A full screen runner walks a flow step by step and asks you when only a human eye can judge — answer from the keyboard.
  • Reports keep the verdict of each step, readable afterwards.

Getting around

  • Three modes: requests, flows and reports.
  • A command palette and global search across your workspace.
  • 23 keyboard shortcuts, listed in a panel of their own.
  • Light and dark themes, switchable from the keyboard.

Agent bridge

  • RYNO lets an agent drive your workspace: list and read collections, requests and environments; create, edit, rename, duplicate, move and delete requests and collections; set an environment variable; list devices and run a request.
  • A hidden device is never chosen as a target, and a send that cannot be verified is never reported as a success.

Privacy

  • Usage data is opt-in: nothing is sent without your consent, and you can read exactly what would be, inside the app.
  • No request content is ever sent: no URL, no variable value, no domain name.
  • Hosted in Europe.