Documentation

Peak Browser

Peak is a native Apple browser workspace for quick lookups, saved context, focused work, optional AI, and nearby collaboration. Built with SwiftUI and WebKit, local-first by design.

macOS 14+ · iOS & iPadOS 17+ · Updated 2 October 2026

Overview

Peak is not an address bar with tabs. It is a workspace you summon, where a lookup can become a note, a task board, an AI chat, a whiteboard, a saved session, a generated site, a mesh conversation, or a two-minute game — without leaving the window.

Instant access

On macOS, summon Peak from anywhere with a global hotkey. Open it, capture something, return to what you were doing.

Native, not wrapped

SwiftUI, WebKit, Core Data, CloudKit, Keychain, and Apple's Network framework. Web tabs are real WKWebView instances, not an embedded browser engine of our own.

Local-first

Workspace data stays on device and syncs only through your own iCloud. API keys live in Keychain. No analytics in the app.

Alongside web tabs, app-native tabs hold notes, boards, AI chats, whiteboards, sites, mesh rooms, arcade games, and local tools. They all behave like tabs: reorder them, keep them side by side, save them into a session.

Install & first run

Peak is on the App Store for macOS 14.0 and later, and iOS/iPadOS 17.0 and later. Download it, launch it, and complete the welcome flow.

The global hotkey

ShortcutAction
Control + 1Toggle the Peak window from anywhere on macOS

Change it under Settings → General. Command, Shift, Option, and Control combinations are all supported.

On macOS, Peak can live in the menu bar. Clicking the icon toggles the window, and Peak can hide itself when it loses focus — which is what makes it feel like a command surface rather than another browser window competing for space.

Nothing is required up front. Peak works fully as a browser and workspace with no account, no API key, and no network calls beyond the pages you visit. Every AI feature is opt-in and off until you add a key.

Root pages

Peak's root is a horizontal workspace of five pages. Swipe or click between them; they are always there behind whatever tab you have open.

Landing
The starting point. One input that searches the web, opens a URL, creates a note, starts a board, begins an AI chat, or opens a whiteboard.
Dashboard
Your local command centre — profiles, incognito, bookmarks, bookmark groups, saved sessions, and jump-back entries.
Activity Hub
A timeline of recent searches, pages, notes, boards, chats, and whiteboards.
Arcade Hub
The Intermission area: short games, focus spaces, and small local tools.
Mesh Hub
Nearby collaboration over the local network.

One input, many outcomes

The landing input changes what it produces depending on the mode you pick:

  • Search — query a search engine, or paste a URL to open it directly
  • Note — capture a block-based document
  • Tasks — start a Kanban board
  • Whiteboard — open an infinite canvas
  • LLM chat — begin an AI conversation

Each one opens as a tab, so a half-finished thought sits beside the page that prompted it.

Two tabs at once

Right-click a tab you are not currently on — press and hold on iPad — and choose Show Beside, then whether it goes on the left or the right. The content area splits and both pages stay live: a video keeps playing in one while you read the other.

Both tabs are highlighted in the strip, each marked with the half of the window it holds. The address bar and the toolbar follow the tab you are actually working in; click the other pane's tab to swap which one that is, and each pane stays where it is on screen. Close Split, in the same menu, puts you back to one page.

The arrangement survives quitting Peak and comes back on the same sides — unlike the tab you happened to be on, which gives way to a fresh one at launch, because a split is something you chose rather than something you ended up with. It is offered wherever there is room for it: every Mac, and iPad in landscape or split view.

Morning brief

Under the weather chip on the landing page, a card gathers the day's headlines on the topics you choose — World, Tech, Markets, Local, Sport, Science, or up to two of your own — and shows what you were last in the middle of. Every story carries the publication it came from, and every link opens in a tab.

It is off until you turn it on, and while it is off Peak makes no searches of any kind for it. Gathering happens at most once a day: on your tap, or the first time you open the landing page after a time you set, which is seven in the morning unless you change it. Nothing runs in the background — open Peak at eleven and the brief arrives at eleven.

Every headline links to a page Peak actually fetched while gathering. Anything the model writes that cannot be tied back to one of those pages is dropped rather than shown, because a citation that looks right and goes nowhere real is worse than no brief at all.

Ask a follow-up and the brief becomes an ordinary chat — listed, searchable, and deletable like any other. A brief you only read stays out of your history entirely. The ✕ on the card means “not today” and it returns tomorrow; the switch in Settings means never. You can also choose which model gathers it, separately from the model you chat to.

Dashboard & activity

The dashboard holds workspace profiles, incognito, bookmarks and bookmark groups, saved tab sessions, activity summaries, and jump-back entries for recent work.

Activity Hub

A timeline of recent searches, visited pages, notes, boards, chats, and whiteboards — for getting back to context without having to remember where you left it.

Saved sessions

A session is a set of tabs saved together and restored together. Useful for a piece of research you want to close without losing, or a set of references you reopen every week.

Profiles & incognito

Workspace profiles isolate cookies, sessions, caches, and local web storage, so personal, work, and throwaway browsing stay separate. Each profile carries its own name, icon, and colour.

Incognito skips history and activity persistence entirely — nothing is written to your workspace.

Block notes

Peak Notes are block-based documents for structured capture without leaving the workspace.

Creating one

Switch the landing input to Note, type a title or a first thought, and submit. The note opens as a tab. Existing notes are in the Notes inspector.

Block types

Headings · Paragraphs · To-do blocks · Code blocks · Markdown blocks · Links · Separators · Images · Tables

Images can be dropped in or added through a file picker. On macOS, notes export to PDF.

Mesh-aware

With mesh sync enabled, note edits travel to nearby peers as structured workspace deltas rather than whole-document replacements, so two people editing different parts do not overwrite each other.

Kanban tasks

Native boards for lightweight tracking. Switch the landing input to Tasks, name the board, and it opens as a tab.

Boards support lanes, cards, drag-and-drop between lanes, and local persistence through Core Data. They can participate in mesh sync when it is on.

Whiteboards

An infinite canvas for diagrams, maps, files, and rough design work.

  • Select and pan
  • Freehand drawing
  • Lines, arrows, elbow connectors, and curved connectors
  • Rectangles, circles, diamonds, triangles, inverse triangles, and cylinders
  • Text, sticky notes, and tables
  • Images, documents, videos, audio notes, and live web embeds
  • Groups and layer ordering
  • Export controls for a selection
  • Lucide icon assets
  • World, continent, and country map assets

