smallnest
03a01a548d
agent: MiMo Code — Xiaomi's fork of OpenCode, sharing its config shape ( #98 )
...
* agent: MiMo Code — a terminal coding assistant that is Xiaomi's fork of OpenCode, whose config keeps OpenCode's shape: its own mimocode.json(c) under ~/.config/mimocode, its auth beside it, and a magpie provider block with npm/@ai-sdk/openai-compatible, model and small_model fields. opencode() becomes openCodeLike() for the two to share it, and magpieProviderJSON splits shape from the catalog id (magpieProviderJSONFor), so a visibility narrowed on mimocode (magpie visible mimocode …) narrows its list and leaves OpenCode's alone. The library gives it the same instructions, MCP servers (its mcp key) and skills as OpenCode, except the shared skills go into its own skills/ folder: it reads Claude Code's skills only behind a flag, though it reads its CLAUDE.md like OpenCode, and the page says so. Its requests are told by the mimocode/ User-Agent. Checked against XiaomiMiMo/MiMo-Code
* icon: MiMo Code's own favicon, from packages/ui/src/assets/favicon — its frame with the bottom bar, in the monochrome the app masks to the text colour
2026-09-27 08:42:44 +08:00
yetone
7a3c434610
agents: Alma — magpie wires it through Alma's local API (localhost:23001, while Alma runs): choosing one of magpie's models for Alma adds a provider named magpie there (OpenAI type, the gateway's /v1, key magpie), offers magpie's models in it and makes the model Alma's default chat model, the rest of Alma's settings and its other providers left as they are; the list is kept current as magpie's catalog changes, and going back to Alma's own takes magpie's provider out. Asked on Discord
2026-09-26 19:18:51 +08:00
yetone
d4135b55e1
group: a routing group's models can be another group — group/<id> as a member, routed in its place by its own routing and rules, so Coder can be deepseek-v4-pro then Fast, a Coder rule can send a turn to group/fast and Fast's own rules pick within it; a group can't be in itself directly or through another (refused on save, left out of the picker), groups go at most 8 deep, and one can't be removed while another has it. The Routing tab shows a group in a group as a heading with its models under it, the packet going through it, and the log says what each group's rules and classifier decided
2026-09-26 13:41:17 +08:00
yetone
90ed57f077
docs: intent routing shows a real request in the Routing tab — a message asking for tests, told "writing or fixing tests" by deepseek-flash in 964 ms, goes to glm-5.3 by rule 2; light and dark, English and Chinese
2026-09-26 13:08:47 +08:00
yetone
f64d2fbaf0
intent: a reasoning classifier answered nothing now and then, and the turn after it wasn't classified — tested for real (20 coding messages, real models through magpie), deepseek-flash spent its 512 tokens thinking and answered "", and that 30 s rest skipped the next turn too; the classifier is now asked for its least reasoning (none, else its lowest level) with 2048 tokens, and an answer that isn't a number no longer rests it. DeepSeek V4 Flash, GLM-5.3 Flash and MiMo v2.6 Flash now get 20/20. The site's routing demo opens on By intent: a turn is classified once, goes to its rule's model, and its tool rounds stay there
2026-09-26 12:34:55 +08:00
yetone
d9ff79ae44
docs: Intent routing, in English and Chinese — when the classifier is asked and when not, the exact prompt and what of the message it sees, how its answer is read, what happens when it fails or is slow, the rest of the turn (held, failover, outgrown, waits, subagents), reading the trace, latency/cost/privacy, writing intents, the numbers, and a FAQ; with screenshots of the rules and the trace
2026-09-26 11:30:09 +08:00
yetone
bc720c8d87
group: a rule can be for a kind of message — intent="writing or fixing tests": as a user's turn begins, the group's classifier (any model magpie has, best a small fast one) is asked once which of the intents that may match the message is, and the turn stays with the answer through its tool rounds; it isn't asked when no intent rule could decide, the same message isn't asked about twice, and when it fails or is slow (8s) no intent matches and it rests 30s. The trace says what it was asked and said; Routing's rule editor has "asks for" and the classifier picker, and magpie group rule add … intent=… classifier=… / magpie group rule classifier from the terminal. A sub-millisecond reply no longer shows as NaN s in the trace
2026-09-26 11:09:13 +08:00
yetone
696c8e70e7
group: rules send a kind of turn to a chosen model — a group's Rules (Routing view, or magpie group rule add|rm|mv) put one of its models first for a turn that is long (tokens ≥ N), carries an image, asks for reasoning (on or at least a level) or comes from certain agents; the first that matches decides as the turn begins and the turn stays there through its tool rounds, moving only if it outgrows its model's context, the others staying behind it for failover; a subagent keeps a place of its own so a rule can send it elsewhere while its agent stays; the trace says which rule sent a turn where. Turn affinity also now sees past the system message Claude Code puts after tool results, which made each of its tool rounds look like a new turn
2026-09-26 03:53:33 +08:00
yetone
31fbf611e7
docs: what an import link's catalog gives — besides names, context sizes and reasoning levels it is the model list when the provider's /models can't be read and the prices behind the Usage page's USD estimate, and several ids may be given
2026-09-26 02:47:19 +08:00
yetone
c0cbf90eeb
agent(zcode): ZCode is an agent — its provider field puts every magpie model in ZCode's own model picker, as a provider named magpie in ~/.zcode/v2/config.json (kind anthropic, asked at the gateway's /v1/messages), kept in step with the catalog like OpenCode's list, and taken out again when cleared; its requests are known by the ZCode/ User-Agent ( #72 )
2026-09-25 23:53:59 +08:00
yetone
032bcfc8b0
provider: the Grok subscription is called Grok (SuperGrok) — the plan xAI sells, so it reads as the account it signs into; Grok Build stays the name of the agent, the grok CLI the subscription runs through
2026-09-25 18:33:21 +08:00
yetone
f7112a9e9d
agents: Grok Build — xAI's grok CLI — is an agent: its model is set in ~/.grok/config.toml ($GROK_HOME), and a model through magpie adds the catalog there as [model."magpie/…"] tables pointed at the gateway with magpie's own key, so a request never carries the user's xAI sign-in and the catalog joins Grok's own models in /model; its effort is [models] default_reasoning_effort, its requests are known by grok-shell; the Grok subscription is called Grok Build too
2026-09-25 18:26:50 +08:00
yetone
bea2cec91f
site: the Routing shot shows four agents — Claude Code, Codex, OpenCode, Crush — sending at once through three routing groups, with Kimi rate-limited and sitting out; in every shot the magpie icon lines up with what's under it, where it had kept the room the Mac window leaves for traffic lights a screenshot doesn't have; and the homepage's Providers shot ends where its list does
2026-09-25 17:21:21 +08:00
yetone
7d0069ab93
site: the import docs come in Chinese too (/docs/zh/import, with its own screenshot of the dialog and the link builder's messages in Chinese), and each page links to its other language; the start docs show what each step looks like — the Add provider sheet, the Agents window, routing groups and Usage — in light and dark, English and Chinese
2026-09-25 16:41:48 +08:00
yetone
637b2458ee
provider + gateway: Google sign-ins — Gemini CLI's and Antigravity's — are subscriptions of magpie's, so any agent can use their models ( #4 ); Gemini CLI's own login in ~/.gemini is read as it is, or an account is signed in from magpie with Google's OAuth, its token refreshed in memory, and each request goes to Code Assist wrapped as the app wraps it, with the project Code Assist set the account up with; Google now serves Gemini CLI's sign-in only to Code Assist Standard and Enterprise, which need a Cloud project, named with magpie accounts project or GOOGLE_CLOUD_PROJECT in ~/.gemini/.env and said so where the account is shown; Google may suspend an Antigravity account used outside Antigravity, so magpie says that and asks before adding one
2026-09-25 15:53:33 +08:00
yetone
2779d03caa
provider: Ollama Cloud is a preset of its own, with Ollama's icon and where to get a key (ollama.com/settings/keys) — its hosted models answer the local server's API at ollama.com with a key: chat at https://ollama.com/v1 , Anthropic's messages at https://ollama.com , and the model list from /v1/models, and models.dev's ollama-cloud names them; the import links take it too
2026-09-25 15:02:31 +08:00
yetone
ea09310872
site: the getting-started guide says outright that a model two providers serve becomes a group by itself — group/auto-<model>, over every provider serving it, the name matched however each vendor spells it, hidden with magpie group rm — which it said in passing, and someone trying magpie found it out by testing and asked for it to be written down
2026-09-25 14:48:28 +08:00
yetone
6882ceac7d
site: a getting-started guide, in English at /docs/start and in Chinese at /docs/zh/start (/docs and /docs/zh open it) — someone who runs Claude Code, Codex and Paseo every day found magpie confusing at first and the site had only the Add to magpie page for vendors; the guide says what magpie is for and how the setup goes: add the providers you have (subscriptions signed in to in magpie, a vendor's preset and its key, any compatible URL, or Import… from Claude Code and Codex), pick a model for each agent and what that writes into its config, a new session to pick it up, then routing groups when there are several accounts (the Routing view and magpie group), Usage, profiles, the commands and a short FAQ, the Chinese one in the app's own Chinese labels. The home page's Docs link and every docs page's nav and footer lead to it, and on a phone the docs nav keeps the brand, the language, the theme and Download
2026-09-25 14:18:13 +08:00
yetone
b3705cbb5a
cli: routing groups are made, changed and removed from the terminal too ( #55 ), where only the Routing view could — magpie groups lists them, yours then those magpie found (a removed one named with how to bring it back, a member no provider serves now marked so, the agents set to each); magpie group add <name> models=<m1>,<m2> routing=smart|order|rotate|usage stays=auto|session|turn|off makes one, its id taken from the name and numbered past one taken as the Routing view does; magpie group set <id> k=v… changes name, routing, stays and the models — models= the whole list in order, models+= and models-= one at a time — and changing one magpie found makes it yours; magpie group rm hides one magpie found, for magpie group restore to bring back; magpie group <id> shows one. Each saves through the same code the Routing view's does, so the file holds the same group and agents' model lists follow the change. A model is its provider/model id as magpie models lists it, or a bare model id one provider serves; one no provider serves, or several do, says which it could mean, and a routing or stays value magpie has none of says the ones it has, where the saved group would have quietly gone back to the default
2026-09-25 14:06:15 +08:00
yetone
b72985a9cc
agent: add Hermes Agent ( #49 ) — magpie adds itself to ~/.hermes/config.yaml ($HERMES_HOME) as the provider "magpie" under providers (the gateway as chat completions, the catalog as its models) and points model.provider at it, with the model in model.default; the provider and model the user had are stashed and put back when they pick one of Hermes's own or go back to the default. Hermes sends its own User-Agent only from a recent release on, so the entry sets it for the gateway's usage view
2026-09-25 09:08:08 +08:00
hanhotfox
cd0eccfa58
agent: add Devin ( #43 )
...
* agent: add Devin — model via agent.model in config.json, subscription via devin acp over ACP
* gateway: surface devin acp read errors to waiters
* providers: fix devin sign-in exchange; account editor and picker fixes
* gateway: scope the devin deny rules and copy credentials when a link can't be made
* gateway: note devin never rewrites credentials.toml during a session
2026-09-25 07:16:21 +08:00
yetone
d8ee8d1af3
community: magpie has a Discord — the site links it from the header, the footer and a card above the download, Settings has a Community row that opens it, and the README a badge and a Community section
2026-09-25 01:22:16 +08:00
yetone
41931e2895
agent: omp (oh-my-pi) — its model picked in magpie like any agent's; a model through magpie adds magpie as a keyless provider in ~/.omp/agent/models.yml with the catalog as its models, and sets config.yml's modelRoles.default to magpie/<provider>/<model>; its other roles and the rest of both files stay as they are, comments too, and default takes magpie's entry out unless another role still uses it ( #34 )
2026-09-24 22:36:15 +08:00
yetone
be1b3967f4
agent: Command Code — its model picked in magpie like any agent's; a model through magpie adds magpie as a keyless provider in ~/.commandcode/providers.json with the catalog as its models, and sets settings.json's model to magpie/<provider>/<model>; its own models stay as they are, and default takes magpie's entry out; Command Code still wants its own sign-in ( #32 )
2026-09-24 21:44:09 +08:00
yetone
34a03fb0d8
site: the smart routing demo runs on a clock — each request an hour, every account counting down to its reset; Claude Max, resetting soonest, goes first and renews with little left unused, then resets last, and Claude Pro, next to reset, takes over; the point on it is now reset-aware
2026-09-24 21:35:59 +08:00
yetone
ad1395f3bc
routing: smart routing goes by when each account's allowance resets — of the accounts with quota to spare, the one renewing soonest goes first, since what it has left is lost at the reset while one renewing later keeps; one whose reset isn't known comes after, a few minutes apart counts as the same hour so the prompt cache stays warm, and running low still keeps an account for last; the site's routing demo shows each account's reset
2026-09-24 21:29:34 +08:00
yetone
e2051a4268
site: the routing demo adds a second Claude subscription — a Claude Max and a Claude Pro side by side, the Pro rate limited and passed over for the next, beside ChatGPT, OpenRouter and Copilot
2026-09-24 21:01:22 +08:00
yetone
13a1604070
site: the smart routing demo shows real vendors — a Claude Max, a ChatGPT Pro, an OpenRouter key and a Copilot Business seat, each with its vendor's icon, and the captions name them by vendor
2026-09-24 20:50:15 +08:00
yetone
96e44c67d5
agents: DeepSeek Harness (dsh) — its model picked in magpie like any other agent's: dsh's own V4 Pro and Flash, or any model magpie serves, which puts the gateway in ~/.dsh/config.yaml with the whole catalog in dsh's /model; the TUI, dsh -p and dsh web all start on it, the user's own entries stay, one magpie replaced comes back when it's set back to default, and a DeepSeek endpoint set in dsh's settings, which dsh puts over it, is pointed out ( #27 )
2026-09-24 20:22:22 +08:00
yetone
bf78700655
site: smart routing shown working — requests travel from Claude Code through magpie to the account the strategy picks, a tab for each (smart, in order, in turn, least used first); an account running low is kept for last, one answering 429, 402 or 503 sends the request back to magpie for the next, rests as long as it should and comes back, captions say what happened, and the count of errors that reached the agent stays at 0
2026-09-24 20:11:28 +08:00
yetone
2cba789189
site: the Providers screenshot's logo lines up with the icons under it — the gap the window's traffic lights leave is gone from the crop
2026-09-24 19:56:36 +08:00
yetone
bba15a4ee6
site: smart routing on the home page — a section of its own, linked from the nav: several accounts and keys on at once, the first kept while it has quota to spare, one out of credit, out of quota or rate limited passed over until it can answer, a failing one stepping back while the next answers; beside it a card of four Claude accounts, one serving and the others resting, each saying why
2026-09-24 19:47:20 +08:00
yetone
eaf0b55de1
site: the worker adds the Web Analytics beacon to each page itself — Cloudflare's automatic injection skips responses a worker returns, and since the www redirect every page is one
2026-09-24 17:34:37 +08:00
yetone
c2a6d0bf8e
site: www.usemagpie.ai redirects to usemagpie.ai on every page — the worker now sees each request, not only /api and /download, so the static pages stopped being served twice
2026-09-24 17:33:44 +08:00
yetone
545506e875
provider: an import link can name the vendor's own icon
...
magpie://import now takes icon=<https picture>: the vendor's logo, PNG,
JPEG, GIF, WebP, ICO or SVG. It is fetched once, when the user opens the
confirm dialog — never at parse time — into magpie's icons folder, and
falls back to the catalog's logo or a plain mark when the fetch fails.
An explicit icon= wins over whatever catalog or preset gave.
The fetch is guarded on the way out: https only, at most 1 MB, the type
checked, and the host is resolved at connect time with loopback, private,
link-local and reserved addresses refused, so a name that points back at
the user's own machine (or a DNS-rebinding trick) never connects. The
page and the dialog never load a remote picture themselves.
IconURL is a carrier between parsing and that fetch only; Save drops it,
so it never reaches providers.json.
2026-09-24 17:13:03 +08:00
yetone
a6a3ffbe4b
site: a sponsor spot under the hero, with 鱼鱼连线 (YYLX AI Router)
2026-09-24 13:47:54 +08:00
yetone
4069e955c1
site: import links need 0.1.8
2026-09-24 12:21:32 +08:00
yetone
3d4d4b9c2b
site: Add to magpie docs, the /import landing page and badges
...
usemagpie.ai/docs/import explains import links, with a link builder and
buttons to copy; usemagpie.ai/import#… turns the fragment into a
magpie:// link and offers the download. install.sh registers the scheme
on Linux.
2026-09-24 12:17:47 +08:00
yetone
489c9fa431
site: screenshots keep their shape on narrow screens
2026-09-24 03:59:12 +08:00
yetone
01e1971a7b
site: downloads for Windows and Linux
...
The download button follows the visitor's OS, a platform list sits under
the final call to action, /download/{windows,linux}[-arm64] redirect to
the builds, and install.sh installs the Linux desktop app, with a menu
entry, when WebKitGTK 4.1 is present.
2026-09-24 03:22:02 +08:00
yetone
b98af9acc6
site: the GitHub link no longer switches the theme
...
It shares the .theme style with the theme button, so the click handler
went on both. The handler and the tooltip now bind to button.theme only.
2026-09-24 03:04:09 +08:00
yetone
7198ba218d
Revert "site: reshoot the panel, picker and providers on the current build"
...
This reverts commit 82e25aa2d7 .
2026-09-24 02:56:46 +08:00
yetone
82e25aa2d7
site: reshoot the panel, picker and providers on the current build
...
The screenshots still showed the row's + and an older control column. New
shots, dark and light, off a throwaway demo config (the same DeepSeek/Kimi/
GLM/Qwen/MiniMax/OpenRouter/Anthropic/Gemini set). The panel is a hair taller
now, so its height goes 470 -> 476.
2026-09-24 02:54:41 +08:00
yetone
912b3a79ce
site: the ChatGPT plan is a provider too
2026-09-24 02:33:19 +08:00
yetone
cd4f97e326
"Every agent's model": magpie is not only for coding agents
2026-09-24 02:30:23 +08:00
yetone
b3aa852326
site: back to "Every coding agent's model. One place."
2026-09-24 02:29:18 +08:00
yetone
45b25253d2
site: no purple; the gateway card and OG image stay black and white
2026-09-24 02:28:03 +08:00
yetone
4b251650b8
site: the gateway card is light in light mode
2026-09-24 02:18:17 +08:00
yetone
6c99ab01ef
Open source under MIT; the site shows third-party models in every agent
...
The site leads with what magpie is for: Codex on DeepSeek, Claude Code on
Kimi. New screenshots (Codex's picker, the panel, Providers), a diagram of
the gateway, shared subscriptions, a light/dark/system theme switch, a new
OG image, and links to the source.
2026-09-24 02:16:29 +08:00
yetone
28688e2463
site: the feed survives GitHub's API limits, from SHA256SUMS alone
2026-09-24 02:03:07 +08:00