Repository navigation
Releases: rayanjainn/Ferrite-Browser
Release list
ferrite · latest build
ferrite · latest
Published automatically after a manual CI run succeeded on every
platform. This is build 62
(build-62-4892acc). The release called
latestalways holds the newest build; every earlier build stays on the
releases page under its own
build-<number>-<commit>tag, so if this one is bad you can download an older one.
| Field | Value |
|---|---|
| Commit | 4892acc |
| Branch | main |
| CI run | https://github.com/rayanjainn/Ferrite-Browser/actions/runs/37657137925 |
| Date | 2026-10-07 18:25 UTC |
Downloads
| Platform | File | Notes |
|---|---|---|
| macOS (Apple silicon) | ferrite-4892acc-macos-arm64.zip |
Unzip, drag Ferrite.app to Applications. Not notarized, so macOS blocks it once: open System Settings → Privacy & Security and click Open Anyway, or run xattr -dr com.apple.quarantine /Applications/Ferrite.app. |
| Windows (x64) | ferrite-4892acc-windows-x64.zip |
Unzip and run ferrite.exe. SmartScreen may ask once; choose "Run anyway". |
| Linux (x64) | ferrite-4892acc-linux-x64.tar.gz |
Extract, then ./ferrite or ./install.sh. Needs a graphical session; see README.txt inside. |
Media builds (experimental)
Files ending in -media are the same app with video, audio, WebRTC, camera,
microphone and screen sharing, and streaming players such as YouTube's (Media Source
Extensions). The macOS and Windows ones carry their own GStreamer, so they are large; the
Linux one needs GStreamer installed (see its README.txt). They have not been run on a
Mac or on Windows by the people who wrote them. If a media file is missing from the
list, its build failed and the normal packages were published without it.
What is in this release
A fix release. Everything below landed since build 52 (91441a0). Each item has a row in
docs/TO-DO.md (the T- numbers) saying exactly how it was checked.
Downloads that start
- Windows: no more "VCRUNTIME140.dll was not found". The Windows packages now carry
the Visual C++ runtime next toferrite.exe(MSVCP140.dll,VCRUNTIME140.dll,
VCRUNTIME140_1.dll...). Every CI machine has it installed, so earlier builds started
there and nowhere else. Each package is now checked before it is published: every DLL
any file in it loads must be in the package or part of Windows (T-336). - Linux media build: no more "libgstplay-1.0.so.0: cannot open shared object file".
The-mediapackage now carries GStreamer and everything it needs inlib/beside
ferrite; you install nothing. Keep the folder together (./install.shcopies all of
it into~/.local/lib/ferrite). CI runs the package, and the video tests, on a clean
Ubuntu with no GStreamer before it is published (T-337). - macOS packages are checked the same way: nothing in the app may load a library from
Homebrew or another place only the build machine has. - Windows: no black console window next to the browser.
ferrite.exeis now a
Windows app, and what it prints goes to%LOCALAPPDATA%\Ferrite\logs\ferrite.log
(send that file with a bug report). Before, the window held the messages and no log
file was written (T-341).
Video
- A video fed by a page (YouTube's way) now ends properly. At the very end the
element sometimes stopped and never said "ended". About one play in six (T-339). - Video no longer stops on a busy computer. Under load, a stream could start before
it was connected, or lose its connection while the sound output was being set up, and
the video stopped (once this crashed the media engine). Now the stream waits for its
connection, and a player that loses one starts again where it was (T-339).
Page errors
- YouTube's "window.cancelIdleCallback is not a function" is fixed. A frame that a
page sandboxes without scripts never got Ferrite's stand-ins for functions other
browsers build in; YouTube calls them on such a frame. The page's own scripts in that
frame still do not run (T-340). - A rejected promise in the Console now names the script it came from: the browser's own
exceptions carry a stack, as in other browsers (T-340). - The "No valid entry type provided to observe()" warning (GitHub, Google, Amazon) now
says which timings the page asked for (T-340).
Still not done (honestly)
- The browser can still feel slow. Pages are drawn by the processor, not the graphics
card (T-296, T-320). To show where the time goes on your machine, start it with
FERRITE_PERF=1, use it the way that feels slow for a minute, and send the log:- Windows: in Command Prompt,
set FERRITE_PERF=1, then startferrite.exefrom the
same window. The lines go to%LOCALAPPDATA%\Ferrite\logs\ferrite.log. - Linux and macOS:
FERRITE_PERF=1 ./ferrite(macOS:
FERRITE_PERF=1 Ferrite.app/Contents/MacOS/ferrite); the lines appear in the terminal.
- Windows: in Command Prompt,
- Google sign-in has not been confirmed end to end (T-267). YouTube playback cannot be
checked on CI, because YouTube asks CI's machines to sign in. - The builds are unsigned prototypes.
ferrite · build 62
ferrite · latest
Published automatically after a manual CI run succeeded on every
platform. This is build 62
(build-62-4892acc). The release called
latestalways holds the newest build; every earlier build stays on the
releases page under its own
build-<number>-<commit>tag, so if this one is bad you can download an older one.
| Field | Value |
|---|---|
| Commit | 4892acc |
| Branch | main |
| CI run | https://github.com/rayanjainn/Ferrite-Browser/actions/runs/37657137925 |
| Date | 2026-10-07 18:25 UTC |
Downloads
| Platform | File | Notes |
|---|---|---|
| macOS (Apple silicon) | ferrite-4892acc-macos-arm64.zip |
Unzip, drag Ferrite.app to Applications. Not notarized, so macOS blocks it once: open System Settings → Privacy & Security and click Open Anyway, or run xattr -dr com.apple.quarantine /Applications/Ferrite.app. |
| Windows (x64) | ferrite-4892acc-windows-x64.zip |
Unzip and run ferrite.exe. SmartScreen may ask once; choose "Run anyway". |
| Linux (x64) | ferrite-4892acc-linux-x64.tar.gz |
Extract, then ./ferrite or ./install.sh. Needs a graphical session; see README.txt inside. |
Media builds (experimental)
Files ending in -media are the same app with video, audio, WebRTC, camera,
microphone and screen sharing, and streaming players such as YouTube's (Media Source
Extensions). The macOS and Windows ones carry their own GStreamer, so they are large; the
Linux one needs GStreamer installed (see its README.txt). They have not been run on a
Mac or on Windows by the people who wrote them. If a media file is missing from the
list, its build failed and the normal packages were published without it.
What is in this release
A fix release. Everything below landed since build 52 (91441a0). Each item has a row in
docs/TO-DO.md (the T- numbers) saying exactly how it was checked.
Downloads that start
- Windows: no more "VCRUNTIME140.dll was not found". The Windows packages now carry
the Visual C++ runtime next toferrite.exe(MSVCP140.dll,VCRUNTIME140.dll,
VCRUNTIME140_1.dll...). Every CI machine has it installed, so earlier builds started
there and nowhere else. Each package is now checked before it is published: every DLL
any file in it loads must be in the package or part of Windows (T-336). - Linux media build: no more "libgstplay-1.0.so.0: cannot open shared object file".
The-mediapackage now carries GStreamer and everything it needs inlib/beside
ferrite; you install nothing. Keep the folder together (./install.shcopies all of
it into~/.local/lib/ferrite). CI runs the package, and the video tests, on a clean
Ubuntu with no GStreamer before it is published (T-337). - macOS packages are checked the same way: nothing in the app may load a library from
Homebrew or another place only the build machine has. - Windows: no black console window next to the browser.
ferrite.exeis now a
Windows app, and what it prints goes to%LOCALAPPDATA%\Ferrite\logs\ferrite.log
(send that file with a bug report). Before, the window held the messages and no log
file was written (T-341).
Video
- A video fed by a page (YouTube's way) now ends properly. At the very end the
element sometimes stopped and never said "ended". About one play in six (T-339). - Video no longer stops on a busy computer. Under load, a stream could start before
it was connected, or lose its connection while the sound output was being set up, and
the video stopped (once this crashed the media engine). Now the stream waits for its
connection, and a player that loses one starts again where it was (T-339).
Page errors
- YouTube's "window.cancelIdleCallback is not a function" is fixed. A frame that a
page sandboxes without scripts never got Ferrite's stand-ins for functions other
browsers build in; YouTube calls them on such a frame. The page's own scripts in that
frame still do not run (T-340). - A rejected promise in the Console now names the script it came from: the browser's own
exceptions carry a stack, as in other browsers (T-340). - The "No valid entry type provided to observe()" warning (GitHub, Google, Amazon) now
says which timings the page asked for (T-340).
Still not done (honestly)
- The browser can still feel slow. Pages are drawn by the processor, not the graphics
card (T-296, T-320). To show where the time goes on your machine, start it with
FERRITE_PERF=1, use it the way that feels slow for a minute, and send the log:- Windows: in Command Prompt,
set FERRITE_PERF=1, then startferrite.exefrom the
same window. The lines go to%LOCALAPPDATA%\Ferrite\logs\ferrite.log. - Linux and macOS:
FERRITE_PERF=1 ./ferrite(macOS:
FERRITE_PERF=1 Ferrite.app/Contents/MacOS/ferrite); the lines appear in the terminal.
- Windows: in Command Prompt,
- Google sign-in has not been confirmed end to end (T-267). YouTube playback cannot be
checked on CI, because YouTube asks CI's machines to sign in. - The builds are unsigned prototypes.
ferrite · build 60
ferrite · latest
Published automatically after a manual CI run succeeded on every
platform. This is build 60
(build-60-c985c67). The release called
latestalways holds the newest build; every earlier build stays on the
releases page under its own
build-<number>-<commit>tag, so if this one is bad you can download an older one.
| Field | Value |
|---|---|
| Commit | c985c67 |
| Branch | main |
| CI run | https://github.com/rayanjainn/Ferrite-Browser/actions/runs/37614342666 |
| Date | 2026-10-07 12:44 UTC |
Downloads
| Platform | File | Notes |
|---|---|---|
| macOS (Apple silicon) | ferrite-c985c67-macos-arm64.zip |
Unzip, drag Ferrite.app to Applications. Not notarized, so macOS blocks it once: open System Settings → Privacy & Security and click Open Anyway, or run xattr -dr com.apple.quarantine /Applications/Ferrite.app. |
| Windows (x64) | ferrite-c985c67-windows-x64.zip |
Unzip and run ferrite.exe. SmartScreen may ask once; choose "Run anyway". |
| Linux (x64) | ferrite-c985c67-linux-x64.tar.gz |
Extract, then ./ferrite or ./install.sh. Needs a graphical session; see README.txt inside. |
Media builds (experimental)
Files ending in -media are the same app with video, audio, WebRTC, camera,
microphone and screen sharing, and streaming players such as YouTube's (Media Source
Extensions). The macOS and Windows ones carry their own GStreamer, so they are large; the
Linux one needs GStreamer installed (see its README.txt). They have not been run on a
Mac or on Windows by the people who wrote them. If a media file is missing from the
list, its build failed and the normal packages were published without it.
What is in this release
A fix release. Everything below landed since build 52 (91441a0). Each item has a row in
docs/TO-DO.md (the T- numbers) saying exactly how it was checked.
Downloads that start
- Windows: no more "VCRUNTIME140.dll was not found". The Windows packages now carry
the Visual C++ runtime next toferrite.exe(MSVCP140.dll,VCRUNTIME140.dll,
VCRUNTIME140_1.dll...). Every CI machine has it installed, so earlier builds started
there and nowhere else. Each package is now checked before it is published: every DLL
any file in it loads must be in the package or part of Windows (T-336). - Linux media build: no more "libgstplay-1.0.so.0: cannot open shared object file".
The-mediapackage now carries GStreamer and everything it needs inlib/beside
ferrite; you install nothing. Keep the folder together (./install.shcopies all of
it into~/.local/lib/ferrite). CI runs the package, and the video tests, on a clean
Ubuntu with no GStreamer before it is published (T-337). - macOS packages are checked the same way: nothing in the app may load a library from
Homebrew or another place only the build machine has. - Windows: no black console window next to the browser.
ferrite.exeis now a
Windows app, and what it prints goes to%LOCALAPPDATA%\Ferrite\logs\ferrite.log
(send that file with a bug report). Before, the window held the messages and no log
file was written (T-341).
Video
- A video fed by a page (YouTube's way) now ends properly. At the very end the
element sometimes stopped and never said "ended". About one play in six (T-339). - Video no longer stops on a busy computer. Under load, a stream could start before
it was connected, or lose its connection while the sound output was being set up, and
the video stopped (once this crashed the media engine). Now the stream waits for its
connection, and a player that loses one starts again where it was (T-339).
Page errors
- YouTube's "window.cancelIdleCallback is not a function" is fixed. A frame that a
page sandboxes without scripts never got Ferrite's stand-ins for functions other
browsers build in; YouTube calls them on such a frame. The page's own scripts in that
frame still do not run (T-340). - A rejected promise in the Console now names the script it came from: the browser's own
exceptions carry a stack, as in other browsers (T-340). - The "No valid entry type provided to observe()" warning (GitHub, Google, Amazon) now
says which timings the page asked for (T-340).
Still not done (honestly)
- The browser can still feel slow. Pages are drawn by the processor, not the graphics
card (T-296, T-320). To show where the time goes on your machine, start it with
FERRITE_PERF=1, use it the way that feels slow for a minute, and send the log:- Windows: in Command Prompt,
set FERRITE_PERF=1, then startferrite.exefrom the
same window. The lines go to%LOCALAPPDATA%\Ferrite\logs\ferrite.log. - Linux and macOS:
FERRITE_PERF=1 ./ferrite(macOS:
FERRITE_PERF=1 Ferrite.app/Contents/MacOS/ferrite); the lines appear in the terminal.
- Windows: in Command Prompt,
- Google sign-in has not been confirmed end to end (T-267). YouTube playback cannot be
checked on CI, because YouTube asks CI's machines to sign in. - The builds are unsigned prototypes.
ferrite · build 52
ferrite · latest
Published automatically after a manual CI run succeeded on every
platform. This is build 52
(build-52-91441a0). The release called
latestalways holds the newest build; every earlier build stays on the
releases page under its own
build-<number>-<commit>tag, so if this one is bad you can download an older one.
| Field | Value |
|---|---|
| Commit | 91441a0 |
| Branch | main |
| CI run | https://github.com/rayanjainn/Ferrite-Browser/actions/runs/37561043209 |
| Date | 2026-10-07 04:52 UTC |
Downloads
| Platform | File | Notes |
|---|---|---|
| macOS (Apple silicon) | ferrite-91441a0-macos-arm64.zip |
Unzip, drag Ferrite.app to Applications. Not notarized, so macOS blocks it once: open System Settings → Privacy & Security and click Open Anyway, or run xattr -dr com.apple.quarantine /Applications/Ferrite.app. |
| Windows (x64) | ferrite-91441a0-windows-x64.zip |
Unzip and run ferrite.exe. SmartScreen may ask once; choose "Run anyway". |
| Linux (x64) | ferrite-91441a0-linux-x64.tar.gz |
Extract, then ./ferrite or ./install.sh. Needs a graphical session; see README.txt inside. |
Media builds (experimental)
Files ending in -media are the same app with video, audio, WebRTC, camera,
microphone and screen sharing, and streaming players such as YouTube's (Media Source
Extensions). The macOS and Windows ones carry their own GStreamer, so they are large; the
Linux one needs GStreamer installed (see its README.txt). They have not been run on a
Mac or on Windows by the people who wrote them. If a media file is missing from the
list, its build failed and the normal packages were published without it.
What is in this release
Everything below landed since the previous release on main. Each item has a row in
docs/TO-DO.md (the T- numbers) saying exactly how it was checked.
The AI agent
- Replies stream in as they are written. The agent's answer (or its question to you)
appears word by word in the panel. It is only something to watch: the agent acts on a step
only once the model has finished it and Ferrite has checked it (T-335). - Two new model providers: Anthropic Claude, and OpenAI or any server with the same API
(OpenRouter, Groq, vLLM, LM Studio, llama.cpp). Both are in Settings and in the live
evaluation runner. A server on your own computer needs no key (T-277). - Pressing Enter or Space counts as a click for the defense, a rejected site also blocks
addresses typed withouthttps://, and messages from a stopped run are ignored.
The defense
- New sanitizer rules for claimed user approval, role-play framing and reworded "ignore your
instructions" orders, with golden test cases (pattern set 3, T-327). - The audit log now says exactly which entry breaks its hash chain, and how (T-219).
Browsing
- Fewer page errors on real sites. Fixed in the browser's compatibility scripts and the
engine, and checked on real sites by a CI job that loads 32 of them:- the container-query script no longer throws "text is null" (Reddit, X, Amazon,
Cloudflare, React, Next.js, Tailwind, Vercel, Discord) (T-328); - SVG interfaces such as
SVGAElement(nytimes.com, svelte.dev) (T-329); PublicKeyCredential, saying there is no passkey device (amazon.com) (T-330);- new blank frames get the same compatibility scripts as their page (airbnb.com) (T-331);
- the Web Animations API (YouTube) and
shadowRoot.getAnimations(cloudflare.com).
- the container-query script no longer throws "text is null" (Reddit, X, Amazon,
- GitHub no longer crashes the engine when its tab closes (a WebGL clean-up bug) (T-333).
- Google's "The operation is insecure" errors: setting
document.domainno longer cuts a
page off from its own frames, and every security error names the property involved
(T-267, T-321, T-323). - Security fix: a page could read the document of a frame from another origin on the same
site. It can no longer (T-322). - Sign-in for sites that use HTTP authentication: a Sign in card with a hidden password
field. The password never appears in a log, and the agent cannot fill the card (T-294). - File inputs open your system's own file dialog (T-293).
- Video and calls: WebRTC data channels on macOS and Windows; a seek no longer drops a
video track's end; WebM audio with Opus.
Speed and the window
- The window wakes when the engine has something new instead of polling, and draws the page
from one GPU texture; on macOS the page is read in the GPU's own byte order (T-320). - Page dialogs and pickers ease in; a new tab grows into the tab strip.
DevTools and logs
- The Network tab shows each request's size and time once it finishes (T-292).
- An unhandled promise rejection in the Console names the file and line it came from.
- Windows now writes
ferrite.log(in%LOCALAPPDATA%\Ferrite\logs) (T-298).
Still not done (honestly)
- Google sign-in has not been confirmed to work end to end (T-267).
- YouTube playback cannot be checked on CI: YouTube asks CI's machines to sign in ("confirm
you're not a bot"). It needs a real computer. - The Anthropic and OpenAI-compatible connections and streaming are tested against stand-in
servers; nobody has run a live task through them yet. - No status codes in the Network tab, no AVIF images, no input-method (IME) typing, and
Cloudflare's "Just a moment…" check does not finish on some sites (T-292, T-332, T-294). - The builds are unsigned prototypes.
ferrite · build 30
ferrite · latest
Published automatically after a manual CI run succeeded on every
platform. This is build 30
(build-30-6343214). The release called
latestalways holds the newest build; every earlier build stays on the
releases page under its own
build-<number>-<commit>tag, so if this one is bad you can download an older one.
| Field | Value |
|---|---|
| Commit | 6343214 |
| Branch | main |
| CI run | https://github.com/rayanjainn/Ferrite-Browser/actions/runs/37414294899 |
| Date | 2026-10-06 05:47 UTC |
Downloads
| Platform | File | Notes |
|---|---|---|
| macOS (Apple silicon) | ferrite-6343214-macos-arm64.zip |
Unzip, drag Ferrite.app to Applications. Not notarized, so macOS blocks it once: open System Settings → Privacy & Security and click Open Anyway, or run xattr -dr com.apple.quarantine /Applications/Ferrite.app. |
| Windows (x64) | ferrite-6343214-windows-x64.zip |
Unzip and run ferrite.exe. SmartScreen may ask once; choose "Run anyway". |
| Linux (x64) | ferrite-6343214-linux-x64.tar.gz |
Extract, then ./ferrite or ./install.sh. Needs a graphical session; see README.txt inside. |
Media builds (experimental)
Files ending in -media are the same app with video, audio, WebRTC, camera,
microphone and screen sharing, and streaming players such as YouTube's (Media Source
Extensions). The macOS and Windows ones carry their own GStreamer, so they are large; the
Linux one needs GStreamer installed (see its README.txt). They have not been run on a
Mac or on Windows by the people who wrote them. If a media file is missing from the
list, its build failed and the normal packages were published without it.