Whiteboards have their own tool shortcuts for select, pan, draw, text, sticky notes, shapes, arrows, grouping, duplication, zoom, and delete. They sync over mesh when enabled.

Slides

Ask the assistant for a deck and it arrives on the answer that made it, as a card you open. Each deck is its own tab, comes back when Peak reopens, and can belong to a project. Decks are also in your library, beside everything else Peak has made.

One deck, many sizes

A deck is drawn at whatever size you need, and changing the size moves nothing on the page:

  • Presentation slides at 16:9 and 4:3
  • App Store screenshots for iPhone, iPad, and Mac, at the sizes App Store Connect asks for
  • Link previews, square posts, stories, and video thumbnails

Export writes one PNG per slide, numbered so a deck of twelve sorts in the order it is presented in. App Store sizes come out without an alpha channel, which is what Apple requires and what a rejected upload is usually missing.

Editing a slide

Click anything on a slide to select it, drag it to move it, and change its words, its colour, its position, and its size in the panel beside the page. Elements and slides can be added and removed. A slide whose elements were never given coordinates has them written down on the first edit, so moving one line does not rearrange the rest.

Peak checks that it fits, and looks at it

When the assistant builds a deck, Peak measures it and reports back what overflows the page, what overlaps something else, and what text needs more height than its box gives it — before the deck is described to you. Text is measured with the same typesetting that draws it, so “this does not fit” is about the picture that will actually be produced.

Measuring is not the same as seeing, and a deck can pass every check and still be badly balanced. So the assistant also draws the slides small, tiles them into one picture, and looks at that before it writes a word about the deck. That picture is attached to the answer, which means you are looking at what it looked at.

On a whiteboard

A deck can be opened on a whiteboard, laid out page by page with the edges drawn, and carried on by hand. What lands there is the slide taken apart rather than a picture of it: text is text, shapes are shapes, and an infographic arrives still written as its document, so it keeps editing and merging like anything else on the board. Plots and typeset equations have no whiteboard element of their own and come across as pictures.

Decks are stored on your device and travel over iCloud with everything else. Editing a deck is on the Mac in this release.

Timeline

A video editor with rows, opened from Intermission → Tools → Timeline Structures. Start from a finished cut — an announcement, a three-point explainer, an open/middle/close story, or a set of lower thirds — or from a blank timeline. Each project is its own tab, comes back when Peak reopens, can belong to a project, and sits in your library beside everything else Peak has made.

Rows that overlap

Clips are placed in time on numbered rows rather than queued one after another, so a title can lie over a shot and a music bed can run under all of them. Where rows overlap the higher one is what you see; where a clip fades, the row beneath shows through.

Drag a clip's ends to trim it, drag past the end of a card to hold it longer, drag past the end of a shot to repeat it, and drag the corners to fade. There is undo, copy and paste, and the delete key does what you expect.

One frame, whatever you drop in

Every project is cut for a frame you choose — widescreen, 4K, square, portrait, vertical, or the exact sizes App Store Connect asks for in an app preview — and everything that arrives is fitted into it. A tall photograph dropped onto a widescreen edit is letterboxed rather than reshaping the whole video around itself. Changing the frame refits every clip and re-encodes nothing.

Titles, shapes and colour

Words on a transparent card, bars, discs, blocks, and eight symbols, each in one of seven colours, all laid over the picture rather than beside it. A title can be rewritten and recoloured after it is already on the timeline.

Slides become clips

A deck from Slides can be laid onto a timeline. Each slide is drawn once and imported as an ordinary still, so it trims, fades, and moves like anything else — and an empty project takes the deck's shape.

The same timeline, read as music

Switch the pane above the timeline and the edit becomes a mixing desk: a fader, mute, solo, and a meter for every row, and a record that turns while it plays. Give the project a tempo and the ruler counts bars and beats instead of seconds, and clips snap to the grid.

Solo is deliberately not saved. It is what you are listening to this minute rather than part of the edit — a project reopened tomorrow with four rows silent would be a bug that looks like lost audio.

Exporting

Export writes the whole project — every row, every fade, the mix — as one file. Bounce writes the sound on its own as an .m4a, from the same mix the video export uses, so the two cannot disagree. Both are rendered on your device; nothing is uploaded to produce them.

What the assistant can do here

Ask it to continue a video and it reads the edit as a grid of frames, takes the last frame of the cut — trims and titles included — and generates a clip that starts from exactly there. It can also add, trim, cut, style, title, reorder, and remove what is already on the timeline, and export the result.

Waveform

An invented music service with nothing real in it, opened from Intermission → Tools → Waveform or at peak://waveform. You describe a song and Peak generates the audio, then writes a title, an artist, a record and a cover around it, so it arrives as a release rather than as a loose file.

Describing one

Pick a genre, a mood, a tempo, the vocals, some instruments and a production style, or simply write a sentence — the prompt is assembled from whatever you choose and shown before you commit to it. Albums and artists can be invented on their own for the price of one text request; only the track you actually play costs real time and real money.

The words it was made from

Every generated track keeps its prompt. Details under the player shows it, selectable, with Copy prompt and Make another like it — which carries the words back to the create page so a variation is one press rather than a copy, a tab change and a paste. The same prompt is on every song’s own menu.

A generated song cannot be edited and cannot be remade exactly. The sentence that produced it is the most reusable thing about it, which is why it is kept and shown rather than thrown away.

Transcribing the words

Details can transcribe what is being sung, using the same on-device model Peak uses for voice notes. No key, and the audio never leaves the machine. It is a speech model and a song is speech with a band over it, so a loud mix will confuse it — the panel says so rather than presenting a guess as a lyric sheet.

Radio

When the last song in the queue starts, more like it are added behind it, so a single track is followed by something instead of by silence. Similarity comes from the words each song was asked for — shared choices first, then the artist, then the genre — rather than from a genre label alone. Anything you lined up by hand plays first and is left alone, and nothing is added while a repeat is set.

Library and playlists

Favorites, songs, albums, artists and playlists, as a grid rather than a shelf: the library is the finite set of things you chose, and the question it answers is “what have I got”. Playlists open from their name or their cover, and can be played from the player’s own panel without leaving it. The catalogue syncs through your own iCloud.

The player

Push the cover up or down to change song: the next one rises into view before you commit to it, and letting go short of halfway puts it back. The timeline is the track’s real envelope, read from the file itself, and dragging it scrubs. Music appears in Control Centre and on the lock screen, so the media keys and your headphones drive it.

