Multi-model AI for developers: fan out one prompt to every model, see where they disagree, and audit latency, tokens, and cost. Your keys, your Mac, pay once.
Polycode asks several AI models the same question at once, then hands you one synthesized answer — plus the full trace of who said what, how long it took, and what it cost.
Built for developers who want a second (and third) opinion on code, with receipts.
• One prompt, every model. Fan out to Claude, GPT, Gemini, Apple Intelligence (where available), and local endpoints in parallel; a primary model synthesizes the final reply.
• See the disagreement. Citation pills flag where models diverge, so you can judge confidence instead of trusting one black box.
• Full trace inspector. Per-model latency, input/output tokens, resolved model ID, and cost for every exchange — nothing hidden.
• Tool calls on your terms. Approve, reject, or inspect every MCP tool call before it runs.
• Your keys, your machine. Bring your own provider keys, stored in the macOS Keychain, and talk to providers directly — no proxy, no middleman.
• Local-first & private. Conversations stay on your Mac; only the requests you choose to send ever leave it.
• Project-aware. @-mention files from your project for grounded, in-context answers.
• Pay once. No subscription for the app — use the model accounts and local servers you already have.
Works with your own accounts: Claude, OpenAI (GPT), Google Gemini, Apple Intelligence where available, and any OpenAI-compatible or local endpoint.
Ratings & Reviews
This app hasn’t received enough ratings or reviews to display an overview.
Switching sessions no longer leaves the conversation blank, citations become chips while an answer streams, and the Pick models step of onboarding holds up with a roster of hundreds of models.
Highlights:
- Every session opens on its own latest content. If the session you left was scrolled down, the one you opened could show nothing until you scrolled a long way up, because it took over the previous session's scroll position. Each session now opens at its end (a short one whole, from its top) and stays there while its answers finish laying out, until you scroll. A jump to the top with the scroll bar stays where you put it. A switch also comes to rest sooner: in a session-switch benchmark the median fell from 0.8–1 s to 0.1–0.3 s.
- Streaming answers keep all their text. Coming back to a session that is still streaming, or scrolling the answer out of view and back, no longer loses parts of it. A stream in one session no longer scrolls or blanks another, and the conversation follows a turn to its end even when its answer arrives all at once, as it does when a single model uses tools.
- Citations appear as chips while the answer streams, instead of raw tags such as [custom-sakana-fugu-max] that all changed text, width and size when the answer finished. The finished answer looks the same as the last streamed frame, and a chip clicked mid-stream opens that peer's trace.
- Split on and Solo chips, the inspector's split cards and the compare sheet's spoken units keep the names of the models an answer cites as words: "minimax-m3 reports that…" where they used to read "reports that…". Tooltips and VoiceOver give the full name, and also name the models a claim is attributed to.
- The Pick models step of onboarding works with a large roster such as OpenRouter's. The title, a search field and a "models per prompt" count stay in place while the list scrolls; each provider's header shows "N of M selected"; models are grouped by vendor, Anthropic, OpenAI and Google first; and batch, free and dated-snapshot listings fold under the model they belong to. The pre-selected model is the first ordinary model in each provider's list, never a variant or OpenRouter's Auto Router.
- The inspector shows the newest turn when you are at the end of the conversation, even when that turn is shorter than the window, and its Latest control no longer stays visible doing nothing.
Security: opening a conversation that isn't in a project used to keep the previous project's scope. Sending from it gave the models that project's file tools and project context, so files from the other project could be read and sent to your providers, and it moved the conversation into that project. A conversation's models now get only its own project's tools and context, in every window. Files you attach to a message yourself are still sent.
Changed behaviour worth knowing: a conversation now changes project only when you move it, with the titlebar project menu or the project picker (⌘⇧O), which moves an open conversation at once and offers "Move to No Project". Sending a message no longer moves it. With "Automatically switch projects when opening a session" on, opening a conversation that isn't in a project switches the sidebar to No Project, so ⌘N then starts a conversation with no project. Conversations are named once, from their first completed answer, instead of being re-titled after every message, and a conversation you renamed is never renamed for you.
Also fixed: polycode://settings/… links now open Settings, and a polycode:// link no longer leaves an extra window behind; two citations side by side in a table cell no longer split the cell; and the filter fields in Settings → Providers and the mode editor now use the same search field, where a filter of only spaces shows every model instead of none.
Version 1.6.0
The developer, Anthony Izzo, indicated that the app’s privacy practices may include handling of data as described below. For more information, see the developer’s privacy policy .
Data Not Linked to You
The following data may be collected but it is not linked to your identity:
Usage Data
Diagnostics
Privacy practices may vary, for example, based on the features you use or your age. Learn More
Accessibility
The developer has not yet indicated which accessibility features this app supports. Learn More