Search

What changed in Search, version by version, newest first. Search updates itself: every hour it looks for a newer build signed by Office Commun and swaps it in for the next launch. What is being built for the next one is on the roadmap.

1.0.6 · 1.0.5 · 1.0.4 · 1.0.3 · 1.0.2 · 1.0.1 · 1.0

Search 1.0.6

Added

  • Suggestions from your search engine as you type, under the address field's own rows, each with a magnifying glass; choosing one searches it. Off unless you turn it on in Settings › General › Suggestions from your search engine, since what you type is then sent to your engine as you type it. Google, DuckDuckGo, Bing, Ecosia, Startpage, Kagi, Brave Search and Qwant; a custom engine shows none. Never from a private tab, and never for an address, a file path, an email, something long or something that looks like a password or key. No cookies are sent with them
  • A pop-up a page opens without a click just before is still refused, and now says so, as in Safari: a small sign beside the tab's title. A click on it offers the page the pop-up would have shown, to open in a tab of its own, and Always Allow Pop-ups from the site. An allowed site's own pages then open their windows without the click; a frame from another site on them still needs one. Settings › Privacy lists the sites you allowed, each with Remove. In a private tab, Allow lasts only as long as the tab, and nothing is kept
  • An extension's side panel, as in Chrome: ChatGPT's, Claude's, Sider's or Merlin's panel opens beside the page instead of in a tab, on the side away from the tabs, as wide as you leave it (drag its edge; a double-click puts it back). With the page as a card it is a card of its own; edge to edge or with the tabs across the top, it meets the page at a fine line. In Split View the two pages share the rest. Opened for one tab, it comes and goes with that tab. A panel that can't open opens as a tab, as before
  • The page as a card can be turned off, in Settings › Tabs › The page as a card, beside the sidebar's settings. Off, the page reaches the window's edges and the column is white with its fine line, as before 1.0.5. It stays on unless you turn it off. Asked for on #607
  • A small window for a link from another app closes with a swipe back from the page it opened on, since back from there is back to before it opened. The disc shows a cross instead of an arrow when letting go will close it. Pages you clicked through inside it go back as usual first
  • Settings › General › Home page, while an extension offers to replace the new tab page: a menu of Search's own page and each extension that asked, and the way back after one took over. One extension has new tabs at a time, and the newest one you said yes to wins; before, saying no to a newer extension also took new tabs away from an older one you'd said yes to. An extension added while another has new tabs is asked too, naming the one it would replace. Thanks @oddharsh (#472)
  • How soon tabs sleep is a choice: Settings › Tabs › How soon tabs sleep puts a tab you aren't using to sleep after two hours (Later), half an hour (Normal, as before) or ten minutes (Sooner). Memory running short still puts them to sleep sooner, whichever you chose.
  • A page can be exported as a PDF from the File menu, at its current full length and in the layout on screen rather than broken into sheets for printing. The export stays with the tab it was opened for, even if another becomes active before saving. Thanks @Qddog23 for asking (#446), and @Rahuletto for the implementation.
  • Closing the last tab that isn't a pin can leave a new tab, as closing the only tab does, instead of taking you into a pin and waking it if it was asleep. The pins stay where they are, untouched, and ⇧⌘T brings the page back; closed behind a pin, it leaves the pin on screen. Off unless you turn it on in Settings › Tabs › Leave a new tab when the last tab closes. Thanks @kingsleydon for reporting and @Adithya-Sakaray for the fix (#537, #538)
  • Import extension-only browser profiles and ego lite; ego lite passwords are shown as unsupported. Thanks @quanru (#507)
  • Select several tabs with ⌘-click or ⇧-click, including Split View pairs, and copy their addresses from the tab menu. Thanks @quanru (#454)
  • Remove All… in the passwords panel takes every password Search keeps out of the keychain at once, after asking and after Touch ID or your password, as showing one does, for when you move them to a password manager of your own. With the search box narrowing the list it reads Remove 12… and removes only what the list shows. Return is Cancel there. Passwords in Bitwarden, other apps and other browsers are not touched. Thanks @Tekkiech for asking and @karadoganyi for building it (#471, #469)
  • Search is offered under the Finder's Open With for PDFs, pictures, text files and JSON, as it was for web pages. It never becomes what opens them on a double-click. Thanks @arvakme for asking (#524)
  • Pins go back home, off unless you turn it on in Settings: as in Arc, a pinned tab closed with ⌘W, or open when Search quits, comes back at the page it was pinned at instead of wherever you went from there. Thanks @FabianoC13 (#614)
  • New tabs can open at the end of the list instead of just after the tab you are on: Settings › Tabs › New tab position › Bottom (Rightmost across the top). After current unless you change it. Thanks @FabianoC13 (#613)
  • Roomier tabs, off unless you turn it on in Settings › Tabs: taller rows and larger titles in the sidebar, for anyone who finds the column hard to read. Thanks @CallMeAl3x (#609, #570)
  • ⌘T can raise the address field over the page you are on, as in Arc, off unless you turn it on in Settings › General › New tab in a floating field. Return opens what you typed in a new tab; Escape, ⌘W or a click outside puts the field away and leaves the page as it was. On a blank tab, or with an extension's new tab page, ⌘T opens a tab as before. Thanks @FabianoC13 (#601)
  • Pins in every space: a pin can be kept in every space, shown above each space's own pins, as Arc's favourites sit above every space. Right-click a pin and choose Keep in Every Space, or Only in This Space to take it back; unpinning it takes it out of every space. A space with its own sign-ins signs in to it its own way. Off unless you turn it on in Settings › Tabs › Pins in every space, which shows while Spaces is on. Thanks @karadoganyi (#463)
  • Right-click Reload for Reload Page From Origin, beside Reload Page, so ⌥⌘R isn't the only way to it. No menu while the page is still loading, when the button is Stop. Thanks @theosementa (#571)
  • Pages at 120 Hz can now be limited to when the Mac is on its power adapter: Settings › General › Pages at 120 Hz is Never, On power or Always, and On power switches by itself as the adapter is plugged in or pulled. An earlier "on" becomes Always. Thanks @theosementa (#572)
  • Tabs can close themselves, as in Arc: a tab you haven't looked at for 12 hours, a day, a week or a month closes, unless you pinned it, named it or put it in a group. The time counts from when you last left the tab, while Search is quit too, so yesterday's tabs are gone when it opens. The page on screen stays, and so does a private tab, and one playing sound, on a call, downloading, asking something or holding something typed; a Split View pair closes whole or not at all. ⇧⌘T and History bring one back. Never unless you choose a time in Settings › Tabs › Close tabs you leave alone. Thanks @oddharsh (#429, #445)
  • Light pages darkened while Search is dark, as Dark Reader or Chrome's force-dark flag do, for the sites with no dark look of their own. A site that already has one is left as it made it: Search looks at the page's own colours just before it is drawn, and again when it switches its theme, rather than trusting what the site says about itself. The page keeps its own design in dark colours: every colour the site sets is taken to a dark one of the same hue, so its brand colours stay recognisable, and pictures and videos aren't touched at all. Dark logos and icons drawn on nothing are turned light, and writing laid over a photo keeps its colour. A frame in the page, a comment box or a widget, is darkened with it when it's light, and a video player isn't; so are the parts of a page built as web components. On macOS 14, pages are darkened by turning them over instead, and the brightest colours in pictures come out a little duller. ⇧⌘D, or the switch under the site's address, turns it off or on for the site you're on, and is kept; ⌥⇧⌘D pauses it everywhere, for showing someone a site as they see it, until you press it again or quit. A private tab darkens but keeps nothing. Nothing goes into a page Search leaves alone: whether a page is light is seen from a picture of it, from outside. Off unless you turn it on in Settings › Appearance › Darken pages that stay light, which shows under Appearance whenever it is Dark or System. Thanks @oddharsh (#450)
  • Small windows in the ⌃Tab switcher. The small windows for links from other apps sit beside your tabs like moons, in a panel of their own, up to nine, each named by its page's title so two threads on one site can be told apart, and the longer its page, the bigger the moon. In the browser window, ⌃Tab walks on into them after the tabs; in a small window, it starts on that window's moon, a quick press goes back to the small window you were in before, and walking on reaches your tabs. Picking a small window brings it forward without moving it into your tabs, and Escape puts the switcher away and leaves the window open. Thanks @oddharsh (#480)
  • Keys in the ⌃Tab switcher: with ⌃ still held, a letter acts on the card picked, as its ⌘ key would. ⌃W closes it (a pinned tab is put down), ⌃R reloads it, ⌃M mutes it, and ⌃O takes a small window into your tabs; the switcher stays up after the first three, and the keys are listed under the tabs. They work with any keyboard layout on, Russian or Greek included. Off unless you turn it on in Settings › Tabs › Keys in the tab switcher. Thanks @oddharsh (#495)
  • With the tabs across the top, a line stands between the pins and the tabs that come and go, as the column has had since 1.0.5. It shows only with something on both sides of it, and the run counts its width, so the tabs keep the room they had. Thanks @Chahine-tech (#630, #449)
  • Sites you choose stay awake, off unless you turn it on in Settings › Tabs › Keep selected sites awake: the site card then has Keep This Site Awake, and a site kept awake neither sleeps nor closes by itself, even when memory runs short, at the cost of the memory it keeps. In a private tab the choice lasts only as long as the tab. Closing it by hand works as always. Thanks @BryanZaneee (#627, #623)
  • New tabs can open at the top: Settings › Tabs › New tab position is After current (as before), Top or Bottom, read Leftmost and Rightmost with the tabs across the top. With Top, ⌘T's tab, a private one, a link and a page that opens in front all go first after the pins; a link from a group stays in its group. Thanks @BryanZaneee for building it and @zhuxining for asking (#621, #606)
  • The keys for Spaces and the click that peeks at a link can be changed in Settings › Shortcuts, each shown while its feature is on. ⌃1–⌃9 can be moved, cleared or reset like any command; a peek can be a Shift-click (as before), an Option-Shift-click or an Option-Command-click. Thanks @BryanZaneee for building it and @AtikshB for asking (#620, #498)
  • Pins stay on their site, as in Arc: a link from a pinned tab to another site opens in a peek over it, and the pin stays on its page, including when the site sends the link out by way of itself, as Google's results do. Links the page opens in a new window on a click, from target=_blank or window.open, go to the peek too; a window it opens by itself never does. Links within the site go as usual, and ⌘W takes the pin back to the page it was pinned at. While the peek is up, the pin wears its icon: on the corner of a square, at the end of a row. The peek is solid from the start, in the window's colours, with the shape of a page shimmering in it until its page draws. Off unless you turn it on in Settings › Tabs › Pins stay on their site. Thanks @bent2685 (#577, #581)
  • File › Close Window, ⇧⌘W, closes the whole window with its tabs, as in Arc, Chrome and Safari; ⌘W still closes the tab. It can be changed in Settings › Shortcuts. Thanks @Tom-Boscher (#640)
  • With spaces on, the mouse's back and forward buttons over the tabs go to the space before or after, as in Arc. Over the page they still go back and forward in the page. Thanks @Tom-Boscher (#639)

Changed

  • A bookmark opens in a tab of its own, from the bookmarks bar, the Bookmarks menu or the list: opened from a pinned tab it used to take the pin's place. An empty new tab is used as it is, and ⌘ opens the bookmark behind the tab you are on.
  • Pins in a space you aren't in go to sleep after the usual wait, as the tabs beside them do, and give their memory back: five spaces of five pins used to be twenty-five pages that never slept. Pins in the space on screen stay awake as before, and so does a pin whose site may send you notifications. Thanks @karadoganyi for measuring where the memory went, and @Browny01 and @Quan018 for asking (#569)
  • A tab in the column opens as the button goes down, not when it comes back up. Dragging a tab or a pin, right-clicking one, ⌘- and ⇧-click, the cross, renaming and a click on the tab you are on to edit its address work as before. Thanks @BryanZaneee for building it and @wouter-deen for asking (#625, #598)

Fixed

  • A site you allow to know where you are now gets its position. Search answered the site but never asked the Mac, so pages waited out their timeout and Search never showed up in System Settings › Privacy & Security › Location Services. macOS asks once, the first time a site you allowed wants your location, and never at launch; if macOS says no, Search tells you so. Thanks @tomaswarynyca for reporting (#387)
  • Swiping to another space shows its tab groups folded as you left them on the way in. Every tab of a folded group used to come out while the space slid in, and fold back away as it landed.
  • A space you left on an empty tab opens on an empty tab again, after Search is quit and opened or from another window, instead of on the last tab of its row, often the last page of a folded tab group, which then came out of its folder.
  • Passwords brought over from Chrome include the ones it keeps for your Google account, in a file of their own when Chrome is signed in without sync: read alone, the usual file could hold next to nothing. And Bring Things Over says how many passwords didn't decrypt with the browser's key, instead of counting them as nothing.
  • Vimium C's options page opens instead of staying blank, and its keys work in pages. Three things stood in its way. WebKit hands out runtime.getPlatformInfo afresh at each read, and a copy called with another this, as Vimium C's worker calls it, never answered: the worker waited on it forever and turned every connection away, from its options page and from the pages its keys work in. A port's listener was handed another object for the same port, without what the worker had kept on it. And an extension page listing several module scripts, one waiting on a top-level await, ran the next one before the first had finished, as Chrome doesn't; such pages now load their modules as one, in their order.
  • Start with a fresh window keeps your tab groups, in every space, and the tabs you named. It kept each space's pins and nothing else, so the folders brought in from Arc, which come in as tab groups, went at the next launch after ⌘Q, leaving the pinned tabs alone. It now keeps what tabs that close themselves keep: pins, groups and named tabs. And a space gone to after a fresh start opens on an empty tab beside its pins, as the first one does, instead of on its first pin.
  • Stylus's popup and style manager open instead of staying blank. Stylus has the extension's own worker make its first data, as Chrome lets a worker do for an extension's pages; WebKit's worker never sees those requests, so a page that asks this way now gets its data by message instead. Its worker also no longer reports an error on install.
  • A page on this Mac opens the files it links to in other folders, as in Safari and Chrome. WebKit lets a file page read only its own folder and dropped the click on a link out of it, so an .html report linking to ../other/page.html stayed where it was and only the address pasted into a window opened it. The opened page reads its own folder, as one typed in does, and no more. A website's link to a file on this Mac stays refused, as in every browser.
  • Settings › Videos wait for a click is followed by tabs already open from their next page or reload, and by a link opened from one of them. Before, a tab open when the switch moved, and any link opened from it, kept the old answer until it slept or Search restarted, so with the switch off again its videos still waited for a click
  • A video file opened as a page plays, as in Safari, instead of ending on "The page didn't load". A download site's link to an .mp4 opened the video in a new tab, and the error page covered it while it loaded. A file the site sends as a download still downloads, and a video that can't be reached still says so
  • An extension that signs in again quietly, as Claude in Chrome does each time the browser starts, does it out of sight as in Chrome, instead of opening its sign-in page in a tab in front. Claude in Chrome then gets its sign-in back without a tab, and the Claude app can reach it again when Search is signed in to claude.ai
  • A link that opens in a new tab works again inside a part of a page drawn in a sandbox, as some AI chats draw their answers. Since the change for asynchronous sign-ins, a click there counted for nothing and the link did nothing; the click now counts for that part of the page and nothing else, so an advertisement in a sandbox still can't open a window from it
  • Pinched in on a page, moving about it with two fingers no longer takes you back a page. On a site that can't scroll sideways by itself, a small pan to the left in the middle of the zoomed page went back; now it only moves the view, and a swipe goes back once you are at the page's left edge, as in Safari
  • A link ⌘-clicked or middle-clicked in Gmail opens one tab, not two. Gmail's links open by themselves and its page opens them a second time from the same click; Search's own tab for the ⌘-click came on top of the page's. One click now makes one tab, kept behind as a ⌘-click asks, and a window the page opens after it is refused
  • Leaving a video's full screen, on YouTube or anywhere, the window no longer corrects itself four or five times in a row: the tabs, the page's card, the bookmarks bar, the side panel and Split View's other page come back at once, while the video is still on its way home, and the page is laid out once, at its own size. Going full screen, the page no longer grows in the window a moment before the video leaves it
  • Claude in Chrome signs in: approving it on claude.ai no longer spins for good. A website's message to an extension that isn't installed now fails as it does in Chrome, so claude.ai goes on to the Claude extension you have. Its tab groups are kept with tab groups off too, where it needs them to work on a page, without a heading in the sidebar
  • A pin moved to another space with Move to Space stays there. Moved to a space you didn't open before quitting, it was gone after a relaunch. Thanks @karadoganyi (#587)
  • A website whose name begins with what reads as a private address is opened over https. The address field chose plain http for anything typed that started with "10." or "192.168.", which is how a server on this Mac or on the local network is reached, but those were tests on a name rather than on an address: 10.io, 10.ai, 10.org, 10.net and 10.fr are all registered websites, and so is 10.0.0.1.example.com. http://10.io/ answers without redirecting, so the page arrived unencrypted and stayed that way. A local server still gets http, now only when what was typed is four numbers and nothing more, as Dialogs.isLoopback already had it (#590)
  • Find on Page's close button and other controls respond to clicks with Split View enabled, instead of letting them reach the page underneath. Clicks outside the find bar still reach the page. (#615)
  • A folded column comes out on the tab you are on, as it was meant to: with more tabs than the window holds, the scroll to it could be lost as the column slid out, and the tab could be out of sight. Thanks @oddharsh (#599)
  • Shortcuts Search reads itself, rather than through its menus, work with a Russian, Greek or any other non-Latin keyboard layout on: ⌘W in the small window, for one, did nothing. They were matched by the character the key types, Ц instead of W; they are now read through the Latin layout that goes with it, as macOS reads the menus' own. Latin layouts, AZERTY included, are unchanged. Thanks @hnnsly
  • A sideways scroll swipes back or forward only when the Mac's own Swipe between pages is on, in System Settings › Trackpad or › Mouse, as in Safari. With it off, a one-finger Magic Mouse scroll inside a page such as a Google Sheet went back a page once the sheet's edge was reached. Thanks @nourspace for reporting and @karadoganyi for the fix (#464, #467)
  • With the window in full screen, the page goes edge to edge: no room around it and no rounded corners, as with a video filling the screen. Out of full screen, the card comes back. Asked for on #607
  • The column's greys stay on the strip across the top, in Settings and in the panels: the live tab of a Split View pair, a tab group's name and the buttons there took the darker greys made for the column beside the card.
  • The native page accepts the window layout's offered size, so its previous bounds do not set the browser's minimum layout width.
  • AdBlock blocks ads again. Its background asked WebKit to watch every kind of request Chrome names, two of which ("webtransport" and "webbundle") WebKit doesn't know, and WebKit refused the listener and stopped the background there: the few network rules built into its lists still applied, but nothing else did, so ads hidden by the page's own layout stayed and its button had nothing behind it. Those two are now left out of the list and the rest is watched as asked
  • A build of your own put in place of a release stops offering passkeys on its first run, as it can't do them: sites took the passkey path and failed every time. A build that can offers them again on its first run; from then on the switch is yours. Thanks @FabianoC13 (#608)
  • Prevent cross-site tracking, turned off in Settings › Privacy, lets a site shown inside another site's page keep its cookies, as the switch says. WebKit's own cookie policy still dropped them, so a Kaltura video in a Brightspace course said "your browser is blocking 3rd party session cookies" with the switch off too. Thanks @Aaditya2605 (#550)
  • An app an extension talks to no longer has its reply cut off when it quits right after writing it. Search called the conversation over as soon as the app quit, and a reply still on its way was lost; it now reads to the end of what the app wrote, as Chrome does. Thanks @AllDaGearNoIdea (#483)
  • Asynchronous sign-ins that submit a POST form into a new tab now open after a real click or key press. Automatic popups remain blocked, with one new tab allowed per recent interaction. Thanks @quanru (#509, #511)
  • Browser import distinguishes macOS refusing access from an empty or missing data folder, keeps partially unreadable profiles visible alongside readable ones, and shows permission guidance in Welcome even when another browser is available. Thanks @quanru (#415, #583)
  • A browser folder chosen for import is kept only for the current session and shown in the import sheet; Chromium JSON reads are limited to 64 MB and checked through the opened file. Thanks @quanru (#415)
  • Signing in to Affinity Pathfinder from its panel on a website works. Connect Affinity reloaded the website instead of opening the sign-in window: an extension's page in a website's frame that opens, moves or closes a window now has it done by the extension's background, as its other calls already were, where WebKit ended the website's process. Once signed in, the panel never heard of it: a content script reading the address of its own extension's frame got a hidden one, and posting to it threw. And an extension's popup window whose page closes itself now closes, instead of staying open on a blank page. Thanks @etienne-asc (#612)
  • The address in the tab offers places as you type, as ⌘L's field does: pages from your history, a search, and the rest of an address you have been to, typed in ahead so Return takes it. ↓ and ↑ walk the list, a click takes a row. Thanks @shohruxsaidov for asking (#534)
  • A text file on this Mac opens as text: a hosts file, a .yaml, a Dockerfile or anything else that reads as text was copied to Downloads, and text files that did open showed every accent as two strange letters. Files that aren't text are still downloaded. Thanks @arvakme (#525)
  • A regular file typed as an absolute path or a path starting with ~/ opens when the address is submitted. Typing suggestions and dropped text never check the disk for paths. Spaces and special characters in the filename are kept. Thanks @BryanZaneee (#557, #523)
  • The folded column and the folded tab bar come and go as quickly as Arc's and Dia's sidebars, timed frame by frame on the same Mac. Out over the page, they're 90% of the way there about 170ms after the pointer reaches the edge, where it took over 300ms. Going back, they're 90% gone about 160ms after the pointer leaves, where they waited 300ms before moving at all. Met by the pointer on their way back in, they turn around within about 10ms. ⌘S folds and unfolds on the same quicker springs. Thanks @oddharsh (#585)
  • The folded column starts coming out about 45ms sooner, about 50ms after the pointer reaches the edge where it took nearly 100ms, and the folded tab bar about 25ms sooner. Each was built again, every tab of it, each time it came out; both are now kept just off the window's edge while folded and slid in. Folded, they stay where VoiceOver can reach them. Thanks @oddharsh (#586)
  • The site card's corners are round on macOS 26 too. A pale square of the menu's material showed past each rounded corner, and the card's shadow was square; the mask that rounds them before macOS 26 now rounds them on every version. Thanks @mihxlko (#576)
  • Extensions keep checking for updates while Search stays open. Updates needing more access default to Cancel and wait for a browser window. Thanks @BryanZaneee (#589, #539)
  • Extensions hear once when Search actually restarts their worker, from content scripts and their own pages alike, including a recovery requested by another page. Old ports close without polling, replaying messages or reconnecting behind the extension’s back. Thanks @quanru (#453, #514)
  • Floating videos fit without cutoff from a player’s minimum size, margins, borders, padding, clips or masks. The page’s styles return when the video does. Thanks @BryanZaneee (#619, #591)
  • The floating video goes out and comes back in one step, by ⇧⌘P or by switching tabs or apps. Going out, the little window showed the video at a fraction of its size before it filled the window; coming back, the tab showed the video alone at the little window's size, then the page around it, then the video growing into its place. The little window now opens on the video's last frame, and the tab on the page as you left it, each until the page underneath has settled, never more than a second and a half. Thanks @oddharsh (#562)
  • A link from another app opens in its small window alone. The browser's windows stay where they were: closed, in the Dock or behind another app. A launch made by the link keeps every saved window off screen until one is wanted. Open in Search, another link, the Dock or ⌘N brings them all back. Copying the address, reloading and zooming in the small window act on its own page and say so at its foot. They used to reach the browser's tab behind it, and on a launch made by a link, ⌘W closed a tab in a window you couldn't see. Thanks @oddharsh (#431)
  • A window closed while others stay open is let go. It stayed behind with its views, its browser and its key monitor, one more for every window opened and closed, and each closed window's monitor still ran on every key press and click. Thanks @Aaditya2605 (#549)
  • A window put away in the Dock can be found again: it shows in the Dock icon's menu and the Window menu, named for its page, as Safari's windows are. Its windows had no name, and macOS leaves an unnamed window out of both, so one minimized with a tab moved into it could not be brought back. A private tab's window is only called Private Tab, and the traffic lights stay in line as the name changes. Thanks @Qsev (#554)
  • A copy of Search built with Xcode 27 looks like the macOS it runs on: the window's buttons and controls come out in macOS 27's style on macOS 27, where every one of them was drawn as on macOS 14. It still runs on macOS 14 and later, as before. Thanks @oddharsh (#489)
  • A tab narrow enough to be down to its mark keeps a faint ground, the same one the pinned squares wear, so a run of them still reads as tabs. Past the width that holds a title a tab had no ground at all unless it was the live one, selected, or under the pointer, which after an import is a row of marks with nothing behind them. Thanks @Chahine-tech (#629, #449)
  • The built-in blocker matches whole domain names: a rule for segment.com no longer blocks unrelated names such as segment.company. Subdomains and explicit ports still match. Thanks @BryanZaneee (#626, #622)
  • ⌘T puts the caret in the address field every time, and what you type straight after it lands there. The field could arrive a moment after it was asked for the keys, more often with Split View on, and then the request went nowhere: no caret, and typing did nothing until you clicked the field. Letters typed before the field arrived went missing too; they now wait for it. Thanks @oddharsh (#635)
  • Extension popups such as Google Translate keep their width when the Mac always shows scrollbars, instead of shrinking to a narrow strip (#648, #645)
  • Twitch's chat is open again when the floating video comes back to its tab, as it was when the video went out. In its Studio mode, Twitch folds the chat away in a page as small as the little window and never opens it again by itself (#642)
  • The column's tab highlight reaches the tab you pick sooner, with the quick motion and no spring trailing behind when you switch fast. Reduce Motion still makes it immediate (#649, #466)
  • Showing the list of saved accounts under a sign-in field no longer reads every account's password: only the one you pick is read, so a password kept by another build of Search asks for the keychain once, not once per account each time the caret goes in. Thanks @FabianoC13 (#637)
  • A paused video gives the media keys back. Once a tab had played sound, the play/pause keys and AirPods taps went to it even after the video was paused, so Spotify or Music couldn't have them back until they played something again. Now, ten seconds after a tab goes quiet, what was playing there is muted while it is paused, which lets the keys go, and unmuted when it plays again; a press of play/pause soon after pausing still resumes it. While something is playing in a tab, the keys stay with it. Thanks @karadoganyi, and @jesusrp98 for reporting and for finding the way (#512, #605)
  • Extensions work in private tabs, content scripts and blocking rules such as uBlock Origin Lite's included, once you allow each one from its … menu in Settings › Extensions. Each starts off, and the old switch for all of them isn't carried over; one whose manifest refuses private tabs stays out. An extension you allow sees which tabs are private, as in Chrome. Turned off again, it loses them at once, though a script already running in one stops only when the page reloads. Private tabs opened before any extension was allowed need reopening. Thanks @Vedaant-Rajoo, and @AtikshB for reporting (#508, #536)
  • Password suggestions stay out of search and issue-title fields, including GitHub's search box, while two-step sign-ins still offer saved accounts. Thanks @BryanZaneee (#631, #647)
  • Signing in with a security key no longer crashes when the key returns no user handle, as reported with Okta. The site receives a null user handle, as WebAuthn allows. Thanks @BryanZaneee (#548, #646)
  • A username in Settings › Passwords can be selected and copied, as the password beside it already could. It was the one half of a sign-in the list would not give you back. Thanks @Chahine-tech, and @BeNDYGo for asking (#634, #652)
  • Closing a call tab, or putting down a pinned tab, stops its camera and microphone even while the page is still held in memory, so the camera's light goes off with the tab. Calls in other tabs keep going. Thanks @BryanZaneee, and @dalxds for reporting (#655, #657)
  • Waking a sleeping tab keeps the column in place, even after the window was resized while it slept: the picture of the page shown while it wakes stays within the page's room. Thanks @BryanZaneee, and @dalxds for reporting (#664, #670)
  • A tab dragged along the row across the top moves itself again, not the whole window. macOS starts a title bar's drag before the app sees the press, so making the window unmovable at the press came too late with a real mouse; it is now unmovable while the pointer is over the row, and movable everywhere else for Move & Resize and tiling. Thanks @etienne-asc (#668)
  • With Split View on, the saved accounts under a sign-in field show again. The list came up, but under the page, so nothing appeared and a click there went to the page; it now hangs over the page, as the find bar does, and a click off it still reaches the page. Thanks @S-Efekan (#667)

Known issue

  • Claude in Chrome's side panel may ask you to sign in again: WebKit doesn't send claude.ai's session cookies to an extension's own pages. WebKit has fixed it upstream; it comes with a macOS update.

Search 1.0.5

Added

  • With the tabs down the side, the page sits in the window as a card, with a little room around it and rounded corners, apart from the column. Two pages side by side are a card each, the bookmarks bar lies above the card on the window's ground, and the card keeps its room with the column folded away. A video filling the screen, and the tabs across the top, look as they did.
  • Arc's pinned list comes in with the shape Arc gave it, when Pinned rows is on: a page Arc keeps loose becomes a row under the pins, a page it filed in a folder stays a tab in a group of that name, and the sheet says so before you bring anything over. A pin is never in a group, so filing the folder's pages as rows would have been the folder's name thrown away; with Pinned rows off, the sheet offers to turn them on right there, beside Arc's line, and without them the whole list comes in as tabs, as before. Thanks @Chahine-tech (#582, #478)
  • Close Group, in a tab group's menu, closes the group and every tab in it. One ⇧⌘T brings it all back, every tab in its place and the group named as it was, however many tabs it held. Asked for by email; thanks @oddharsh for bringing it back whole (#473)
  • Pinned rows, as in Arc: with the tabs down the side, a pin can be a row under the squares instead of a square. The squares are for the sites you live in, the rows for pages you keep, and a line sets them apart from the tabs that come and go. Right-click a tab and choose Pin as Row, or Show as Row and Show as Square on a pin you have. A row is a pin in every other way: ⌘W puts it down rather than closing it, it's the same in every window, and Back to Pinned Page in its menu takes it home. Clear, at the end of the line under the pointer, closes the tabs below it; pins and tab groups stay, and one ⇧⌘T brings back everything it closed, each tab in its place and the one you were on in front. Turned off, rows are drawn as squares and come back when it's on again. Off unless you turn it on in Settings › Tabs › Pinned rows. Thanks @oddharsh (#426, #183)
  • Bringing things over offers the bookmarks bar at the end, beside Show bookmarks, when bookmarks have just come in and the bar is off. One press turns it on and puts the sheet away, so the row appears where it will live; nothing is turned on by itself, and the switch stays in Settings › Tabs as before. Thanks @Chahine-tech (#485, #449)
  • The ⌃Tab switcher takes the pointer: resting on a card picks it once the pointer has moved, and a click takes it, ⌃ held or not; a click outside puts the switcher away. Thanks @oddharsh (#358)
  • Search a site from the address field, as in Arc: type the start of a site's name, like red or yout, press Tab, and what you type next searches that site. Reddit, YouTube, X, ChatGPT, Claude, Perplexity, Wikipedia, GitHub and a few others come built in, and a site you visit that says where its search is joins them by itself. Your own site shortcuts work as before. Off unless you turn it on in Settings › General › Search a site from the address field
  • Search can start with a fresh window: your pinned tabs are there and last time's other tabs aren't. Off unless you turn it on in Settings › General › Start with a fresh window (#406)
  • Websites can ask for your location, as in Safari: a card names the site and offers Allow once, Always allow or Don't allow, and Always allow and Don't allow are kept per site (Settings › Privacy › Forget choices, now for camera, microphone and location). Only the page on screen asks, for itself or a frame of the same site and address; a frame from elsewhere is refused, and a private tab keeps nothing. macOS asks once whether Search may use your location at all. The camera and microphone card, like this one, takes no click in its first half second. Thanks @tomaswarynyca for asking (#387)
  • Search runs on Intel Macs, with a download of its own beside the Apple Silicon one: one app for both would have weighed twice as much for everyone. Each updates itself from a feed of its own, so neither kind of Mac is ever handed the other's. Thanks @Assim-Genshi for asking (#46), and @geoffreybautistadesign for running it on an Intel Mac first (#175)
  • Passkeys under the sign-in field, as in Safari: on a site that offers them there (GitHub, Google and others), the passkeys this Mac holds for it show first in the list under the name box, beside the saved passwords, and a click on one brings up the Mac's sheet for that passkey and signs you in. Nothing reaches the site until you pick one; a site in a frame is offered none. Thanks @RayBytes for asking (#17)
  • Find on Page says where you are, as in “3 of 17”, and goes round from the last match to the first. Its menu can match case or whole words only. Without Match case, a letter typed without its accent also finds it with one, as before: “ete” finds “été”. On a very long page the count stops at 1000 and shows “1000+” until Next goes further, as Safari's does. PDFs say whether there is a match, without a count. Thanks @lulkebit (#377)
  • Split View, to see two tabs side by side: drag a tab onto the left or right edge of a page, choose Open in Split View in a tab's menu, or press ⌥⌘N for an empty page beside the one you're on, which lists your open tabs to bring one in (Esc if you change your mind). Drag the divider between the pages: it settles at even halves, a double-click evens them out, and a right-click on it swaps the pages, separates them or closes both. ⌃⌘← and ⌃⌘→ go from one page to the other, ⌘W closes only the one you're in, and ⇧⌘T puts it back beside the other. A pinned page splits as a copy beside the other page, and the pin stays where it is. A peeked link can be kept beside the page it came from (the peek's new button, or ⌥⌘Return). A page of the pair that asks something (an alert, a confirm, a prompt) asks over its own half, named for the site asking, and the other page goes on working. In the column a pair is two lines, one under the other. Both pages stay awake, each Space keeps its pairs and their widths, after a restart too, and turned off, Split View keeps your pairs for when it is back on. Off unless you turn it on in Settings › Tabs. Thanks @lulkebit (#381), and @SamarthaB10 for the first version (#280), and @quanru for Find on Page over the page you're in (#470)
  • Downloads can be paused and resumed from the Downloads panel, and one that stops on its own keeps the reason and can go on from where it was, when the server allows it, or start again. The ring, the Dock and Finder go on from what had already come in. Only while Search stays open; a download sent by a form isn't asked for again. Thanks @lulkebit (#378)
  • Find on Page paints every match on the page yellow, the one you're on orange, as Safari and Chrome do. The selection alone was drawn pale grey while the find bar had the keys, so a match was hard to see. Matches in fields keep only their selection. Thanks @ductan2 (#409)
  • Websites can send notifications, as in Safari. A site that asks gets a card over its own page, with Allow and Don't allow. Its notifications then come as the Mac's own, named by the site and with its icon, and clicking one brings its tab back to the front. Settings › Privacy lists the sites you allowed, each with Remove, under Let sites ask to send notifications, which you can turn off. Forget choices takes them all back. A private tab is never asked. Thanks @willian for reporting (#328)
  • Extensions that record your screen work: Loom, Screencastify, Awesome Screenshot, and those that record from an offscreen page, such as Tella, ScreenPal and Vidyard. The first time one asks, Search asks you, naming it; after that, it asks again unless you've just used that extension (its button within the last minute, or its own pages). Then the Mac's own picker asks what to share, every time. While an extension records, or uses the camera or microphone, a small pill at the bottom of the screen says so, with Stop, and its tab wears a mark; a website sharing your screen gets the pill too. Settings › Extensions lists the extensions you let record, each with Remove. Loom's microphone and camera bubble work too. What WebKit can't give: a single tab on its own (a recorder that falls back to the screen, as Loom does, records the window), and the sound of the screen or a tab. Asked for by email
  • A bookmark can be its icon alone on the bookmarks bar, as in Chrome and Safari: empty its name in the card ⇧⌘B opens, or with Rename… in the bookmarks list, and the bar keeps only its site's icon, in a square as tall as the rest, which saves room. The Bookmarks menu, the bookmarks list and the folders' menus show its address in place of a name, so they still read. Asked for on X
  • A site's videos can stay in their page: Don't Float Videos Here, in the site card of YouTube, Netflix, Twitch and the other sites a video floats from, keeps it from floating out when you switch tabs or apps. It is kept per site and forgotten with the other site choices (Settings › Privacy › Forget choices); ⇧⌘P still floats a video by hand. Thanks @merttopuz (#433, #267)

Fixed

  • Security hardening across extensions, sign-in sheets and site icons, from a third careful private report. Thanks again to Vahagn Yengibaryan. No extension is ever given another extension's pages, whatever its manifest or a later request names, and a tab showing another extension's page gives an extension nothing of it: no script, no address, no picture. A site's name-and-password sheet, a warning about a site's certificate and "Open app?" from a tab in the background wait until you go to that tab, as its alerts already did. An extension opens a file it downloaded only right after you click or type in it, talks to an app on this Mac only when its manifest asks to, and a sign-in it starts and nobody finishes ends after ten minutes. Hiding something on a page in a private tab is no longer remembered, site icons are read only in the usual picture formats and sizes, and ⌘L no longer shows a name and password written into an address.
  • A page in a tab you aren't looking at asks for the camera or microphone, or to choose a file, only once you go to it, and the question names the site, as its alerts do. In Split View, the other page's questions wait the same way.
  • A camera or microphone answer given to an extension's frame inside a website is kept for the extension, not the website.
  • Extensions stay off files opened from this Mac, as in Chrome with file access left off. An extension loaded from a folder keeps only the links that lead to its own files, and its downloads go through one of your own tabs, never a private one.
  • A picture's menu opens only from a real right-click, Copy Image fetches the picture without your sign-ins and up to a size limit, a popup window shows the address it is really on and stays on screen, and only web links can be dropped onto the tabs.
  • Importing from Chrome, Brave, Edge, Arc and the like takes only the passwords the browser encrypted, as every one of them has for years; one lying in the clear in a profile's files is left out.
  • A password saved for a sign-in with no name, only a password or access code to type, is offered again on your next visit and shows in Settings › Passwords. It was saved but never read back.
  • Sign-ins that ask for your name or email first, then your password on the next page — impots.gouv.fr, Google, Microsoft — offer your saved accounts on the first page too, and the name you gave there is the one saved with the password.
  • Your Mac's text replacements work as you type in pages, as in Safari and every other app, following the Mac's own setting (System Settings › Keyboard). Edit › Substitutions turns them off or on, and smart quotes and smart dashes too, which stay off in pages unless you turn them on there. Asked for by email and on X
  • A website an extension lists in its manifest can send it messages, as in Chrome: claude.ai, for one, hands Claude in Chrome its sign-in that way, and approving it ended in "Authorization failed". Only the sites an extension names get to, by Chrome's own rules, and Google's sites are left out. A page already open when Search starts needs a reload first. Thanks @cunyiles for tracking it down (#496)
  • Popovers keep their rounded corners before macOS 26: on macOS 15 the bookmarks list, the card for a bookmark, the extensions list and the site card showed square corners past their rounded edge. Asked for by email
  • Pinned extensions no longer push the column off the side. With more pinned than the bottom row had room for, the whole column slid left and was cut off at both edges, with the puzzle and bookmarks buttons out of reach. Now the pinned ones that don't fit give way, from the last, and are still in the puzzle's list; the space, puzzle, bookmarks and downloads buttons stay put. Thanks @Vedaant-Rajoo for the measurements that pointed straight at it (#535)
  • The Bookmarks menu keeps its bookmarks while a tab's title keeps changing. With a download page showing its speed in its title, they disappeared from the open menu at each change. Asked for by email
  • ⌃Tab brings up the switcher with its previews while Find is open, too: it used to skip straight to the next tab. The find bar stays open and looks for the same words on the tab you pick. Thanks @rafe-sh for reporting it (#553)
  • Each page of Settings opens at its top. Going to another page after reading down General opened it as far down. Thanks @oddharsh (#479)
  • An extension's row in Settings › Extensions keeps its actions in a … menu, also on right-click. Pin, Show in New Tabs, Options and Remove were pills beside the name that wrapped a letter at a time when they didn't fit. Thanks @oddharsh (#479)
  • The hidden column's shadow leaves with it. Sliding back out of the window, the column was gone while its shadow still lay along the window's edge, then vanished at once; it now fades as the column slides and is gone when the column is. The same for the tabs across the top, folded away. Thanks @Qddog23 for reporting and @karadoganyi for the fix (#441, #462)
  • ⌘W closes what's in front first: a peek, then a panel over the page (Settings, Bookmarks, Passwords, History, Downloads, What's New…), and only then the tab, in the same order as Escape. With Settings open, ⌘W used to close the page behind it. Thanks @oddharsh (#452)
  • An extension's items in a page's right-click menu show once: WebKit already puts them there, and Search added them a second time. Thanks @quanru (#456)
  • The bookmarks list opens tall enough for its folders. With one folder at the top, as bookmarks brought in from Dia are, the list under the bookmark button was a single row high, and opening the folder showed a sliver of it above Add This Page: the list took its height from the closed folders as it opened and never grew. It is now as tall as the whole tree would be with every folder open, up to the height it always had at most, and a top level that is one folder alone opens with that folder open.
  • The column comes back after a video's full screen. Leaving a video's own full screen with Escape, on YouTube for one, could leave the tabs gone until the column was switched off and on again in the View menu: the window heard of a page going full screen and coming back only when something else changed, and coming back there sometimes was nothing else.
  • A live video no longer jumps every few seconds, on X and wherever a player keeps up with the broadcast by nudging its speed. X's switches between normal speed and a touch faster all the time, and each switch through normal speed made WebKit rebuild the sound and hold the picture still meanwhile. Once a page has nudged a video's speed, Search plays its normal speed a hair off exactly 1 (a tenth of a millisecond a second), so the switches go through without a break; the page still reads the speed it asked for.
  • An extension's popup window answers for itself: windows.getCurrent from its page gives that window rather than the one in front, so Bitwarden's passkey window finds and sizes itself, and the window is tied to its page before the extension hears of it. Thanks @lulkebit (#408)
  • The floating video fills its window on players built like Twitch's: an ancestor with a transform, a filter or containment placed the video inside its own box, so part of the picture or none of it showed, and one drawn only on screen or faded out left the window black.
  • Many tabs no longer slow the tabs down: with tab groups on, each tab worked out the width of every other, so a space of 300 tabs took more than a second to leave; it takes a few hundredths now. Going back to a space no longer reads its whole file again either.
  • Signing in with a passkey works on GitHub again: after Touch ID the site couldn't read the passkey Search handed back (its sign-in code sets a method on it that Search had made read-only). Thanks @neerajyadav (#407)
  • A game played on the arrow keys, or any page that reads keys without taking them, no longer makes the Mac beep on each press. Search kept only the last key quiet, so keys pressed quickly or held down beeped, and WebKit hands most such keys to the view around the page rather than back to the page, where nothing wanted them and they fell off the end of the responder chain. Pages that scroll still scroll with the arrows, page up and down and the space bar. Thanks @pyrossh for reporting and @Chahine-tech for the fix (#402, #410)
  • Search is built for size now, at the same speed (launch, scrolling and typing measured side by side), and its icon catalog is packed tighter with every Dock style kept: everything this version adds fits in 6.8 MB, where 1.0.4 was 6.1.
  • Large exported files and folders are brought in in the background, with progress and a Cancel button. Folder imports only visit the chosen folder and its immediate subfolders; deeper trees are left alone. Cancelling an import stops further work and says if anything was already brought in. Thanks @lulkebit (#380)
  • Pages that change constantly stay quick: a chat writing out its answer, a feed filling as you scroll. Search looked through the whole page for a sign-in form each time the page changed, and a long conversation got slower with every word it wrote (3,000 words took up to 3.7 s instead of 0.3 s, climbing as it went). It now looks a quarter of a second after changes, at most four times a second, and no longer on every frame of a scroll unless the caret is in a box.
  • Extensions hear what their own background sends their pages. WebKit delivered none of those messages, so Bitwarden's passkey window stayed blank and its sync timed out; each is now passed on to the extension's pages as well. Thanks @dttdrv (#383, #388)
  • An extension's popup follows the width its page asks for, narrower as well as wider: Bitwarden set to narrow no longer leaves an empty strip down the popup's side. Thanks @dttdrv (#384)
  • Search no longer offers to save a password typed into an extension's own page, such as Bitwarden's unlock PIN. Thanks @dttdrv (#385)
  • An extension can move and size a window with windows.update, as in Chrome; WebKit refused it as not implemented, and Bitwarden's pop-out logged an error each time it opened. Thanks @dttdrv (#386)
  • History keeps pages that differ only by http or https, by port, or by the case of their path as separate places, so localhost:3000 and localhost:4000 no longer overwrite each other; typing still matches either case. A name and password written into an address are no longer kept in the history. Thanks @lulkebit (#374)
  • Search › Check for Updates… follows the update as it goes: Install Update when updates are set to wait, Downloading Update… while it comes in, Download Update… when Search can't swap itself where it is, and Restart to Update once it's in place. The line at the foot of the window points there. Thanks @lulkebit (#373)
  • An extension that fails to install, update or reload no longer takes the working copy with it: the one you had stays, running, with its settings, and only a copy that is fully in place replaces it. Thanks @lulkebit (#376)
  • Bookmarks inside a folder wear their sites' icons again, in the folder opened from the bookmarks bar and in the Bookmarks menu, as the ones on the bar itself do. One whose site has no icon kept yet, brought in and never visited, wears the bar's letter in its place, so its name lines up with the others; a folder inside a folder too. Asked for on X
  • An extension's popup window, such as a password manager's vault or an extension's sign-in, opens as a small window of its page, at the size the extension asks for, with the site over it, instead of as another whole browser window. ⌘W closes it; it isn't brought back with the other windows after a restart, and it closes when its extension is turned off or removed. NordPass's vault and Affinity's Connect open this way.
  • In full screen, the tabs across the top and the back, forward and reload buttons in the column start at the edge, where an empty corner was kept for the window's buttons that macOS takes away there.
  • Copy Image works on pictures a page makes itself, such as the photos in WhatsApp Web: it said it couldn't copy them, since they only exist inside the page, and they are now read there.
  • A pinned tab you drag to another place keeps up with the pointer, as a tab does: each move of the hand redrew the whole column.
  • Tampermonkey installs a script from a link on Greasy Fork, OpenUserJS, GitHub, GitLab and the other script sites it knows, as in Chrome: the rules it catches those links with weren't in a form WebKit takes, so none of them loaded. A .user.js link anywhere else still needs the script pasted into its editor, since WebKit can't hold that one rule beside the others.
  • Escape on a new tab you haven't typed in or gone anywhere from closes it and takes you back to the tab you were on, as if the ⌘T hadn't happened. Anything typed keeps it, and so does it being the only tab. Thanks @bhanni01 (#393, #389)
  • Words typed into a new tab's address field and not yet sent are still there when you come back to it from another tab, with the cursor after them. They are kept in memory only, and go once you send them or close the tab. Thanks @bhanni01 (#394, #390)
  • An extension page shown inside a website can run a function in a tab with scripting.executeScript, as in Chrome: the function was lost on its way to the extension's worker, and the call refused. Aino's web clipper works again. Thanks @quanru (#403)
  • SingleFile saves pages again: its worker failed as it started, and a file it made in its worker couldn't be downloaded. Thanks @quanru (#405)
  • The bookmarks list lines up again, in the dropdown and in the manager. With no folders, each bookmark kept an empty place for a folder's arrow in front of it, and an empty band sat under the last one. The line showing where a dragged bookmark would go no longer stays behind once it is let go somewhere else. Thanks @tomaswarynyca for reporting (#391)
  • Extensions that read pages in an offscreen document work, Lokal among them. The document was answered as ready before it had loaded, and a failed or reloaded one was left behind. A site framed inside it couldn't answer the extension. Now each extension gets one document that is finished loading before it is used, never shown, and closed when the extension is reloaded or turned off. Thanks @K-NRS (#192)
  • The address being edited in a tab scrolls with the caret: the field was as wide as the whole address and the row cut it off, so ← and → moved the caret out of sight and the end of a long address never showed. Thanks @StefanTodorov32 (#421, #419)
  • The site card opens above the address of a tab near the bottom of the screen, when there is no room under it. Pushed up to fit, it covered the field the address was being edited in, and what was typed there. Thanks @StefanTodorov32 (#420, #418)
  • Two sites on the same address with different ports, such as localhost:3000 and localhost:4321, each have their own icon: icons were kept by the host alone, so two local projects wore whichever icon came last. Thanks @wouter-deen for reporting (#413)
  • A site that changes its icon after it has loaded, as GitHub does with its theme, shows the new one, and a site's light and dark icons no longer take each other's place. Thanks @keyding for reporting (#423)
  • Pins and pinned tabs brought over from Arc wear their icons at once, taken from Arc's own icons as the bookmarks' are, instead of a letter until each page was opened. Thanks @Chahine-tech (#424, #416)
  • Esc on a question over a panel answers the question. With a bookmarks folder's “Remove?” up over the bookmarks panel, Esc closed the panel and left the question up. Thanks @karadoganyi (#502)
  • A small window for a link from another app says so when its page fails to load, with Try again, as a tab does. It used to stay blank. Thanks @oddharsh (#491)
  • A long address can be read and edited all the way along, in the tab and in the address field on a new tab: the field never scrolled, so what ran past its edge was cut off and the caret, Home and End, ⌘← and ⌘→ and a click couldn't reach it. Thanks @shohruxsaidov for reporting and @razbyskov for the fix (#517, #555)
  • ⌘N from a window in full screen opens the new window in full screen too, in a Space of its own, as Safari and Chrome do. It used to open over the full-screen window, as large as the screen. Thanks @wouter-deen for reporting and @jorgelso for the fix (#515, #531)
  • Bringing Arc over twice no longer gives a site two pins. A favourite was matched against a pin by its address, letter for letter, so a pin at mail.google.com that answers at mail.google.com/mail/u/0/ looked like a different site and came in again; a favourite whose site is already pinned is now the pin you have. Two favourites of Arc's own on one site are still two. Thanks @Chahine-tech (#482, #500)
  • A tab that goes from one local site to another on the same host, such as localhost:3000 to localhost:5173, changes to the new site's icon at once instead of keeping the old one until the page has loaded, and an icon brought over from another browser for a page on a port never falls back to the one for the same host without it. Thanks @theosementa (#575)
  • Bringing Arc's spaces over keeps the names of its folders even when tab groups are off, as the session already keeps them: the folders were thrown away as they arrived, so turning tab groups on afterwards found nothing left and the only way back was to bring Arc over again. Thanks @Chahine-tech (#478, #494)
  • Download Linked File in a link's right-click menu saves the file. It did nothing: WebKit fetched the file and had nowhere to put it. Thanks @Aaditya2605 (#505)
  • The folded column slides out over the page more smoothly, in full screen above all: its shadow was drawn again from every row and icon in it on each frame of the slide, down the column's whole height, and now falls from the plain ground under it, which looks the same. Thanks @oddharsh (#499)
  • The tab you're on can be closed with a click when the tabs are down to their icons: with the pointer on it, its icon becomes the cross, as in Chrome. The other tabs keep their icon, so a click to go to one never closes it. Before, only ⌘W, a middle-click or the menu closed a tab that narrow. Thanks @Aaditya2605 (#504)
  • An extension whose background file is a link to another of its own files gets Search's Chrome APIs, as StopTheMadness's background-143.js does: the link is replaced by a copy of the file it points to, so the additions can go at its top. Thanks @AllDaGearNoIdea (#481)
  • Open Link in New Tab, in a link's right-click menu, leaves you where you are: the tab opens behind the one you're on and next to it in the row, as in Safari and Chrome and as with a ⌘-click. It used to take you there, so a tab in the background needed ⌘ held or a mouse's middle button. Hold ⌥ with the menu open for Open Link in New Tab and Go to It, which does what the menu did before. Thanks @oddharsh (#551), and to the people who asked for it by email
  • An extension loaded from a folder gets the id Chrome gives it, worked out from where the folder is, so the app it comes with accepts it through its native messaging host, as StopTheMadness's does. Each one got a made-up id before; one loaded that way keeps it until it is removed and loaded again. Removing an extension clears what it kept, so one loaded later from the same folder starts with nothing of it. Thanks @AllDaGearNoIdea (#440)

Search 1.0.4

Added

  • The downloads button can stay beside the other buttons all the time, and open Downloads in one click; while a file comes in it fills as before. Off unless you turn it on in Settings › Downloads › Always show the downloads button. Thanks @hkhrithik007 for asking (#353)
  • A site can play sound by itself, as with Safari's Allow All Auto-Play: Play Sound by Itself in the site card (a click on the tab you are on, or Site Information… in its menu) lets that site's videos start with their sound, from its next page on. Off for every site unless you turn it on; private tabs never remember it, and with Videos wait for a click on (Settings › General) no site plays by itself. Thanks @png125 for asking (#223)
  • The floating video docks at the side of the screen, as in Dia: with Flick the floating video to a corner on (Settings › General), two fingers at the side the window is against pull it, heavily, and a strong enough swipe slides it off, leaving a sliver of it; not far enough and it springs back. A swipe back, a click on the sliver or a sideways wheel's notch brings it out again, and closed while docked it opens again where it was. Not at a side where another screen carries on: there a swipe flicks it as before. Thanks @farchanrifai (#229)
  • After an update, a small card says what's new: the new switches, each with what it does and the switch itself, and the switches from earlier versions still off, so nobody misses them. Closed, it doesn't come back for that version, and a new install shows the welcome instead. Every version's notes, in lists, are in Settings › About › What's New…
  • Several windows: ⌘N, or New Window in the Dock icon's menu, opens another window with tabs of its own, in the space of the window you're in; each window shows its own space. Menus and shortcuts act on the window in front, and a link from another app opens there. Closing a window while others stay open closes its tabs, and ⇧⌘T brings the whole window back; closing the last one leaves Search running, as Safari does, and the Dock icon, ⌘N or a link brings it back with its tabs (#327). Every window comes back after quitting, where it was. Pinned tabs are the same in every window: pinned, unpinned or moved in one, so in the others, each window keeping its own page for each pin. A tab moves to another window, or a new one, from its menu (Move to Window), or by dragging it out of the row and letting go over another window or anywhere else; its page goes as it is. Extensions see every window: windows.getAll, windows.create and windows.onFocusChanged work, and each tab says which window it is in.
  • AppleScript can read your tabs, in Safari's words: URL of current tab of front window, and name, tabs and count beside it, in every window, so Raycast, Alfred and scripts like sesh's can take the page you're on. Read-only: nothing can be opened, closed, changed or run in a page, and private tabs are never shown — with one in front, the window has no current tab. Only apps you allow in System Settings › Privacy & Security › Automation can ask. Thanks @joshmedeski (#233, #232)
  • Site shortcuts: a word of your own before a search sends it to that site's search, whatever engine you've picked — yt cats to YouTube's. Settings › General › Site shortcuts takes the word and the site's search address with %s where the words go, and saves only an http or https address with one %s in it; there are none until you add one. Thanks @merttopuz (#188)
  • Tabs opened behind the page can wait to load until you go to them, as tabs brought back from last time do: a ⌘-clicked or middle-clicked link, a bookmark opened with the middle button, and a batch of links from another app. A tab opened in front, ⇧⌘-click included, loads at once, and tabs an extension opens always load. Off unless you turn it on in Settings › Tabs › Load background tabs when you go to them. Thanks @dttdrv (#196, #195)
  • Bookmarks go in the order you put them: drag one above or below another in the list under the bookmark button or in Bookmarks › Show Bookmarks, or onto the middle of a folder to file it there; a closed folder held over opens. The bar and the Bookmarks menu keep the same order.
  • A word in the address field can reach Search itself instead of the web: "settings", "new tab", "new private tab", "new space", "bookmarks", "history", "downloads", "passwords" and "sidebar" come up as the first suggestion, and Return goes there. Only when that word is all you typed: "settings for gmail" still searches. Off unless you turn it on in Settings › General › Address bar commands. Thanks @merttopuz (#212)
  • ⌘Return in the address field opens what is typed there in a new tab, behind the one you are on, and leaves that tab as it was, as in Safari; ⇧⌘Return goes to the new tab. Return alone still takes the tab you are on there. Thanks @merttopuz (#311), and @junguye-BRONGA for asking (#249)
  • Hold a back or forward swipe to pick a page from history, as in Dia: once the swipe is far enough to go, keep your fingers down and the last pages that way appear in place of the arrow, the nearest lit. Moving up or down slides the list under the light, and letting go goes to the lit page. A quick swipe goes back or forward as before. Off unless you turn it on in Settings › General › Hold a swipe to pick from history. Thanks @farchanrifai (#191)
  • ⇧⌘B keeps the page and opens a small card off the bookmark button, to give it another name or file it in a folder, a new one included, or take it back with Remove. On a page already kept, ⇧⌘B opens the same card, and the button is filled. With the tabs folded away it says "Bookmarked", as before.
  • Search your bookmarks in Bookmarks › Show Bookmarks: what matches is listed with the folders it is in, Return opens the first, and Show in Folder opens the list down to it. Thanks @binaryfields (#370)
  • A search in the address field's suggestions wears the search engine's own icon in place of the magnifying glass when this Mac already has it, from a visit to the site. Nothing is fetched for it; an engine whose icon isn't known keeps the glass. Thanks @merttopuz (#364)
  • Videos can wait for a click, as with Safari's Never Auto-Play: they don't start by themselves, even without sound. Off unless you turn it on in Settings › General › Videos wait for a click; tabs already open follow once closed and opened again, or after they've slept.
  • Switching spaces, the space's name shows for a moment beside its icon, where the tabs are, rather than at the bottom of the window; with the tabs folded away it still shows at the bottom.
  • A double-click on the pinned tab you are on takes it back to the page it was pinned at, wherever you have wandered since; already there, it changes the pin's letter as before. Thanks @armin-ahmadii for the idea (#141)
  • A pinned tab shows the loading ring while its page comes, as other tabs do, in the bar and the column.
  • Downloads show while they happen: a small circle beside the other buttons fills as a file comes, turns into an arrow once it is in, and opens Downloads when clicked; it is there only while something downloads and a moment after. The file shows its progress in the Finder and on the Dock's Downloads stack, as Safari's do, and the "Saved" line at the bottom shows it in the Finder when clicked.
  • Search › Check for Updates…, under About Search, as in any Mac app: the answer comes in the line at the foot of the window, and the item becomes Restart to Update once a newer version is in place. Search also looks by itself at every launch and then every hour, where it looked once a day.
  • Three switches are on from now on: Show where links go, Peek at a link with a shift-click, and Flick the floating video to a corner. Correct spelling as you type follows the Mac's own setting rather than starting off. A switch you already turned off stays off.
  • Passkeys can unlock what a site encrypted with them: the WebAuthn PRF extension now reaches the passkey and its result comes back to the page, where it was dropped and sites that derive a key from your passkey said it wasn't supported. macOS 15 or later. (#312) Thanks @arvakme (#313)
  • Links from other apps can open in a small window of their own: the page, the site and Open in Search (⌘O), which moves it into your tabs as it is, after the pins and without loading it again. Escape or ⌘W closes it. Off unless you turn it on in Settings › General › Open links from other apps in a small window. The idea came from @K-NRS (#227), after Arc's Little Arc.
  • ⌥⌘R reloads the page from origin, as Safari's Reload Page From Origin does, checking everything cached with the site again; ⌘R is now an ordinary reload, where it always went back to the site for everything, and ⇧⌘R stays Reading Mode. A page reloaded while in Reading Mode is no longer taken for one, so ⇧⌘R strips it down again instead of only reloading. Thanks @ductan2 (#179, #171)
  • ⇧⌘⌫, or History › Clear Browsing Data…, opens History at its clearing controls, from a page too, as in Chrome. It deletes nothing by itself: history, cookies and sign-ins, and the cache each still wait for their own button. Thanks @siiddhantt (#344, #336)
  • Search's own movements happen at once when Reduce Motion is on in System Settings › Accessibility › Display: the tabs, the column and the bar with the window's buttons coming and going, panels, the address field and a refused address's shake. Pages move as they always did. Thanks @DagimAlemayehuu (#210), and @berkinory for asking and for the column's part (#186, #187)
  • Rename a bookmark or a folder: Rename… in a row's right-click menu, in the bookmarks dropdown and in Manage Bookmarks alike, asks for the name with the one it has in the field. A bookmark no longer has to keep the title the page had when it was added, nor a folder the name of the browser it came from. Thanks @sxivansx (#342, #341)
  • A middle-click on a bookmark, in the bookmarks bar, the dropdown or Manage Bookmarks, opens it in a new tab behind the one you are on and leaves the list open for the next; hold ⇧ to go to the new tab instead. Thanks @bacecek (#316)
  • A tab can go to another space: Move to Space in its right-click menu lists the others, and New Space… makes one for it and goes there. It keeps its address, its history, its pin and its name; moved to a space with sign-ins of its own, its page opens again there with that space's, and a half-filled form is asked about first. Thanks @luca-dupont2 (#332), and @Takuto1121-ja for asking (#303)
  • A mouse's sideways wheel, a tilt or a thumb wheel, goes from one space to the next in the column, as two fingers sideways do on a trackpad; it did nothing there. Only a notch more sideways than up or down counts, so scrolling the tabs stays scrolling. Thanks @armin-ahmadii (#272)
  • A double-click in the empty space beside the tabs, or below them in the column, opens a new tab, as in Safari; the corner the window's buttons sit in still does what a title bar's double-click does. Thanks @merttopuz (#167), and @hueypov for asking (#162)
  • A default page zoom for every site, in Settings › General › Page zoom: where every site starts, 100% unless you change it. ⌘+ and ⌘− are still remembered for each site, and ⌘0 goes back to the default. Thanks @binaryfields (#355), and @shashwataggarwal for the first take on it (#177)
  • Back, forward and reload can sit on the left, before the tabs, with the tabs across the top: Settings › Tabs › Back, forward and reload on the left. Off unless you turn it on. Thanks @Guitaraholic (#298)
  • Bringing things over works from Helium too: its bookmarks, history and passwords. Thanks @bacecek (#178)
  • Bringing things over works from Comet too. Thanks @gabrielemeksiz-ui (#301)
  • Bringing things over also finds Chrome Beta, Chrome Dev and Chrome Canary, which keep their data apart from Chrome, and Opera and Opera GX.
  • Bringing things over works from Firefox and Zen too: their bookmarks and history, from every profile on this Mac. Thanks @DagimAlemayehuu (#215)
  • Firefox and Zen passwords come over as well, when there is no primary password: the key is read from key4.db and each login decrypted, whether the profile keeps them the newer way (AES-256) or the older (3DES). They land in your keychain like any other. A profile with a primary password is left alone — Search says to export those from Firefox and bring in the CSV, rather than ask for it.
  • Bring things over from a file another browser exported: a bookmarks page (.html, which every browser writes), a passwords file (.csv), or Safari's own export (File › Export Browsing Data), with its bookmarks, its passwords and the history of each profile. From Welcome, and from File… in Bookmarks and Passwords, where CSV file… was. Bringing the same file in again adds only what is new, and after Safari's export Search reminds you that the file holds your passwords in the clear.
  • Bringing things over has one sheet, from Settings › Passwords › Import… and from Bring in… in Bookmarks and Passwords: every browser found on this Mac with what it holds, counted as the sheet opens from the files alone — nothing is decrypted and macOS asks for nothing until you press Bring them in, then once for that browser's key. A browser with more than one profile brings the one used most recently, as Chrome's Local State or Firefox's profiles.ini says, unless you pick another or All profiles; the Welcome does the same without asking. What came in is said line by line, with Show bookmarks and Show passwords, and Safari's own export is explained beside it. The extensions a Chromium profile added from the Chrome Web Store can come too, off unless you turn them on: each is installed fresh from the store, its signature checked, and you say yes to each one — nothing is copied from the other browser. ./bench import-preview shows the counts, and ./bench import takes --profile NAME|all. The extensions idea came from @sethmorton (#261)
  • ⌃Tab shows your tabs as pictures, most recently used first: a quick ⌃Tab goes back to the tab you were on before, and another brings you back; hold ⌃ and press Tab again to go further back, ⇧ the other way, and let go to switch. Only the tabs of the space you are in, in the window you are in. On for everyone, with no switch; ⌘1–⌘9 still go by the row. Thanks @farchanrifai (#24)
  • Tab groups, off unless turned on in Settings › Tabs: tabs gathered under a name, in the column and across the top alike, and folded away to that name with a click; a group lasts as long as its tabs. Each space keeps its own, and a tab moved to another space leaves its group; ⌘1–9 and ⌃Tab count only the tabs you can see; extensions see them through Chrome's tab groups API. The saved tabs stay readable by older versions, which keep every tab. Thanks @isaiasroliveira (#242, #23)
  • Settings › Extensions › From another browser opens Bring things over on the extensions alone: what Chrome, Arc, Brave and the others added from the Chrome Web Store, on the first browser found with some. Each is installed fresh from the store, its signature checked, and you say yes to each one; nothing is copied from the other browser, and never its cookies or sign-ins. Thanks @sethmorton (#261)
  • Settings › Privacy › Prevent cross-site tracking, on as it always was, can be turned off, as in Safari. Off, sites you open only now and then keep you signed in, where WebKit's tracking prevention would clear what they stored after a week or a month of use; and, as in Chrome, sites framed inside others get their cookies again, so trackers built into those sites can follow you across them. Private tabs keep it on. Thanks @arvakme (#363, #362)
  • The sidebar can sit on the right: Settings › Tabs › Sidebar position. The column, its edge to pull, the window's buttons, folding it away and bringing it out at the edge, and a two-finger swipe between spaces all follow it. Left stays where it starts. Thanks @lulkebit (#340, #253)
  • Bookmark folders of your own: New Folder… in Bookmarks › Show Bookmarks, and New Folder Inside… on a folder's right-click for one within it, as deep as you like; drag bookmarks in, or Move to. Removing a folder with bookmarks in it asks first. Thanks @binaryfields (#354, #305)
  • Your own keyboard shortcuts, in Settings › Shortcuts: every menu command with its key, found by name or by key. Click a key and press another; a key another command has is asked about once and then moved. Right-click to clear one or put its default back, and Reset All to Defaults is there once anything has changed. A key taken off a command goes to the page. The Mac's own keys (⌘Q, ⌘C, ⌘V…), ⌘1–9, ⌃1–9, Tab and Escape stay as they are, and nothing changes unless you change it. Thanks @farchanrifai (#36)
  • An extension's keyboard shortcuts can be changed too, in Settings › Shortcuts › Extensions: each command an extension brings, with the key its manifest asks for until you give it another, clear it or put it back. A key a Search command has is asked about first, as between Search's own. The idea came from @K-NRS (#189)
  • Put to Sleep in a tab's right-click menu lets its page go now, as it would after half an hour unseen: the tab keeps its place, title and picture, and loads again when you go to it. Not for the tab on screen, or one that has to stay awake (a pin, sound playing, a call); with something typed on the page, Search says why it stays awake. Thanks @Takuto1121-ja for asking (#310)
  • ⌘Return keeps a peek as a tab, as its Open as a Tab button does; the keypad's Enter too. While you type in the peeked page, ⌘Return is left to it, to send a message. Thanks @bhanni01 (#326)
  • Pins fill their rows evenly: at most four to a row, fewer only in a column too narrow for four, and the rows as even as they go, the fuller first — five are three and two, seven four and three, nine three rows of three, ten four, three and three. Each row shares the column's width between its own pins. Thanks @Tenk1 for asking (#240)
  • File › Bring Things Over… opens the sheet for another browser's bookmarks, history, passwords and extensions, as Safari's File › Import From does, and so does Bring Things Over… in Settings › General: any time, not only at the first launch.
  • Bringing things over remembers what came from each browser and when — beside it in the sheet, "brought 27 Sep", and what came: 312 bookmarks, 1,204 places, 58 passwords — and bringing the same browser in again still adds only what is new. Replace what came from Chrome before, beside Bookmarks, takes out exactly the bookmarks and folders that came from it last time, then brings them fresh; your own stay, and so does a folder of theirs you have put something in. Passwords only ever add or update. An import from before 1.0.4 has nothing recorded, so there is nothing to replace yet.
  • Bringing things over from Arc brings its spaces too: each of Arc's spaces becomes a space here, with its own sign-ins when Arc's had another profile, its pinned tabs in it, asleep until you go to them (folders opened out in their order), and Arc's favourites as each space's pins. A space of the same name is filled rather than made again, and bringing Arc in again adds only what is new. More than one space turns spaces on. Thanks to everyone who asked for Arc's spaces on X.
  • With tab groups on, each of Arc's folders comes over as a tab group of the same name in its space, its pages asleep in it; with them off, a folder's pages come opened out in their order, and groups stay off.

Fixed

  • Security hardening across extensions, private tabs and passwords, from a second careful private report — thanks again to Vahagn Yengibaryan. An extension's access to websites never reaches another extension's pages; no extension can send a tab to a javascript: or file: address, from its background, its popup or a sign-in flow; installing from a Chrome Web Store page installs the extension that page shows; downloads.open needs its permission and opens only the extension's own downloads; search, notifications, idle, power and text-to-speech need theirs; and Search's own messages are taken only from the extension itself. alert, confirm and prompt from a tab in the background wait until you go to it; the site card and the passwords offered go by the page on screen, not one still loading; the accounts list under a sign-in box takes no click in its first half second; logins imported from Android apps are no longer taken for websites. Camera and microphone choices are kept per site and never for a private tab, a private tab's downloads stay out of the list, Clear History clears site icons too, a disabled or removed extension's offscreen page and keep-awake go with it, and outside test runs the bench lists no private tabs.
  • A few more safeguards: an extension can't open a private window, where it would have had a normal one; and a page on this Mac saved straight in your home folder, or at the top of a disk, is given access to itself only, not to everything beside it.
  • The Figma extension's button works once you're signed in: it asks, as in Chrome, to read and change every website, and when you agree its toolbar opens on the page. An extension asking for more access from a click on its button had the question refused, since the click was lost on the way; the question now comes, only right after such a click and only for what the extension named when it was installed.
  • The pinned tab you are on stands out among the other pins, in a darker grey, in the sidebar and across the top, light or dark; it barely showed against the others' grey.
  • Switching to another app while a video plays full screen no longer leaves Search's window black when you come back: the video stays full screen in its own space, as in Safari, instead of floating out of it. Thanks @dttdrv (#372)
  • Unpinning a tab puts it back among the tabs every time. Unpinning the only tab, or the last pin, could leave an empty square where the pin was and no row for the tab, until something else changed the column.
  • The floating video comes out and goes back with less jumping. Its page is laid out once, at the size the floating window opens at, where it was laid out at the default size first and stretched to the remembered one after; and going back, the rest of the page returns only once the page has the tab's size, where it came back while the page still had the floating window's, and the tab's first frames could show the video sized for that: YouTube's, a 720×240 strip (#257)
  • In full screen, with the sidebar hidden until the pointer reaches the edge, the red, yellow and green buttons are there when the menu bar comes down, and the sidebar no longer comes out over them from the top corner. (#241)
  • Window › Move & Resize works, and so do macOS's tiling shortcuts and the apps that arrange windows: the window said it couldn't be moved, so that a tab picked up in the tab bar wouldn't take the window with it. It is movable now except while you press, which keeps that. (#286)
  • Tab managers and other extensions with the "tabs" permission see every tab's address, title and icon, as in Chrome, and hear when a tab's address or title changes; before, only tabs on sites they could also run on showed them. Private tabs stay hidden from them unless Settings › Extensions allows private tabs, and other extensions' pages stay blank.
  • Extensions put a bookmark where they ask: chrome.bookmarks.create and chrome.bookmarks.move with an index place it there in the folder, where it always went to the end, and a move that names no folder leaves it in the one it is in instead of taking it to the top.
  • The Figma extension signs in. After the provider's Allow, an extension that watches its sign-in tab for its own chromiumapp.org address, as Chrome allows, now sees it and gets its answer; nothing is loaded from that address, and a tab left there says there is no site, as before.
  • With the tab bar folded away, the window can be moved from a thin band along its top edge, and filled with a double-click there, as with the sidebar folded away; there was nothing to take hold of until the bar came down.
  • A middle-click opens a link in a new tab on pages that stop the click on its way up, where it opened nothing; a page that takes the middle-click for itself still keeps it, as in Chrome.
  • A folded sidebar comes out when the pointer is flung past the window's left edge and comes to rest just beyond it, not only when it stops on the edge: with the window away from the screen's edge, a quick reach for the tabs sailed off the window and was never seen there. Only a pointer that came off the window counts, and only once it rests, so one crossing to a display on the left, on its way to the Dock, or moving about over whatever lies beside the window leaves the sidebar where it is. Once out, it stays out while the pointer overshoots the edge a little and comes back. Thanks @tomohiron907 (#256), and @Tenk1 and @merttopuz for asking (#239, #243)
  • A download link that opens in a new tab, as a course site's attachments do, no longer leaves that tab behind: once the file is on its way the tab closes and you are back on the page you clicked, as in Safari and Chrome. Left open, it held the file's address, came back with the next session and downloaded the file again each time it was opened. A tab you opened yourself and sent to a file stays, as a new tab. Thanks @Aaditya2605 (#285, #284)
  • The window opens at the size and place you left it, where it showed at the default size first and then jumped: the saved frame is put back before the window first shows, under the same name as before, so the size you had set stays. (#202) Thanks @sunniekapar (#204)
  • Two fingers sideways on a canvas or a whiteboard, Excalidraw's for one, pan the board instead of going back a page. A sideways swipe is the page's when the page takes the wheel for itself, as Safari and Chrome read it, and not only when something under the pointer can scroll. Thanks @arvakme (#361, #360)
  • Updates can only come from Office Commun: the file that names each new version is now signed with the same Developer ID as the app, and a version it names is fetched only if that signature holds up. When the app can't replace itself and offers the disk image, Search downloads it itself and opens it only if its hash is the signed one and its signature is Office Commun's.
  • With the caret in a sign-in box, scrolling no longer asks the keychain for your accounts on every frame, nor redraws the window each time: the accounts are looked up once per box, and the list only moves with it. The list also takes a click again while the page scrolls; each frame had started its half-second guard over.
  • A tab still loading no longer costs a fifth of a core for as long as it loads. Its spinning ring was redrawing the whole window every frame; a page like Reddit's never finishes loading, so one of those open anywhere kept Search busy the whole time, even in the background. Thanks @AxxzyWasTaken (#269, #268)
  • Scrolling costs the app half what it did. Every frame of every scroll, each page told the app again where its caret was, and the app redrew the tab each time, even with no caret anywhere; it now only says when that changes. Thanks @AxxzyWasTaken (#271, #270)
  • The tabs saved at quit are the ones that come back: saves of the session, the bookmarks and the downloads list could reach the disk out of order, and an older one land after the last. They are now written one at a time, newest last.
  • Quitting on a private or blank tab brings back the tab kept just before it, not the first of the row.
  • A page still loading when you go to another space goes into History and gets its icon when it finishes.
  • ⌘K always opens Search's list of open pages, on every page, pinned ones included. Since pages got their shortcuts first, Slack, X, GitHub and ChatGPT kept it for their own search. (#238)
  • An extension talking to an app on the Mac finds a host registered with Vivaldi or with Opera: both keep their NativeMessagingHosts folder where Chrome, Chromium, Edge, Brave and Arc keep theirs, and Search reads them all now. The two were already browsers it brings passwords and bookmarks in from, so the folders it reads name the same browsers the import list does. Thanks @gabrielemeksiz-ui (#302)
  • A tab's × closes it in the tab bar folded away with ⌘S and brought back over the page, where the × showed under the pointer and a click on it did nothing.
  • "Join from the app" works again on Zoom, Teams, Slack and the like: their pages open the app from a frame of their own, which 1.0.3 ignored along with ads' frames. A frame of the page's own site may ask now, and Search still asks you before opening the app (#255).
  • Scrolling asks far less of the window: every percent of a page scrolled redrew the page's frame, the buttons and the row of tabs, for the tab's reading fill alone — two to four milliseconds each time, on the thread that puts the scrolled page on screen. Only the fill redraws now, a quarter of a millisecond, and nothing at all with the fill turned off. Thanks @teh33, who found it too (#287)
  • Started hidden, at login for one, Search loads its extensions before the page it brings back, so their scripts meant to run first run first on it, as they did until 1.0.2. Thanks @TesterPen0812 for the report (#199)
  • A link clicked in Notion, or another app built on Electron, brings Search to the front: those apps don't hand the front over as macOS 14 expects, and Search stayed behind them.
  • A dev server's address opens as it does in Chrome: 0.0.0.0:3000, which many servers print, opens this Mac (WebKit showed nothing there), [::1]:3000 is understood, and a device on the network by name, homeassistant.local, or on 172.16–31.x.x is reached over http instead of failing on https.
  • ⌘← and ⌘→ go back and forward again, as they did until 1.0.2: since the page gets its shortcuts first, WebKit took them to scroll and never handed them back. In a text box they still move the caret, now in a text box inside a frame too, such as a comment box embedded from another site, where they went back and lost what was typed. Thanks @Aaditya2605 (#293), and everyone who asked (#324)
  • Extension popups load from their own address again: 1.0.3 loaded them from a copy, which extensions that check where a message comes from (Dark Reader, Bitwarden's two-step code…) refused (#320).
  • Bitwarden's popup still learns a change to a self-hosted server while it is open: Search passes the change on to it, since WebKit sends a popup of Search's no events.
  • A window a page opens at a size of its own, a sign-in window for one, is named in the tabs by its site rather than by its title, which the page chooses: one called "Sign in with Google" from another address no longer passes for Google's. A plain link opened in a new tab keeps its title, and a name you gave a tab stays first.
  • A link from another app, or one opened from a pinned tab, comes first after the pins instead of landing between two of them. (#219)
  • The shortcuts card lists ⇧⌘C, Copy Address, which only the Tabs menu showed. Thanks @merttopuz (#182), and @olllayor for asking (#176)
  • The Settings sidebar's colour reaches the divider at the top and bottom, without rounded inner corners. Thanks @sunniekapar (#222)
  • An extension whose worker is a module gets Search's Chrome layer before its own imports run, not after them, and finds navigator.userAgentData there, which Chrome has and WebKit doesn't. Content scripts can call chrome.runtime functions on their own, as Chrome allows (const connect = chrome.runtime.connect; connect()), where WebKit answered nothing. Vimium C's background starts, where WebKit failed to load it; it doesn't answer its keys yet. Thanks @karadoganyi (#170)
  • A floating video stays inside its window on players that centre it with a transform, and Netflix subtitles stay visible over the picture. Thanks @K-NRS (#190)
  • iCloud Passwords pairs on the first code, and stays paired. Its first words to Apple's helper were lost as its background started, so every code you typed got a request for a new one; and WebKit put an extension's background to sleep after two minutes even while it was talking to an app on the Mac, after which iCloud Passwords asked for a code again. Both are mended: its first messages wait until the helper is there, and an extension talking to an app on the Mac stays awake, as in Chrome. Thanks @PeterTheMango (#217, #17)
  • The Passwords panel opens at once however many are kept: it read every secret before it could draw, one keychain call each, hundreds of them on a full drawer. A password is now read when it is shown or copied, and the list is made without any of them.
  • An extension whose worker WebKit had kept from an older build, Vimium with its keys doing nothing for one, works again: the workers WebKit remembers are cleared at launch, before any extension loads, when Search or an extension changed or one was put in again, reloaded or found dead. Reinstalling, reloading and restarting all brought the same stale copy back before; websites' workers are registered again on their next visit, and nothing else of theirs is touched. Thanks @tomohiron907 (#266) and @sethmorton (#259)
  • Bringing things over from another browser is sturdier. The newest history and passwords come too: they are often still in the file SQLite keeps beside the database while the browser is open, which the copy left out. Bringing the same browser in again adds only what is new, where it used to put a second copy of every bookmark in a folder of its own and count every visit twice. A profile with bookmarks or history but no saved passwords is found now, as is a browser that keeps its profile in its own folder. And when a browser is on this Mac but nothing of it is where it should be, the welcome says which one and where Search looked, instead of finding nothing.
  • Bitwarden no longer stops with “Symbol.dispose is not defined” as you sign in: Search supplies the two resource-cleanup symbols its code expects inside extensions, where this Mac's WebKit lacks them. Thanks @lulkebit (#343)
  • Clicking a tab to edit its address shows the address it really has: a port, a search's query, a #fragment and plain http:// are all kept, so Return reloads the same page. The field showed only the host and path, and Return went there instead — 127.0.0.1:8767/page reopened on port 80, a results page lost its search, and an http site came back over https. Thanks @57uart (#264)
  • Clicking a pinned extension's button closes its popup even when macOS dismisses it on mouse-up, instead of opening it again at once. Thanks @kinnrai (#248)
  • 1Password's popup no longer waits on its spinner for ever once the 1Password app answers: its background only tells the popup what changed when it finds the popup open, and WebKit's clients.matchAll() never listed it. An extension's popup with no button to hang from, the column folded away, now opens where the buttons are rather than across the window, and the folded column stays out while a popup hangs from it.
  • NordPass finishes signing in instead of showing "The page didn't load" after authentication: its return to the extension now opens with the configuration WebKit requires, once Search has checked that the website may open that page of the extension (one it lists as public, reached by a plain link from an https page, never in a frame or a private tab). A pinned or named tab keeps its pin and name through the change. Thanks @SimonDesdevises (#323, #98)
  • Passbolt's popup is no longer empty: its background turned the popup away because it came as a tab, where Chrome sends a popup's messages with none; now it comes as Chrome's does. Thanks for the report (#300)
  • The Claude extension starts: its background stopped at once on a name Search didn't provide (chrome.tabGroups.Color), and the tab its button opens showed nothing, its address escaped. An extension page asked for with a query, a side panel's or an offscreen page's, now keeps it, and is always one of the extension's own.
  • A link's right-click menu says Open Link in New Tab, which is what it does: it said Open Link in New Window, as WebKit names it, and opened a tab. Thanks @AxxzyWasTaken (#296, #295)
  • ⌥⌫ in the address field with an ending offered lets go of it and deletes the last word typed, as it does with no ending there; it did nothing at all. Thanks @merttopuz (#244), and @JustinyAhin for the report (#228)
  • Address suggestions keep up with a long history: plain addresses are matched as bytes, and only the best three are kept while the history is read, instead of a suggestion made for every match and all of them sorted on every key. The list is the same. Thanks @Vedaant-Rajoo (#306), and @TesterPen0812 for measuring it (#200)
  • The site card grows to show a connection's details in full, with Show Certificate and Back, and shrinks again on Back, where it kept its first size and cut them off. Thanks @kinnrai (#258)
  • The Web Inspector docked beside a page is still there when you come back to its tab. Switching away took it off, and back on the tab the page sat short beside an empty space, black or white with the look, where it had been; one tab's inspector no longer stays beside another tab's page either. Thanks @ductan2 (#278)
  • The floating video moves, or sizes from its corner, on the first click: the first press on the picture used to go only to making its window the one in front, and it moved on the second. Thanks @teh33 (#279)
  • The download button in the bar over a PDF saves the PDF to your downloads folder, or asks where first when Settings › Downloads says to, and lists it in Downloads. It did nothing. Thanks @Aaditya2605 (#290, #284)
  • Clicking a bookmark whose address is missing or can't be read, which an extension can write and a bookmarks file can lose, does nothing instead of closing Search, as its line in the Bookmarks menu already did. Thanks @Hyp4tia (#234)
  • A pinned extension's popup opens from its button after you move the tabs from across the top to the column, or back, instead of from somewhere else in the window: the row being taken away kept the button's place for itself. Thanks @kinnrai (#254)
  • The ./bench skill has coding agents put a page's picture in this account's own temporary folder instead of the shared /tmp, where anything else on the Mac could read a screenshot of a signed-in page or swap the file. Thanks @Hyp4tia (#236)
  • The bookmarks list stays open while you reach for a bookmark with the column folded away: the column no longer folds under it as the pointer crosses the page, and folds as soon as the list closes. The extensions menu is held the same way. Thanks @merttopuz (#89, #88)
  • A tab no longer wears another site's icon: an icon still on its way from the site the tab has just left is not put on it, the www. and bare address of a site share one, and an icon a page names by a relative path is found. Thanks @DagimAlemayehuu (#216, #181)
  • An extension's shortcut keeps to keys Search doesn't use: one its manifest asks for that is the Mac's, or one of Search's commands has, is left without a key, as in Chrome, and can be given another in Settings › Shortcuts. Closing a tab or window and opening one (⌘W, ⌘T, ⌘N and their ⇧ and ⌥ forms) are never an extension's, wherever you move Search's own; and moving or resetting one of Search's frees or takes an extension's key at once.
  • Bringing things over from a damaged Firefox or Zen profile ends with a message rather than closing Search, and a folder or ZIP is read only as deep as Safari's own export goes.
  • ⌘F puts the keyboard in the find field every time, where with the Mac's keyboard navigation on it could land on the back button until ⌘F was pressed again, and closing the find bar hands the keyboard back to the page. (#172)
  • Search's icon reads in the Dock's Dark, Clear and Tinted styles on macOS 26, where it came out black on black: Dark shows the mark in white on a dark plate, and Tinted and Clear tint or frost a white one. The light icon is the one it was. Thanks @KPR23 for the report (#337)
  • The ad blocker no longer leaves empty boxes where the ads were: the slots news sites keep open for an ad, such as the banner at the top of AS, El País, The Guardian or CNN, now fold away with the ad, so the page closes up around them. Only well-known ad slots are hidden, and only while the blocker is on for the site (#159)
  • A link from another app brings back a Search window you had put away in the Dock, where it opened the page in it and left it there. Thanks @DagimAlemayehuu (#367, #95)
  • A page on this Mac opened from the Finder keeps its pictures and styles when its tab wakes up or is reloaded, where it came back empty, and its tab wears the file name's first letter. Thanks @DagimAlemayehuu (#366)
  • Replace what came from a browser before no longer loses bookmarks when that browser's files don't read: what came from it before is kept, what could be read is added, and the sheet says so. A browser that reads cleanly and has fewer bookmarks than before is still replaced. Thanks @lulkebit (#375)
  • A page's own Print… button, and ⌘P in an editor that keeps the key for itself, bring up the print sheet, where they did nothing: only for the tab in front, one sheet at a time, and a page that asks again each time you cancel is left alone after the second. Thanks @oddharsh (#379)
  • A site that brings up the print sheet again every time you cancel it asks no more after the second cancel within ten seconds, until the tab goes to another site.

Search 1.0.3

Added

  • Updates can wait for you: Settings › About › Install updates on its own, on as before. Switched off, Search still looks once a day and says when a newer version is out, and fetches, checks and installs it only when you press Install.

Fixed

  • Security hardening across updates, extensions and the bench, from a careful private report — thanks to Vahagn Yengibaryan. An update is installed only if it meets the Developer ID requirement a shipped Search is signed to and matches its checksum; an extension's update is compared on everything it may do, the sites it reaches and the APIs Search answers for it included, and a package never supplies the files only Search writes beside it; an extension may request only permissions its manifest names, and reads browser settings or signs in only with the permission for it; and “Let a script drive Search” opens only once switched on in Settings.
  • Bitwarden signs in to a self-hosted server. An extension's popup, and the page its "pop out" opens in a tab, now hear what changes while they are open: WebKit sent them no events at all, so Bitwarden's popup never learnt that its server had changed, and signed in to bitwarden.com, where a self-hosted account doesn't exist, until it was opened again.
  • A mouse wheel scrolls pages that listen to the wheel themselves, as carousels and x.com do: Search stopped pages bouncing past their top and bottom with a style of its own, and together with such a listener WebKit dropped the wheel's steps. The bounce is now turned off by WebKit itself, the page's styles untouched, and the sideways bounce stays for swiping back and forward. Thanks @olllayor (#194). Fixes #180
  • An account picked from the list under a sign-in field is filled only into the page it was offered for.
  • History opens at once with a long past: with two thousand pages the panel took a third of a second to come up, and a second the first time, while it made every line at once and looked on disk for each site's icon. Now it makes only the lines in view, works out its days once, and remembers which sites have no icon. Escape already closes it (#70). (#67)
  • A link clicked in Mail or any other app brings Search to the front, with the page, instead of opening it behind. (#95)
  • The Web Inspector stays beside the page when the window changes size. Search took it out at the first resize and left the page shrunk next to an empty space. (#91)
  • A certificate error is excused without a word only for this Mac itself (localhost, 127.x.x.x, ::1). Any other address, a router or a NAS on your network included, gets the usual warning, which you can pass for that site. Thanks @Dodothereal (#165) and @Hyp4tia for the report (#133)
  • A user script an extension adds is read only from inside that extension's own package, and only for an extension that asked for userScripts. Thanks @burakbuilds (#198)
  • A link to another app — Zoom, FaceTime, a file server — opens only from a click in the page itself, and Search asks first, as Safari does. Mail and phone links still open straight away on a click. Thanks @burakbuilds (#206)
  • Copying a saved password asks who you are first, as showing one does. The copy is kept out of clipboard managers and cleared after 90 seconds. Thanks @burakbuilds (#203)
  • Music, a video or a live stream keeps playing when you switch to another space, as it does in a tab you left; it used to stop. ⌘⇧M, or the tab's speaker, stops it. (#74)
  • An extension from the Chrome Web Store is fetched again only when the store has a newer version. The daily check read the first version="" in the store's reply, which is the XML declaration's "1.0", so every extension counted as out of date: each was downloaded again (uBlock Origin Lite is nearly 10 MB), unloaded and reloaded about once a day, and a password manager signed out with it. Thanks @burakbuilds (#201)
  • A password kept from an https page is no longer offered on a plain http page of the same site, where anyone on the network in between — a café's, a hotel's — could have put the sign-in form there. Search now notes whether a password was saved over http or https, as Chrome does, and an http page is offered only the ones kept from http: a router's page still gets its own. A password saved before this is taken as https until it is next used on an http page. Thanks @burakbuilds (#205)
  • Saving or removing a password touches only Search's own entry in the keychain. Both looked an entry up by site and account alone, which also found what another app keeps for the same site: git's token for github.com under your username, for one. Saving your GitHub password in Search wrote it over that token once the keychain was allowed to, and removing it deleted the token. Search's entries are now also marked as a web form's, so one can sit beside another app's for the same site. Thanks @burakbuilds (#208)
  • A page opens a new tab of its own only from a click or a key, as in Safari. WebKit on the Mac lets a page call window.open whenever it likes, and Search took you to each one: a page could open tabs on load or on a timer and pull you away from the one you were reading. A sign-in or share window opened by its button opens as before. Thanks @burakbuilds (#207)
  • An extension loaded from a folder asks again when Reload finds it wants more than you agreed to, the same question an update already asks, and keeps the version you had if you say no; Reload used to take the new access without asking. Thanks @karadoganyi (#161), and @Hyp4tia for the report (#135)
  • The tab bar folded away with ⌘S comes back over the page on a ground of its own, as the column does: the page no longer shows through between the tabs, and its shadow falls along the bar's edge instead of from every title and icon.
  • ⌘W no longer bounces between two pins: with only pins open, putting down the last one awake leaves an empty tab instead of waking the other again. Thanks @armin-ahmadii (#125)
  • History keeps two articles or two videos of the same site apart: an address's query (?id=, ?v=) is part of what makes it a page of its own, so the second Hacker News story or YouTube video you open no longer takes the first one's place. Thanks @yuxino (#154)
  • A video put full screen, on YouTube and the like, fills the screen with its picture rather than black with the sound playing on. Thanks @StefanTodorov32 (#220)
  • The back, forward and reload buttons have a little room between them. Thanks @DagimAlemayehuu (#209), and @olllayor for asking (#185)

Search 1.0.2

Added

  • A bookmarks bar, as in Chrome and Safari: your bookmarks in a row above the page, folders opening as menus. Off unless turned on, in Settings › Tabs › Show the bookmarks bar or Bookmarks › Show Bookmarks Bar; it folds away with the tabs.
  • Peek at a link, as in Arc: shift-click it and its page opens in a panel over the one you are reading. Escape, ⌘W or a click beside it puts it away; its other button keeps it as a tab beside this one, without loading it again. Off unless turned on: Settings › General › Peek at a link with a shift-click. Thanks @beyondbriks for the idea
  • The video that comes out into its floating window when you leave its tab (YouTube and the like) can be kept in its tab: Settings › General › Float the video when you switch tabs, on as before. ⇧⌘P still floats one by hand. Thanks @mihsanbudiman for asking
  • The site you are on, in a card: click the tab you are on to change its address, and a card comes up under it with whether the connection is private (a step in shows the certificate), Copy Address, Print and the page's zoom. It goes as soon as you type. Right-click a tab › Site Information… opens it too. In the column and in the bar across the top alike, with nothing added to either. The card is from @kndpt's address bar (#56), which stayed out: Search has the column or the bar, never a second row over the page.
  • Mute a tab and let it play on: press the speaker at the end of a tab that plays sound, or pick Mute Tab in its right-click menu. A muted tab keeps a crossed-out speaker, to be heard again the same way. Thanks @merttopuz (#61)
  • File › Share… sends the page where the Mac would send it: Mail, Messages, AirDrop, Notes and the rest, as Safari's Share button does. Thanks @merttopuz (#78)
  • Pages at 120 Hz on a screen that can, like a MacBook Pro's: animations and scrolling in pages drawn up to 120 times a second instead of about 60. Settings › General › Pages at 120 Hz, off by default, as in Safari; it uses more battery. Open tabs follow when reloaded. Thanks @AxxzyWasTaken (#87)
  • Brave Search and Qwant join the engines in Settings › General › Search with. Thanks @vivescene (#52)
  • A middle-click on a link opens it in a tab of its own beside the one you are on, and leaves you where you were — the same thing ⌘-click does, for hands that learned it that way. (#45) Thanks @Dodothereal (#71)
  • Copy as Markdown Link, in a tab's right-click menu beside Copy Address and in the Tabs menu: [title](address), ready to paste into a note, a message or a pull request. (#81) Thanks @merttopuz (#82)
  • The video you're watching can float when you switch to another app, as in Arc, and go back into its tab when you return to it. Settings › General › Float the video when you switch apps, off by default. Only from the sites a video floats from on its own when you leave its tab; one floated with ⌘⇧P stays out. Thanks @farchanrifai (#152)
  • A mouse's back and forward side buttons navigate the page, the way the trackpad's two-finger swipe already does. Thanks @reloadedhead (#79)
  • Flick the floating video to a corner, as in Arc and Dia: two fingers on the window send it to the corner or edge they point at, on a short spring, instead of pushing it along. Settings › General › Flick the floating video to a corner, off by default. Dragging still puts it anywhere. Thanks @farchanrifai (#151)
  • Spaces with the tabs across the top: two fingers up or down over the bar, or a notch of a mouse wheel, bring the next space's tabs in as these go; past the last, a new space is made right in the bar. "New Space…" makes it in place in the column too.
  • Reopen Closed Tab is in the right-click menu of every tab, in the row and in the column, beside Close Other Tabs; it was only on ⌘⇧T and in the History menu. Thanks @andupoto for asking
  • Extensions on private tabs, if you allow them: Settings › Extensions › Allow on private tabs, off by default. It applies to private tabs opened after it is turned on. Thanks @merttopuz (#55)
  • Scroll with the middle button, as on Windows: click the wheel on a page, then move the mouse up or down; another click stops it. Settings › General › Scroll with the middle button.
  • Homebrew: brew install --cask driceroland/tap/search, and brew upgrade brings each new version.
  • ⌘S folds the tab bar away in its layout across the top too, as it folds the column: the page takes the whole height, and the bar comes back down over it when the pointer rests against the top edge. The View menu says Hide Tab Bar there.
  • Where a link goes, before you click it: point at it and its address shows at the bottom of the page, in the other corner if the pointer is in that one. Settings › General › Show where links go, off by default. Thanks @fschrhunt (#29)

Fixed

  • A page on this Mac opens: an .html or .xhtml file double-clicked in the Finder, once Search is the Mac's browser, opened Search and nothing else. It now comes up in a tab, with the files beside it it asks for.
  • Gmail's download button downloads the attachment again, a PDF included: a file the server sends as an attachment is now always saved, as in Safari and Chrome, where Search showed it instead whenever WebKit could — out of sight, in the hidden frame Gmail loads it into, so the button seemed to do nothing.
  • Right-click on a picture works again in a tab you had followed a link out of: closing or putting to sleep the tab the link opened took Search's page scripts away from the first one, so the right-click menu on an image (X's photos, for one) showed nothing at all, and saved passwords, the swipe back and hidden elements stopped answering there too.
  • The back and forward buttons of a Logitech mouse set up in Logi Options+ (an MX Master among them) navigate the page: Options+ sends them as a swipe, not as mouse buttons, and Search only listened for the buttons. Thanks @ductan2 (#169)
  • Pages no longer see anything of Search that Safari doesn't show them. They could see the messages Search's own scripts send to the app (window.webkit, which Safari never exposes) and the variables those scripts kept: the mark of an app's embedded web view rather than a browser, which Google answered with a CAPTCHA every few searches, and some sign-ins with "This browser or app may not be secure". Search's scripts now run in a world of their own beside the page, out of its sight; 1.0.1 also claimed Safari 26.5 on every Mac, where it now names the Safari the Mac has. (#26)
  • Going back or forward with two fingers on the trackpad takes a shorter swipe (70 points instead of 110), and a quick flick is enough, as in Safari. Thanks @mihsanbudiman for the report
  • Scrolling is smoother: while a page scrolled, the fill that shows how far you have read in its tab was redrawn at every frame — up to 120 times a second, taking a third of a core from the thread that puts the scrolled page on screen. It now moves in hundredths, only when that changes. Thanks @e30klip and @mihsanbudiman for the reports
  • A tab you drag to another place keeps up with the pointer: each move of the hand used to redraw the whole column or bar, the neighbouring spaces' tabs included, and the tab trailed behind. Now only the tab being carried moves until it changes place. Thanks @e30klip for the report
  • With a password manager that handles passkeys — 1Password, Bitwarden, Proton Pass — what it hands back to the browser now reaches Search's passkeys. Their scripts in the page ran before Search's and kept hold of WebKit's own passkey function: a site asking for a passkey under its sign-in field left a request open with macOS that way, and Search quitting meanwhile could jam every passkey after it until the Mac restarted. Search's passkey patch now runs first, ahead of them.
  • A page gets the shortcuts it uses before Search does, as in Chrome: ⌘K in Slack, ⌘F in a Google Doc, ⌘S in an editor. Search acts only if the page leaves the key unused. The keys that open, close and switch tabs (⌘T, ⌘W, ⌘⇧T, ⌘⇧N, ⌘1–⌘9, ⌘⇧[ and ⌘⇧]) stay Search's, and the menus are unchanged. Thanks @AbhiPanseriya for the report. Refs #147
  • The list under the address field keeps up with a paste or a keystroke: its rows change at once instead of sliding into place on a spring, it comes and goes with a short fade, and the field steps aside quickly once Return is pressed. Thanks @andupoto for the report
  • Spaces across the top go one at a time: a spin of the mouse wheel, or a stroke that follows another too soon, no longer runs through several of them, and a little scrolling with the pointer high on the page no longer changes space. The space's icon turns over the way the tabs go, up for the next space and down going back, where it slid sideways.
  • Hiding or showing the sidebar, or the tab bar across the top, no longer judders along the right of the window: the page slides with them and is laid out once at its new size, instead of on every frame of the slide — which also let it overshoot the window for a moment. Thanks @infomiho for the report
  • Session Buddy opens when its button is pressed. It listens at start for a window changing size, which Chrome reports and WebKit doesn't, and gave up there before listening for its button; Search now offers that event too. Thanks @andupoto for the report
  • ⌘⇧V in a text field pastes without formatting, as it does in Chrome — in a Google Doc too, and in a box inside another site's frame. Away from a text field it is still Paste and Go. About lists it as Paste and go. (#138) Thanks @Aaditya2605 (#144)
  • A floating panel no longer loses the cursor over a page that hides it: the six sheets in App.swift — Settings, History, Downloads, Bookmarks, Welcome, Passwords — now own an arrow cursor rect of their own, so a page's cursor: none stops at the panel's edge instead of painting invisible air across the whole sheet. Thanks @0froq (#149)
  • With an extension's page as the new tab, the field works again: an address or a search typed there went nowhere and the tab stayed on the extension's page. Bookmarks, history and pasting an address into that tab had the same trouble, as did any tab showing an extension's page, one it opened included. A private tab sent from an extension's page to a website stays private. Thanks @meta-boy (#42)
  • Extensions: the Chrome APIs Search answers itself (history, bookmarks, downloads, the open tabs, closed tabs, top sites, browsing data, the reading list) are now held to what the extension's own manifest asked for, where the only checks before were inside the injected script that runs beside the extension's own code. Thanks @Hyp4tia (#128)
  • An extension package that carries a symbolic link is refused at install, the rewriting of its pages and its background script no longer follow one, and a manifest path that points outside its own folder is left alone. Thanks @Hyp4tia (#129)
  • ./bench answers only for the tabs it opened itself: a script on this Mac can no longer read, click in, or put to sleep a tab you are using. Thanks @Hyp4tia (#130)
  • A right-click on an image offers Search's own menu to open, copy or download it only when its address is http, https, data or blob; for any other address a page names, WebKit's own menu shows instead. Thanks @Hyp4tia (#131)
  • An extension's sign-in is finished only by the tab it began in, or a window that tab opened; another page that goes to an address shaped like the sign-in's answer is no longer handed to the extension as that answer. Thanks @Hyp4tia (#132)
  • An extension's popup opens at its size, the one it had last time, where it came in as a sliver and grew into place. Thanks @nicostassart (#48)
  • A new tab opened from a private tab is private too: ⌘T, ⌘-click on a link, ⌘D, Open Image in New Tab, and a bookmark opened with ⌘ used to open an ordinary tab, which kept the page in the history. A link or duplicate stays signed in to what the private tab was (#121) Thanks @PeterTheMango (#122)
  • Pages are told the Safari version this Mac has, not a fixed Safari 26.5: on an older macOS, a site trusting that number could send code its WebKit can't run. Thanks @peter-bf (#110)
  • Passwords, Bookmarks and the welcome screen find the browsers to bring things over from without walking through their caches: a few milliseconds instead of twenty, each time those lists are drawn. Thanks @dttdrv (#156)
  • The first launch, the one with the welcome screen, puts its window up about 50 ms sooner: the browsers to bring things over from are looked for when that page is reached, not while the window is being built. Thanks @dttdrv (#155)
  • Search can be chosen as the default web browser. macOS only lists an app there when it claims XHTML pages as well as HTML pages; Search claimed HTML, http, and https, and so never appeared in Desktop & Dock → Default web browser. Thanks @Aaditya2605 (#140)
  • Sites whose redirects carry a binary content type — youtube.com sends application/binary on its move to www.youtube.com — are followed to their destination instead of being downloaded as a file. Thanks @danielferrazs (#124)
  • Esc puts away Downloads, as it does History and every other panel. Thanks @shashwataggarwal (#80)
  • A tab's title in the column runs to the end of its row, where it stopped short to leave room for a cross that only shows under the pointer; under the pointer, the title fades out beneath the cross. (#84) Thanks @caisergan (#109)
  • An extension's button closes its popup when pressed a second time, as in Chrome, instead of opening it again. Thanks @iuri1911 (#137)
  • 1Password works: signing in to it in the browser adds your account and unlocks it, and its menu offers your logins on Google and every other site. Once a sign-in succeeded the extension froze for good, its popup included, and the account was never added: WebKit hangs an extension's worker that opens a WebSocket, and 1Password opens one right then. An extension's worker now gets its sockets from Search. The tab 1Password then sends to its own page goes there too, where it stayed on a spinner. To unlock with the 1Password app instead, add Search in 1Password › Settings › Browser › Add Browser. Thanks @iuri1911 (#126)
  • Passkeys saved in 1Password work, GitHub's two-factor sign-in included, on the first try. Where Search can't offer the Mac's own passkeys, it hid the passkey object from every page, and sites said passkeys weren't supported, 1Password's included; now it is there whenever an extension answers passkey requests itself. And a message an extension's worker sends to a tab now reaches the extension's own frames in it, as in Chrome: 1Password's banner never heard it should offer the passkey, and the site's request failed until the page was reloaded. Thanks @iuri1911 (#126)
  • Bitwarden, and any extension that keeps things in an offscreen document: each save there took ten seconds, and one made just before could be lost — enough to get in the way of signing in. Extensions can also find their own popup, background and offscreen document (runtime.getContexts).
  • Proton Pass finds sign-in forms again, and offers its logins in them: its form detection waits for requestIdleCallback, which WebKit doesn't have (it was taken out after a page-load regression, bug 287681), and stopped there. Search supplies one to extensions. The object a password manager hooks for passkeys is also kept, so its hooks don't vanish when WebKit makes a new one. Thanks @ChloeVPin (#146)
  • The floating video window opens where you last left it, at the size you left it, instead of back in the bottom-right corner each time; if that spot is no longer on a screen, it starts in the corner as before. (#123) Thanks @farchanrifai (#150)
  • The stand-in traffic lights drawn while Search is in the background are no longer redrawn each time the window changes screen or size, only when they move.
  • An empty tab no longer works the processor while it waits: the slow breath under the address field was redrawn by the app every frame, about a sixth of a core with nothing happening. The same breath now runs in macOS's own animation layer, at no cost to Search.
  • With extensions installed, the window no longer waits for them: they load once it is up. The first launch after an update, when Search fits its Chrome compatibility layer to each extension again, does that away from the main thread — with Grammarly, the window had stood still for half a second. Thanks @andupoto for the report
  • Search opens faster when you have many bookmarks: the Bookmarks menu used to be built in full, every folder included, before the window could appear — about a quarter of a second for 1,500 bookmarks, at every launch. Its bookmarks are now put in as the menu opens, a folder's as that folder opens. Thanks @andupoto for the report
  • Before macOS 15.4, where Search can't run extensions, the Chrome Web Store no longer shows an "Add to Search" button that did nothing when pressed; Settings › Extensions says what they need. Thanks @andupoto for the report
  • Started hidden — open -j, or anything that launches Search in the background — Search comes up with its window, hidden with it until shown, where it could come up with no window at all.
  • A new tab starts loading the moment you press Return or pick a bookmark. Each new tab used to start its web process from cold first — about 40 to 60 milliseconds with the window stuck — where it now takes about 10. Thanks @andupoto for the report
  • A bookmark picked from the list under its button closes the list as its page starts, instead of leaving it open over the page. Thanks @andupoto for the report
  • A link pasted into the address field shows at once. Every key and every paste sorted the whole history again for the History menu, and cut every address in it into pieces to find its host, before the field could catch up. Thanks @andupoto for the report
  • Passkeys work: a site's "Sign in with a passkey" or "Create a passkey" brings up your Mac's own passkey sheet — Touch ID with your passkeys from iCloud Keychain or a password app, your iPhone over the QR code, or a security key — where it could end in "authentication failed" on every site. Left to WebKit, a sign-in page that offers your passkey under its name field kept a request open with macOS, and if Search quit or crashed while such a page was open, macOS went on refusing all of Search's passkeys until the Mac restarted. Search now carries passkeys out itself, as Chrome does, and never leaves one open; the first time, macOS asks whether Search may use them. Passkeys still failing after the update? Restart your Mac once. Not yet: the Mac's passkeys offered under a sign-in field as the page loads — the site's passkey button is the way in for now; a password manager extension that keeps passkeys, such as 1Password, can offer its own there. (#17)
  • ⌘⇧N no longer piles up empty private tabs: one already open comes to the end of the row, as with ⌘T.
  • A new space's choice of sign-ins reads in full in the column ("Signed in" / "Signed out"), where it was cut short.
  • A saved password is offered only on its own site: one kept for alice.github.io is no longer offered on another github.io, herokuapp.com, blogspot.com or other shared-hosting site, and one kept for a network address such as 192.168.1.1 no longer on 10.0.1.1. Sites are told apart with the public suffix list macOS keeps, as for passkeys. Thanks @karadoganyi (#163)
  • A hidden sidebar comes out every time the pointer reaches the left edge, and goes when the pointer leaves it. Brought out and put away quickly a few times, it could stay out after the pointer had gone, or not come out at all until the pointer left the edge and came back; the same for the tab bar folded away across the top. It now follows where the pointer is, even with another app in front. (#114) Thanks @caisergan (#115)
  • A column of tabs long enough to scroll no longer draws its scroll bar over the cross on the tab under the pointer, where one was taken for the other: it sits in the margin beside them instead. (#83) Thanks @caisergan (#99)
  • Search with… on selected text opens the search in a new tab in Search, with the engine chosen in Settings › General, instead of handing it to the Mac's default browser. From a private tab, the search opens in a private tab. Text selected in a text field, or in a frame of the same site, is searched too. (#66) Thanks @karadoganyi (#73)

Search 1.0.1

Added

  • A middle-click on a tab closes it, in the row across the top and in the column. A pinned tab is put down, as with ⌘W. Thanks @lusqua (#27)
  • Rename a tab: Rename in a tab's right-click menu, or Tabs › Rename Tab, types a name over the title in place. The name stays with the tab wherever it goes, and survives a quit; emptying the field gives the page's own title back. Thanks @theosementa (#32)
  • The sidebar can hide by itself until the pointer reaches the left edge: Settings › Tabs › Hide the sidebar until the pointer reaches the edge. ⌘S still brings it out to stay. Thanks @lusqua (#30)
  • Spaces: separate sets of tabs in the one window, each with its own icon and, if you like, its own downloads folder — signed in wherever your other spaces are, or starting afresh with cookies and sign-ins of its own, as you choose when you make it. Turn them on in Settings › Tabs, then switch with ⌃1–⌃9, the space's icon, or two fingers sideways over the column of tabs, where the next space slides in beside this one; past the last, the column offers to make a new one. (#4)
  • Web Inspector: Inspect Element in a page's right-click menu, and in the View menu the inspector (⌥⌘I), the JavaScript console (⌥⌘J) and picking an element (⌥⌘C), the keys Chrome and Arc use. (#13)
  • ⌘S folds the sidebar away and the page takes the whole window; the left edge brings the tabs back out. Thanks @kndpt (#7)
  • Search with something other than Google: Settings › General › Search with offers DuckDuckGo, Bing, Ecosia, Startpage and Kagi, or any address with %s where the words go. Google stays the default. Thanks @karadoganyi (#43)
  • The grey that fills the tab you're on as you read down the page can be turned off: Settings › Tabs › Show how far you've read. Thanks @karadoganyi (#57)
  • A skill that teaches coding agents to drive Search with ./bench. Thanks @jasonkneen (#14)
  • Extensions can be pinned to the toolbar from Settings › Extensions, not just from the puzzle-piece menu.

Fixed

  • Search opens on macOS 14 again: it quit as it opened, before its window, setting the look chosen in Settings on an application that didn't exist yet. Thanks @serhiitroinin (#38)
  • A column of more tabs than the window holds scrolls between the pinned tabs and its foot, instead of running under the traffic lights and off the bottom of the window; the tab you go to is brought into view. Thanks @lusqua (#39)
  • ⌘T never leaves two empty tabs: an empty tab already open elsewhere in the row comes to its end and opens, with whatever was typed in it and not gone to cleared. (#35) Thanks @SamarthaB10
  • While a tab's address or name is being edited in the tab itself, a click anywhere else — the page, the column below, the rest of the strip — keeps what was typed, as Return does, instead of throwing it away. An address left as it was loads nothing again.
  • Folded away with ⌘S and brought out at the edge, the column arrives whole: the traffic lights and the pinned tabs come in with it instead of standing there before it.
  • A double-click along the top of the window fills the screen, as a title bar's does: it was answered twice and ended where it started. In the column's mode the page's top edge takes it too, folded away with ⌘S included, where nothing did.
  • ⌘← and ⌘→ move through text while editing; adding Shift selects text instead of navigating away from the page. Thanks @yuxino (#19)
  • Extensions that open something inside a page no longer make it reload: signing in to Google with iCloud Passwords installed reloaded the page over and over, and every Vimium key that opens its bar or its link hints reloaded the page. Such a panel now gets the same answers from the browser as in Chrome. (#2)
  • Dragging a tab to put it elsewhere in the row across the top moves the tab, not the whole window, and a tab being dragged stays under the pointer as it passes the others, in the column too.
  • A fresh install follows the Mac's appearance: on a Mac set to dark the browser and its pages start out dark, instead of always starting light. Thanks @mikuteto-dev (#22)
  • The address field on a new tab holds still while its suggestions appear under it, instead of jumping up. Thanks @fschrhunt (#16)
  • 1Password's Sign in button works: an extension's page can send its tab to a website again, where it used to do nothing.
  • A video in the floating window costs no more to play than in its tab. The window's shadow made WindowServer composite every frame; it has none now. (#33) Thanks @AxxzyWasTaken
  • Tab moves between a form's fields again, as in every browser; ⌃Tab and ⌃⇧Tab switch tabs.
  • ⌘1–⌘9 (and ⌘0 to reset the zoom) work on every keyboard layout, AZERTY included: they follow the key, not the character it types.
  • A private tab now leaves nothing behind: it no longer shows up in Recently Closed. Thanks @yuxino (#6)
  • ⌘L then Return keeps the whole address, the part after ? included. Thanks @yuxino (#5)
  • A floating video shows the whole picture on YouTube, and the page comes back to its tab when it lands. Thanks @Chinteyley (#9)
  • No white flash when a link opens a new tab in dark mode. Thanks @RanaOsamaAsif (#3)
  • Typing no longer makes the Mac beep when a page hasn't put its cursor in a field yet — starting a reply on X, for one. (cc8aa58)

Search 1.0

The first version. A browser for the Mac with nothing in the way: tabs in a row or down the side, pinned tabs that keep their place, and one field for addresses and searches. Ads blocked before they load, passwords and passkeys in your keychain, anything on a page hidden for good, reading mode, floating video, Chrome extensions from the Chrome Web Store (macOS 15.4 or later), and tabs that sleep after half an hour. 2.9 MB, on the engine already in macOS.

Search is free, for Macs on macOS 14 or later, and the newest version is always the download.

Download for macOS

Intel Mac? · CHANGELOG.md on GitHub