What the assistant can do here

With Waveform in front, Peak AI knows what is playing, what it was generated from, what is queued and what the catalogue holds — so “make another like this one” means something. A song it generates in a conversation is filed here as a release too, with an artist and a record of its own, and it will tell you where to open it.

Understudy (voices)

A voice studio, at Intermission → Tools → Understudy. The voices run on your device with no account and no key, and their audio never leaves the machine. Each model downloads the first time it is needed and runs locally from then on. Everything it speaks, and every finished book or dub, is marked as AI-generated and filed in the Library.

A voice from a short clip, and whose it is

Five to fifteen seconds of one person speaking is enough to learn a voice. Before anything is cloned, Understudy asks whose voice it is — yours, or someone who agreed to it — and keeps the answer with the voice, with the date it was given. The clip itself is not kept, only the voice made from it. Type something to hear it spoken, or use Convert to hear a recording’s words said again in another voice. A voice made on the device speaks one of English, French, German, Italian, Portuguese or Spanish.

Ready-made voices

Twenty-six voices come with the voice engine — Alba, Anna, Azelma, Charles, Eve, George, Jane, Marius, Vera and more — each in all six languages. They are nobody’s recording, so there is no clip and no consent step; they speak on the device, cost nothing, and each downloads a small file the first time it is used. They appear under Ready-Made in every voice menu, and a new dub is cast with them until you choose others.

Dub a video, speaker by speaker

Bring a video and each speaker is found and given a voice. Edit any line, or translate every line on the device (macOS 15 or iOS 18). A line that runs longer than the original is sped up to fit, up to the point where speech still sounds like speech, and the page tells you how far the dub has drifted from the picture. The finished video goes into the Library.

Audiobooks and stories

Paste a text, or import a .txt, Markdown or EPUB file or your own notes, and a voice reads it chapter by chapter. A line starting with # begins a chapter and [pause 2s] holds a silence. Edit one chapter and only that chapter is recorded again; stop half way and the chapters already finished are kept. Stories add a cast: [Maya] Is this the train? or MAYA: Is this the train? gives Maya that line, each character gets a voice, and everything else is the narrator’s. Changing one character’s voice re-records only the chapters they speak in.

Transcripts that know who said what

Record something, import it, or drop in a song from the Library, and each line is marked with its speaker. The recording is kept with its transcript, so pressing a line plays it. Transcripts export as text, Markdown, SRT or WebVTT subtitles.

Studio voices and cloud clones

When a voice on the device is not enough, every voice menu also lists studio voices from Google, Mistral, Microsoft, xAI, Deepgram and Kokoro, each with what an hour of speech costs. Choosing one adds it to your voices. They run through your own OpenRouter key and send only the text, never a recording. A voice can also be cloned in the cloud, by Fish Audio, for a clearer clone; its first twenty seconds are kept on your device and sent with every line, and Understudy asks about that separately from asking whose voice it is.

Languages matter here. Gemini’s voices speak whatever language the text is in, Norwegian included; a provider that does not speak the language of a dub is not offered for it, and the language is passed to every provider that accepts one, so a Norwegian line is not read as Danish. Every audiobook, story and dub shows what it will cost before it runs.

The Gallery lists every voice you have made, with its consent record and everything it has said. Files lists everything the studio keeps on this device, with how much room each takes, so anything can be opened, shown in the Finder or deleted.

Stem Splitter

A tool under Intermission → Tools → Stem Splitter that takes a song apart on your device. You get vocals, drums, bass and everything else, or guitar and piano as well. Every stem plays in step on its own lane, with mute, solo and a level for each. Backing Track drops the vocals and A Cappella keeps only them. Any stem, or the mix exactly as you are hearing it, can be filed in the Library.

Stems are the song’s own sound separated, not generated, so they are not marked as AI-generated.

Agenda & calendar

The page before the first page. Push the start page to the right — where a phone keeps its Today View — and Peak shows what is due and what is coming. Nothing here needs a key, an account, or access to your system calendar.

What is on, and when

A month grid, a week grid with real hours, and an agenda beside them. Press a day in either grid and the agenda narrows to it; press the same day again and it widens back to the fortnight. The month always draws six weeks, so the page does not jump as you move through the year, and on a narrow window it shows a dot per item rather than a title — seven columns of a phone screen cannot hold a filename. A week starts on the day your own region starts it.

Tasks and events together

Tasks with a due date arrive from your boards, and events you make in Peak sit beside them. That is the part neither a calendar nor a task board can show alone: what you have to do and what you have to attend, in one list. Overdue work is first, because it is the only part that is already a problem — an event that has passed is over rather than late, so events never appear there.

Events

An event belongs to nothing but a date. Give it a time or mark it all-day, and add where it is, a link and notes. It can repeat daily, weekly, fortnightly, monthly, yearly or every weekday, with or without an end — a repetition with no end says so, because it keeps drawing for ever. Something that runs past midnight is drawn on both days, marked so it reads as carrying on rather than stopping at twelve.

Peak AI reads and writes the same calendar: ask what is on Thursday, or to put something in at three. It can move an event rather than deleting and remaking it, and it is told plainly that writing a plan in a reply is not the same as scheduling one.

Finance

Every account in one place — what you have, what you owe, and where the money goes — at Intermission → Tools → Finance.

Bringing the money in

Import the statement your bank exports, as CSV, OFX or QFX; Peak works out the columns, dates and number formats itself, in any language. Importing the same file twice adds nothing. Shop names are cleaned up (“VISA VARE 4521 REMA 1000” becomes “Rema 1000”), hundreds of Nordic and international shops are filed automatically, and transfers between your own accounts are matched. File a shop once and Peak offers to always file it that way. You can also add an account by hand, or choose Try with a sample year, which fills Finance with a made-up year you can remove in one click.

Connecting a bank directly

Optional. Instead of importing files, Finance can follow your accounts through open banking, using Enable Banking and a free application of your own. Your bank’s own sign-in — BankID and the like — runs inside Peak. The application’s key stays in this device’s Keychain and signs the requests, no Peak server sits in between, and nobody but you can read the data. Choose which accounts to follow; the first sync fetches up to thirteen months, and later ones run on their own when Finance opens. Each account shows its sync and consent status, with Reconnect when the bank’s consent runs out.

Budget, recurring payments, goals and reports

Budget sets a monthly amount per category, shows what is spent and left and whether you are on pace, can suggest amounts from your last three months, and can carry unspent money forward. Recurring finds subscriptions, bills and income from the payments themselves, flags a price rise with what it costs you a year, and notices when one stops. Goals tracks saving for something or paying something off, with the month you will get there at your current pace. Reports shows where the money went as a flow from income to spending, with each category and payee compared with the period before.

Private, and locked

Finance can require Face ID, Touch ID or your password, off until you turn it on; it locks again when you leave it or Peak goes to the background. It syncs between your devices through your own iCloud, end-to-end encrypted so that not even Apple can read it — or stays on one device, from the lock menu. Peak AI reads it only when you ask about your money, only within fifteen minutes of your last having Finance open, and while it is locked asks you to unlock it rather than reading your accounts. It never moves money.

Growth

Four tools for the work of being found, at Intermission → Tools → Growth: ASO Studio for the App Store, SEO Audit for a website, Social Studio for the posts that point at both, and Schedules for the things that should happen without you. None of them needs an account of Peak’s. They read public pages and public data on your own machine; the one key involved, your own App Store Connect key, is optional and stays on your device.

ASO Studio

A studio for being found on the App Store. Analyse any search for how popular and how contested it is, track your rank for it in every country and store you sell in, watch competitors’ ratings, updates and wording, and read reviews from every country with the complaints and requests grouped for you. Several apps can be tracked, each with its own data.

The Global view asks every App Store in the world about your app, or a competitor’s: whether it is sold there, what it is called there, its rating, price and version, and where it sits in its category’s top 200 — on a world map, or a sortable table that exports as CSV. With your App Store Connect key it also shows real downloads, re-downloads, updates and proceeds per country and per day, compared with the period before.

The listing

Holds your listing — name, subtitle, keywords, promotional text, description, What’s New and review notes — with Apple’s own character limit counted against each field as you write it. Most people meet those limits for the first time in App Store Connect’s form, after the writing is done, when the description is 4,180 characters and something has to go. Writing to a budget is a different job from cutting to one, and it is the same job every release.

There is a separate draft per platform, because App Store Connect keeps a separate listing per platform and the iOS and Mac versions of the same release are rarely identical. A draft also belongs to the language it was written or pulled in, and Peak refuses to push it into another language’s listing — the English text never lands in the Norwegian one.

The findings are of two kinds: what Apple will refuse, and what is being paid for twice. The store indexes the name, the subtitle and the keyword field together, so a word already in your name is already ranked for — repeating it spends part of a hundred characters on nothing. A space after a comma costs a character and buys nothing, because Apple splits on the comma alone.

Without a key, nothing here talks to Apple and nothing is sent anywhere. With your own App Store Connect key, Pull reads the live listing and Push writes your changes to the version being prepared. Peak AI can draft and edit the text, but it never sends a listing to Apple — that is a button you press.

SEO Audit

One screen with an address and two buttons. Crawl Site follows your site’s links, sitemap and robots.txt, up to a page limit you choose, and runs more than forty checks: broken links, redirect chains, missing or duplicate titles and descriptions, titles cut off in search results, thin or duplicate pages, missing alt text, structured data, link previews, language tags, hreflang, plain-HTTP and mixed content, and more. You get a health score out of 100 and the change since the last crawl. Each page opens with a preview of its search result and its shared-link card. Google PageSpeed adds Core Web Vitals, and Peak AI can write titles and descriptions sized to fit. Issues and pages export as CSV.

Before anything has been run, the screen lists the sites you have crawled, each with its last score, how it has moved and when it was checked; choose one to crawl it again.

Check Page reads one address: the HTML that was actually served — the same view a crawler gets, which is why a title written by JavaScript after load is reported as absent rather than found. It reports what is missing or longer than a search result will show: title, meta description, canonical, headings, link previews, language, viewport, structured data and alt text. It does not judge your writing, because it has no way to; a tool that pretends otherwise is one whose advice you learn to ignore.

Three views of the same fetch sit underneath. Metadata is what the page claims about itself. Page renders it with no cookies and nothing signed in, which is closer to what a crawler or a first-time visitor is served than your own session would be. Text is the words themselves, as something you can copy — and if nothing can be read out, that is worth knowing too, because a page whose words a reader cannot find may be one whose words a search engine cannot find either.

Social Studio

Point it at a website and Peak AI writes a brand profile you can edit, then drafts posts for Instagram, Facebook, LinkedIn, X, Threads and TikTok, each with a picture shaped for its network if you want one. Edit them, approve them, and plan them on a month calendar; you get a reminder when one is due. Posting stays with you: no social account is ever connected, and Share or Compose hands the post to the app, ready to send.

Schedules

Things Peak does on its own, such as ASO Studio’s daily rank check or a weekly re-crawl of your site, are listed in one place. Each shows when it last ran and what it found, and can notify you when it finishes.

What Peak AI will not do here. It never posts, never sends a listing to Apple, and never moves money. Everything that only reads is available to outside AI apps without allowing changes.

Send to

Anything Peak has made can be handed to anywhere else that can hold it. The menu is on every tile in the Library and on the things themselves.

  • A picture becomes a slide of its own, an element on a whiteboard, a file in a site, a picture inside a note, or the subject of a new conversation.
  • A song can be dropped onto a video timeline or into a site’s assets.
  • A site or a deck can be handed to a chat.

The list only ever offers places that can actually take what you are sending, so a song is never offered a slide the renderer cannot draw. Sending to something new makes it; sending to something that already exists adds to it without disturbing what is there.

Sites & PeakUI

Peak can build web pages and native app screens with you, preview them live, and hand the result to Xcode.

Web sites

The Site Builder opens on a gallery of finished pages rather than a blank file. They are filed by design movement — brutalism, Swiss, art deco, cyberpunk, grunge, and the rest — so you choose by how something should look rather than by what it is made of, and each card runs the real page instead of showing a picture of it. Taking one gives you an editable copy with nothing to install: no build step, no framework, and no request that leaves the machine. Most are two text files, with the textures that would usually be images drawn in CSS instead.

Or start from nothing: ask the assistant for a site and it writes real HTML, CSS, and JavaScript into a project you can read, edit, and screenshot. The preview runs in a sandboxed WKWebView that registers no script handlers, so previewed code can look at nothing outside its own page.

PeakUI

PeakUI is a validating subset of SwiftUI written in .peakui files. It has two backends from the same source:

  • An HTML renderer, so you see the screen immediately without a build
  • A verbatim export, which writes the same source into a real Xcode project unchanged

That second one is the point: what you export is the SwiftUI you wrote, not a translation of it. Constructs the preview can only approximate are flagged as you write them rather than discovered after the export.

Exporting to Xcode

A site of .peakui screens exports as a multiplatform Xcode project — one app target for macOS and iOS, folder-synchronised groups, a shared scheme, and Xcode's recommended settings already applied, so it opens ready to run rather than to "update to recommended settings".

Publishing. Sites can be pushed to a GitHub repository from inside Peak. That needs a personal access token, added when you first publish; it is stored in Keychain and sent only to api.github.com.

Projects

A project groups conversations, files, and standing instructions so the assistant starts a new chat already knowing the context. Reference material you add is available to read; notes you ask it to remember carry across sessions in that project.

Sites can be filed under a project, which keeps a build and the conversation that produced it in the same place.

A project as a tab

Every project has an address of its own, so it can be opened as a tab, pinned, and restored with the rest of them after a relaunch. The tab shows a dashboard rather than a form: what the project holds, what it is mostly made of, and the conversations, sites, notes and boards gathered in it — each one openable from there. Give a project an icon, a colour and a picture of its own; pinned to icon width, that is what tells four of them apart.

Material, not links to material

Pictures, clips, recordings and documents can be added from the media library or from the Finder, and they are kept with the project rather than pointed at — delete the original and the project still has it. Reference material has to be self-contained, because its whole job is to still be there later.

Peak AI can read what is there. Asking about a screenshot filed in a project attaches the picture rather than refusing it, so a text-only model gets a description and a model that sees images gets the image.

How AI works here

AI in Peak is optional and unbundled. There is no Peak account, no Peak inference server, and no subscription to us. You bring a provider — or run a model on your own machine, either through Peak's own engine or through Ollama — and Peak talks to it directly with your key.

Chats are tabs, so a conversation sits beside the page, note, or board it is about. Nothing about your chats is used for training, analytics, or advertising by us.

Models on your device

Peak can answer without sending anything anywhere. Turn the engine on under Settings → MLX, download a model, and pick it in any chat: the prompt, the page you are reading, and the reply all stay on the machine. It works on a Mac and on an iPhone, and there is no account, no key, and no bill.

Models come from Hugging Face and sit beside your cloud providers rather than replacing them. A conversation can use either, and switching is a menu away.

Fitting the device

Peak suggests a model your device can actually hold rather than the largest one that exists, and refuses to load one that will not fit instead of letting the app be killed part-way through an answer. On a phone that means a small model that starts; on a Mac, a larger one worth using.

Tools, deliberately narrowed

A local model is offered a short list of tools rather than all of Peak's, because reading every tool description costs a small model more than the work usually does. It is told that its list is short, so it says plainly when something is out of reach instead of describing work it has not done. Change the set under Settings → Tools → Skills — the Minimal skill is the default for this.

Apple Intelligence

On a Mac or iPhone running the latest system with Apple Intelligence switched on, Apple's own model appears in the model menu beside Peak's. There is no download and no key, and nothing leaves the device. It can use Peak’s tools as well as answer — searching the web, reading a page, browsing, and looking through your library and working files — with each step shown in the trace as it is for any other model. It is given a deliberately short list, for the same reason the local models above are: it is the smallest model Peak offers, and a set it can hold is worth more than one it cannot read. Where the system cannot run it, the entry is absent rather than greyed out.

It also holds far less at once than a cloud model does — a few thousand tokens for the instructions, the tool descriptions, the conversation and every result together. Peak budgets all of it and cuts what will not fit, saying where it cut rather than quietly dropping the middle. Expect shorter answers, and one search rather than five. That is the trade for a model that needs no key, no account and no network.

Borrowing a model from a Mac nearby

A phone or iPad can run a model that is sitting on your Mac, without downloading it. On the machine holding the weights, switch on Let Peers Use My Models under Settings › MLX. Its models then appear on your other devices in the model menu under Nearby Mac, named after the machine they live on. Pick one and the reply streams back as it is written.

This is what makes a small device useful rather than a lesser one. A 4 GB iPhone holds a model of a few hundred megabytes; the Mac beside it holds one many times larger, and now the phone can ask it. The prompt and the reply travel over the same encrypted Peak Mesh link as everything else — no account, no cloud relay, and nothing that leaves the room.

The Mac answers one request at a time, and says so while you wait rather than appearing to hang: two models loading at once is what a machine runs out of memory doing. Nothing is shared until you switch it on, and switching it off takes effect on the next request rather than needing a restart.

Other apps can use it too

While the engine is running, Peak serves an OpenAI-compatible endpoint at http://127.0.0.1:52424/v1 that any compatible client can point at. It is bound to the loopback interface, so nothing on the network can reach it, and every request needs a bearer token that exists only on this device.

On a Mac, the menu bar shows whether the engine is running and which model it holds, and will copy the address and the token for pasting elsewhere.

The engine is off until you turn it on, and the endpoint exists only while it is running. Turning the engine off closes the port.

Providers & keys

Add keys under Settings → API. Each row has a field, a link to where that provider issues keys, and a Test button that asks the provider for its model list — a real request, because a revoked key looks exactly like a valid one until something is sent.

OpenRouter also has a Sign in button, which saves making a key and bringing it back. It opens a Safari-backed window, so a saved password or passkey is already there; Peak receives a key scoped to that account and never sees the password behind it.

ProviderWhat it gets you
OpenRouterOne key for models from every vendor, and the only route for generating images, video, music, and speech.
OpenAIGPT models directly from OpenAI.
OpenCodeA curated set of coding models on one subscription, including Claude, GPT, and Gemini.
xAI GrokGrok models directly from xAI.
Google GeminiGemini through Google's OpenAI-compatible endpoint.
Moonshot KimiKimi models on Moonshot's pay-as-you-go platform. Keys start sk-.
Kimi CodeKimi on the subscription plan from kimi.com. Keys start sk-kimi- and use a different endpoint.
Ollama CloudOpen models on Ollama's servers — same names, no local download.
OllamaModels on this Mac. No key, nothing leaves the device.

Two things worth knowing

The model menu shows what your keys can reach. Providers you have not configured are hidden rather than offered and then failing. With no keys at all the full list returns, led by a line telling you why none of it will answer.

Model lists are asked for, not remembered. Any provider with a models endpoint is queried at launch and its current roster merged in. Names change faster than app releases, and a hardcoded list is wrong within weeks. A provider that answers is believed in both directions, so a model it has retired disappears rather than lingering until it fails.

“Allow models hosted in China” is about hosting, not weights. A model running on your own device is unaffected by it, whatever its weights were trained by — the switch governs where a request is sent, and an on-device model sends nothing.

Generation is OpenRouter's, whoever is answering. Image, video, music, and speech run through OpenRouter's extension to the chat API — no other provider offers an equivalent. Without an OpenRouter key those tools are not supplied to the model at all, and Peak says so rather than letting it describe a picture it never made.

Local models

There are now four ways to answer without a cloud provider: Peak's own on-device engine, a model borrowed from a Mac over Peak Mesh, Apple Intelligence, and Ollama. The first two are covered in Models on your device; Ollama is below.

Peak's own models and Apple's appear in the same model menu as your cloud providers, and need no key. Peak Local also appears under Settings → API as an embedding source, for indexing your library without uploading it.

Peak discovers Ollama models from your machine and lists them under On this Mac. Tool support comes from what the daemon reports about each model rather than from guessing at the tag, because a tools request aimed at a model whose template cannot take them fails the plain chat too. If you start Ollama after Peak, use Refresh local models at the bottom of the model menu.

What the agent can do

When a model supports tool calling, Peak supplies it with a set of capabilities. Everything here is governed by Settings → Tools, which is the ceiling — nothing can widen it.

Research

  • Web search and a hidden browser. The agent can search, navigate, click, fill fields, scroll, extract page text, and take screenshots in a background viewport that never touches your tabs.
  • Page media. It can list the images and video a page actually displays — including srcset, <picture>, CSS backgrounds, and Open Graph tags — and reuse one directly in a site.
  • Public repositories. It can list a GitHub repository’s file tree, read individual files, and search across them. Nothing is cloned; files are fetched one at a time and held in memory for that conversation only.
  • And propose a change to one. A file can be taken out as a working file, edited in whatever language it happens to be written in, and put back as a pull request — always on a new branch, never on one that exists, and never merged. Peak cannot compile or test what it wrote, so the pull request is the proposal and your own checks decide. It can only write to a repository the conversation actually took a file from, so a repository named in something it merely read cannot be touched. Writing needs a GitHub token; reading needs nothing.

Your own library

  • Semantic search over your saved bookmarks, notes, and history — by meaning rather than keyword, for "that article I saved about typography". Local only; it never touches the web.
  • Media search across images you have already generated or attached, so it reuses what exists instead of making a fourth near-identical mountain.

Building

  • Create sites, write and edit files, read them back, search within them, and diagnose a page by actually running it
  • Screenshot a page it just wrote and look at the result before claiming it works
  • Export a PeakUI site to an Xcode project
  • Extract a colour palette or a whole site's design language from an image or URL, and cut a subject out of a photo — all on-device, no key needed
Approval. Settings → Tools → Require approval before actions holds requested changes in the AI inspector until you accept them. On by default, and worth leaving on while you get a feel for how a given model behaves.

Skills

A skill is a reusable capability definition: instructions, a tool policy, knowledge, and templates. It is deliberately data, never code — a skill folder is a document, and importing one is importing a document, not installing software.

That has a consequence worth stating plainly: a skill's tool policy can only ever narrow what you already permit in Settings. There is no direction in which a skill can grant itself something you turned off.

Built-in skillWhat it does
Site BuilderMulti-page sites with real images and no placeholder text.
Video StudioCuts video on a timeline: rows that overlap, titles, and generated shots that continue the last one.
Slide DesignDecks and animations with one palette, one axis, and shapes that hold text rather than decorate it — checked by looking at them.
DiagramsFlowcharts, sequences, ER, Sankey, Gantt and thirty more, as self-contained HTML.
Scroll WorldScroll-scrubbed video pages: generated scenes, seamless camera moves, no cuts.
Long TakeLong generated films: frame-chained clips, a beat sheet, and a soundtrack.
Deep ResearchReads several independent sources, then answers with what they actually support.
TerseStrips filler. Same substance, far fewer words.
NarratorTurns an explanation into narrated video — script, voice, and soundtrack.
MinimalA handful of tools rather than all of them. The sensible default for a small or on-device model.
Visual BrowserWorks the tab you are actually looking at, rather than the hidden one Peak researches with. Needs Workspace AI and its browser permissions turned on.

The catalogue is under Settings → Tools, and beside the persona in a conversation's own settings. It shows each skill's full instruction text before you enable it, its estimated token cost per message, and — for skills built on generation tools — a warning that they need an OpenRouter key to do anything.

Generating media

With an OpenRouter key, the assistant can produce images, video, music, and speech as part of a conversation, and place them into notes, sites, and videos. Pick the model for each kind under Session Settings → Generation Models; those are shared across every chat, unlike the conversation model.

  • Images — from a prompt, or from a source image you attach when you want an edit rather than a new picture
  • Video — a slow cloud job measured in minutes, with a spend ceiling per conversation
  • Rendered video — diagrams, plots, equations, and slide-style explainers, rendered on-device and instantly, with type that stays sharp
  • Music and speech — tracks and narration, mergeable onto a video

Generated files are named from their content rather than a timestamp, so the gallery stays searchable, and are reachable by filename in later turns of the same conversation.

Answers that draw and run

Answers from Peak AI can draw and run as well as read. All of it is drawn and run on your device, offline; nothing is downloaded to do it.

Maths

Equations written in LaTeX — $…$ in a sentence, $$…$$ on a line of their own — are typeset: fractions, roots, matrices, aligned steps, boxes and labelled arrows, in the colour of the text around them.

Diagrams, charts and plots

A mermaid block becomes a flowchart, mind map, sequence, state or class diagram, timeline or Gantt chart, with Diagram and Code to switch between and Open as Site to take it further. A chart block (Chart.js-style JSON, or a CSV with a type line) becomes a bar, line, area, scatter or pie chart, and a plot block of y = … lines becomes a plot of those functions. Ask for any of them in plain words; Peak AI knows how to write them.

Python

Peak AI can run Python 3 — with numpy, pandas and matplotlib — to calculate, analyse a file you attach, or draw a chart, and shows the result and any chart in its answer. A python block in an answer has a Run button of its own, and never runs until you press it. Python runs inside a sealed page: it has no network and cannot see your files, Peak’s data or anything else, except a file you attached and the agent passed to it. Variables carry over between runs until Peak quits, like cells in a notebook, and anything running for more than a minute is stopped. The first run takes a moment while Python loads. Every package ships inside the app.

Live previews and pictures

A tailwind or three block runs as a live preview once it is complete — offline, using the same Tailwind and three.js the Site Builder bundles — with Code beside it and Open as Site to make it a project. An html block shows the code first, with Preview a click away. Pictures and clips in an answer sit in one gallery; open one large, step through the rest with the arrow keys, zoom, copy, download, or choose Full Screen to give it the whole display. Web links in an answer open as Peak tabs, and citation numbers open the page they cite.

Sources & citations

An answer built from the web lists the pages it was built from, under the answer: title, site, and the text as it read then, each opening in a Peak tab.

Peak assembles that list from what it actually fetched, not from what the model says it read — so a source in it cannot be invented. Each one is marked as a search result or as read in full, because seeing a search engine's two-line summary and reading the article are different kinds of evidence, and an answer that leans on the first should not look like one that leans on the second.

Answers can also mark a sentence with a number that opens the matching source. A number Peak cannot match to a page it really retrieved stays as plain text rather than becoming a link.

What this does and does not promise. That a page was retrieved is a fact Peak witnessed. Which sentence a source supports is the model's judgement — which is why a citation opens the page rather than asserting anything about it.

Peak AI's invented web

A search engine over an internet that does not exist. Choose Deadnet from the search engine list and Peak AI invents a page of results, then writes each destination only when you follow it. Links lead to more invented pages, which lead to more.

A bar at the top of every page states that the whole web is fabricated, and it cannot be dismissed or removed. Generated pages cannot reach the public internet, run code, or alter that disclosure — a screenshot of an invented page is otherwise indistinguishable from a real one, which is exactly why the marking is not optional.

Invented — everything made up, nothing fetched · Grounded — looks up what is true first, invents the sources around it · Deep Search — several lookups before writing

Peak Mesh

Mesh connects nearby Apple devices for local collaboration over Apple's Network framework — discovery, chat, tab sharing, workspace sync, and game invites, with no accounts and no cloud relay in the middle.

Peer discovery · Mesh chat · Tab sharing · Shared workspace signals · Note deltas · Task board deltas · Whiteboard deltas · AI chat sync · Site Builder tab presence · Game invites · Multiplayer game state

Opt-in by category. Which kinds of workspace data participate is a set of toggles you control. Peak does not broadcast everything because mesh is on. Traffic can be secured with a shared passphrase, held in Keychain-backed storage.

Without a network at all

Mesh can run over Apple's peer-to-peer Wi-Fi, so two devices connect with no router, no hotspot, and no internet between them — a train, a field, an aeroplane. Wi-Fi has to be switched on for the radio to exist; it does not have to be joined to anything.

Reaching a device the radio cannot

Nearby discovery is a local-network broadcast and stops at the edge of the network. For a device somewhere else, a written-down address does the same job: one device shows a peak-mesh:// address, the other keeps it in a short list and dials it directly. The connection is the same encrypted one, with the same room secret; only the way the two devices find each other differs. The port can be pinned so a written-down address survives a restart, and each written-down peer shows what it is actually doing — connecting, refused, no answer, or standing by because that peer is already here another way.

No relay, and no open door by default. Peak runs no server in the middle: a written-down address is a direct connection between two machines. Reaching a device behind a home router needs that router to forward the port, which is a deliberate act. A wrong room secret is refused at the handshake and says so.

Sending a project

Sharing a Site Builder tab shares that the editor is open and which project it is. On your own devices that opens the synced copy. On someone else's, opening the tab asks your device to send the project — one project, at the moment they ask for it, and only while the tab is still shared. Send to Peer, inside a project, sends it deliberately at any time.

Beyond the app

Peak reaches the places you already are.

Send to Peak

Peak is in the share sheet of every app. Open a page in Peak, keep it as a bookmark or a note, or ask one of your bots about it. On the Mac, Peak comes forward at once; on iPhone, what you sent is waiting the next time you open Peak, and anything left unopened for a day is dropped rather than opened out of nowhere.

Peak for Safari and Peak Blocker

A Safari extension works alongside Peak Blocker. Its toolbar button opens the page in Peak, saves it as a bookmark or a note, or asks Peak AI or one of your bots about it; right-click selected text for Ask Peak AI, Translate in Peak or Save Selection as a Peak Note, and a link for Open Link in Peak. It also skips YouTube ads in Safari, and a switch in its toolbar popup turns that off. Peak Blocker is the same ad and tracker blocking as Peak’s own — its own list plus EasyList and EasyPrivacy — applied by Safari itself, so Peak never sees what you browse there. Turn both on in Safari’s Extensions settings (on iPhone, Settings → Apps → Safari → Extensions).

Widgets

Agenda shows what is next: overdue tasks, events, tasks that are due, and Apple Calendar, in three sizes and on the iPhone Lock Screen. Recent Activity lists what you did last in Peak. Quick Actions opens a new note, a new chat, search or the agenda, and starts a chat with any of your bots.

Peak in Messages

On iPhone and iPad, Peak has an app in Messages. Send puts what you were just doing into the conversation with a tap: a recent page, a note, an image, or a calendar item. Ask Peak answers a question with your model, or as one of your bots, for you to check and send; it uses your OpenRouter key. When Peak has an address someone elsewhere can reach, such as a Tailscale or VPN address, Mesh sends an invite card that opens Peak and adds your device. The room’s password is never in an invite; share it yourself.

Peak as an MCP server

On the Mac, Claude Code, Claude Desktop, Cursor and other apps that speak the Model Context Protocol can use Peak. Turn it on in Settings → Tools → MCP Server and paste the command it gives you. It is off until you do, and only apps on this Mac that hold the token can connect.

By default they can search your library and read your notes, open tabs, calendar, tasks, bookmarks and activity. With Allow changes on they can use every tool Peak AI has: add notes, bookmarks and events, draw whiteboards, fill task boards, make images, video, music, slides, animations and sites, and more. The switches under Settings → Tools apply to them as they do to Peak AI, and generating media is billed to your OpenRouter key.

Nothing can be deleted. Everything an outside app runs is recorded in a chat named after it, in AI Chats, so what it did is something you can open and read in Peak, not only in the app’s own transcript.

Arcade & focus spaces

Intermission is for the gap between two pieces of work — a couple of minutes away from the thing you are doing, without leaving the app that has all your context in it.

Games

Peak Runner · Bit Copter · Cache Breaker · Orbital Lander · Bit Artillery · Global Macro Conquest · Matrix Chess · Stack Overflow · Peak Sudoku · Summit Drive · Summit Jib · Bit Siege · Paper Trader

Several support local mesh multiplayer — invite a nearby device into a lobby and play across the room with no server involved.

Focus spaces

Box Breathing · Zen Space · Fireplace · Aquarium · Thunderstorm · Lava Lamp · Rain on Terminal · Weather Window · Peak Rising · Brownian Compilation · Vector Gallery

Local tools

Small utilities that run entirely on device. No key, no upload, no network call.

Background Remover
Cuts the subject out of a photo.
Palette Extractor
Pulls a usable colour palette from any image.
Website Design Extractor
Reads a page's typography, spacing, and colour decisions so you can build on them.
Text Extractor
Recognises and lifts text out of an image.
Image Compressor
Shrinks images before they go into a note or a site.
App Icon Generator
Produces a full icon set from one source image.

The assistant can call several of these as tools mid-conversation, which is why extracting a palette or cutting out a subject works without any provider key.

Reader mode

A button in the toolbar turns the page in front of you into a clean article — no navigation, no ads, no boilerplate — and turns it back again.

It reads the page as already loaded rather than fetching the address a second time, so pages that build themselves as you watch, and pages that needed you to be signed in, come out with their text intact. The page stays loaded underneath: media keeps playing and your place is kept. A Contents button lists the article's own headings.

Three kinds of page are handled specially: an article comes back as the article, a video comes back as its spoken transcript with timecodes, and a discussion comes back with its comment tree. The result states which path produced it, because a description is not a transcript.

Auto Edit

Drop a video or an audio file in and Peak measures the loudness of every moment, finds the pauses, and proposes an edit that removes them.

You can watch and listen to the result before anything is written, adjust how quiet counts as quiet and how much room to leave around each cut, and only then save. Nothing is uploaded: the measuring and the writing both happen on your machine. Peak AI can do the same on a file you hand it.

Infographics

An infographic in Peak is a short piece of text, and the picture is drawn from it wherever you are looking.

Ask Peak AI for a process, a timeline, or a set of figures and the answer contains a drawn picture rather than a block of code, filling in as it is written. The same document can be an element on a whiteboard — select it, resize it, recolour it, export it, edit its text, or switch its arrangement without losing what it says — or a scene in a rendered video whose items build up one at a time as you talk through them.

Steps · Zigzag · Staircase · Timeline · Chips · Cards · Figures · Bars · Ring · Pyramid · Funnel · Pros and cons · Venn · Quadrant · SWOT

Why text. A picture that is a few hundred characters reaches everyone in a Mesh room instantly and merges like a sticky note; the same picture as an image is megabytes that merge like nothing. Any arrangement Peak does not have is drawn as the nearest one it does, rather than refused.

Peak Surf

A surf companion with spots, conditions, and a travel passport of countries you have surfed.

The waves are simulated. Swell height, period, and direction are generated on your device by Peak's own model. They are a plausible simulation, not a forecast, they are labelled “Simulated” wherever they appear, and they must never be used to judge whether it is safe to enter the water.

Weather — wind, cloud, precipitation, sunrise and sunset — comes from Apple WeatherKit. Maps come from Apple Maps. Country summaries come from Wikipedia and indicators from World Bank Open Data. Open-Meteo is available if you add your own key, since their free tier is non-commercial only.

Location is requested only for features that need it, and is rounded to roughly one kilometre before anything leaves the device. The exact position is used only to draw you on your own map.

Hotkeys

ShortcutAction
Control + 1Toggle the Peak window globally (macOS)
Cmd + NNew tab
Cmd + WClose the current tab
Cmd + RRefresh the current web tab
Cmd + 1…9Switch to tab 1 through 9

Whiteboards add their own shortcuts for select, pan, draw, text, sticky notes, shapes, arrows, grouping, duplication, zoom, and delete.

Privacy & data

What is stored on your device

Browsing history · Saved sessions · Bookmarks · Activity logs · Notes and attachments · Task boards · AI chat history · Whiteboards · Sites · Workspace profiles · Dashboard layout · Mesh message history

All of it lives in Core Data, app support files, UserDefaults, and Keychain, and can sync through your own private iCloud using CloudKit. We have no access to that database.

What Peak does not do

  • No built-in analytics, advertising SDKs, or cross-app tracking in the app
  • No Peak account required, because there are no Peak servers holding your workspace
  • No cloud relay for mesh — nearby means nearby
  • No use of your chats for training

What leaves the device, and when

Only what you ask for: the websites you visit, prompts to a provider you configured, generation requests to OpenRouter, repository files you asked the assistant to read, the morning brief when you have switched it on, and Peak Surf's weather and country lookups. The weather chip is off until you turn it on, so a first launch reaches no weather service at all. Answers from an on-device model send nothing at all, and library search can be indexed on device too — see Search your library by meaning. Each is described in full in the Privacy Policy.

Deleting things

Settings → Privacy clears workspace data by category: history, sessions, chats, notes, bookmarks, task boards, whiteboards, activity, dashboard data, tags, and mesh message history. Where iCloud sync is on, clearing removes it from your synced workspace too.

Troubleshooting

“Provider rejected the request”

The named provider refused your key. Check that key in Settings → API and press Test. The most common cause is a key in the wrong row — Moonshot Kimi and Kimi Code are separate accounts on separate endpoints, and each rejects the other's key with an unhelpful “invalid authentication”. Peak flags that mismatch under the field as you paste.

“Provider key required”

The model this conversation uses belongs to a provider with no key entered. Either add one, or switch to a provider you have configured.

Generation tools are missing

They need an OpenRouter key, whichever model is answering. Without one they are not offered to the model at all — which is deliberate, so you get a clear refusal instead of a confident description of a picture that was never made.

No local models

Ollama is probably not running, or started after Peak did. Use Refresh local models at the bottom of the model menu. Peak talks to 127.0.0.1 rather than localhost, because the latter can resolve to IPv6 first while Ollama binds IPv4.

Nearby devices are not appearing

Mesh needs both devices on the same local network with local network permission granted, and the same workspace categories enabled on each. It has no cloud fallback by design — if the network cannot carry it, there is no relay to route around.

A generated Xcode project will not build

Export refuses to produce a project at all when a screen contains something it cannot faithfully export, and lists what and where. If a project did export, open the scheme and check the destination — the generated target supports both macOS and iOS, but the iOS platform has to be installed in Xcode.

Something missing or wrong here? Write to Designr.pros@gmail.com.