2026-09-26 23:02:05 +08:00
..
2026-09-26 01:38:37 +08:00
2026-09-26 22:25:28 +08:00
sync: magpie's setup kept the same on every computer through WebDAV (坚果云, Nextcloud, a NAS…) — Settings has Sync and backup: the providers with their keys, groups and icons, the settings, the profiles and each agent's models go to the server as one file sealed with a passphrase, so the server never sees them; the magpie serving the gateway looks every three minutes, sends what changed here and brings in what changed elsewhere, a removal too; a part changed on both sides goes to the newer one, and the copy it replaced is kept in the sync folder with a note saying what was replaced; the proxy and the window size stay each computer's own, and a computer set not to send keys never strips them from the server; Export and Import carry the same file by hand (#28)
2026-09-25 19:52:37 +08:00
2026-09-26 18:41:01 +08:00
2026-09-26 18:41:01 +08:00
2026-09-24 14:10:53 +08:00
windows: the desktop app no longer opens a console window for every command it runs (#54) — it is linked as a GUI program and has no console, so each console CLI it started (devin auth status and models list, devin acp for every Devin turn, claude, codex, cursor-agent and grok probes and runs, grok login) was given a new console by Windows, and a Windows Terminal window with it, some every few seconds while the app sat idle. Every command magpie runs is now made through internal/proc, which starts it with CREATE_NO_WINDOW when magpie has no console of its own: the child gets a console without a window, and its output, which magpie always pipes back, arrives as before. A magpie run in a terminal (magpie serve, the TUI, the desktop app started from one with a command) has one, and its children share it as they did, so Ctrl+C there still reaches them. The relaunch after an update keeps its DETACHED_PROCESS, added to rather than replacing the flags it was made with, and a test fails on any command made with os/exec directly, so a new one can't bring the windows back
2026-09-25 14:04:44 +08:00
2026-09-25 05:01:18 +08:00
2026-09-26 16:02:29 +08:00
2026-09-26 00:26:41 +08:00
2026-09-26 00:26:41 +08:00
2026-09-26 21:32:42 +08:00
2026-09-26 21:32:42 +08:00
2026-09-26 23:02:05 +08:00
providers: smart routing, a Copilot subscription signed in from magpie, and import by app in tabs — Smart, now the default, keeps the first key or account while it has quota to spare and moves to the one with the most left as it runs low; one out of credit sits out half an hour, one out of quota until it says it resets, one rate limited as long as the vendor asks, and one failing a minute, longer each time; Copilot gets a tile of its own that signs in with GitHub's device code (the code shown in magpie), several accounts beside the editors' own; Import from other apps shows a tab per app it reads, each with how many providers it has to bring over
2026-09-24 19:41:34 +08:00
providers: smart routing, a Copilot subscription signed in from magpie, and import by app in tabs — Smart, now the default, keeps the first key or account while it has quota to spare and moves to the one with the most left as it runs low; one out of credit sits out half an hour, one out of quota until it says it resets, one rate limited as long as the vendor asks, and one failing a minute, longer each time; Copilot gets a tile of its own that signs in with GitHub's device code (the code shown in magpie), several accounts beside the editors' own; Import from other apps shows a tab per app it reads, each with how many providers it has to bring over
2026-09-24 19:41:34 +08:00
2026-09-24 18:24:03 +08:00
windows: the desktop app no longer opens a console window for every command it runs (#54) — it is linked as a GUI program and has no console, so each console CLI it started (devin auth status and models list, devin acp for every Devin turn, claude, codex, cursor-agent and grok probes and runs, grok login) was given a new console by Windows, and a Windows Terminal window with it, some every few seconds while the app sat idle. Every command magpie runs is now made through internal/proc, which starts it with CREATE_NO_WINDOW when magpie has no console of its own: the child gets a console without a window, and its output, which magpie always pipes back, arrives as before. A magpie run in a terminal (magpie serve, the TUI, the desktop app started from one with a command) has one, and its children share it as they did, so Ctrl+C there still reaches them. The relaunch after an update keeps its DETACHED_PROCESS, added to rather than replacing the flags it was made with, and a test fails on any command made with os/exec directly, so a new one can't bring the windows back
2026-09-25 14:04:44 +08:00
providers: smart routing, a Copilot subscription signed in from magpie, and import by app in tabs — Smart, now the default, keeps the first key or account while it has quota to spare and moves to the one with the most left as it runs low; one out of credit sits out half an hour, one out of quota until it says it resets, one rate limited as long as the vendor asks, and one failing a minute, longer each time; Copilot gets a tile of its own that signs in with GitHub's device code (the code shown in magpie), several accounts beside the editors' own; Import from other apps shows a tab per app it reads, each with how many providers it has to bring over
2026-09-24 19:41:34 +08:00
2026-09-26 17:49:06 +08:00
2026-09-25 01:15:09 +08:00
windows: the desktop app no longer opens a console window for every command it runs (#54) — it is linked as a GUI program and has no console, so each console CLI it started (devin auth status and models list, devin acp for every Devin turn, claude, codex, cursor-agent and grok probes and runs, grok login) was given a new console by Windows, and a Windows Terminal window with it, some every few seconds while the app sat idle. Every command magpie runs is now made through internal/proc, which starts it with CREATE_NO_WINDOW when magpie has no console of its own: the child gets a console without a window, and its output, which magpie always pipes back, arrives as before. A magpie run in a terminal (magpie serve, the TUI, the desktop app started from one with a command) has one, and its children share it as they did, so Ctrl+C there still reaches them. The relaunch after an update keeps its DETACHED_PROCESS, added to rather than replacing the flags it was made with, and a test fails on any command made with os/exec directly, so a new one can't bring the windows back
2026-09-25 14:04:44 +08:00
2026-09-26 17:49:06 +08:00
2026-09-25 07:16:21 +08:00
provider: a subscription used through its vendor's CLI — Devin's, Cursor's, Grok's — installs that CLI when its sign-in starts, if this machine lacks it, rather than leaving the sign-in to fail or, as Devin's did, to say "signed in" and show nothing: Devin's sign-in wrote credentials.toml, but magpie sees the account only through devin auth status, so with no devin CLI no provider ever came and nothing said why. The sign-in is now "installing" while the vendor's own installer runs (curl … | bash, or its PowerShell one on Windows, with magpie's proxy), then opens the vendor's page as before; the window says what it is installing and why, can cancel it, and a failed install says the installer's last line and the command to run by hand. What counts is the CLI being there afterwards — Devin's installer ends in devin setup, whose sign-in gives up without a terminal and fails the script after it installed everything — and on Windows the PATH the installer wrote is taken up so the running app finds it. A Devin sign-in the CLI then can't see fails, where it said done with no one; the tests no longer see this machine's own devin
2026-09-25 16:30:00 +08:00
2026-09-24 14:04:42 +08:00
2026-09-25 16:51:26 +08:00
2026-09-25 15:53:33 +08:00
2026-09-25 16:51:26 +08:00
2026-09-24 19:06:46 +08:00
2026-09-25 18:33:21 +08:00
2026-09-24 17:35:36 +08:00
2026-09-24 17:49:11 +08:00
2026-09-25 18:33:21 +08:00
2026-09-25 18:33:21 +08:00
2026-09-25 15:39:56 +08:00
2026-09-26 23:01:53 +08:00
2026-09-26 13:41:17 +08:00
2026-09-26 14:14:26 +08:00
2026-09-26 11:09:13 +08:00
2026-09-26 13:41:17 +08:00
2026-09-24 17:13:03 +08:00
2026-09-24 17:13:03 +08:00
2026-09-25 09:36:42 +08:00
2026-09-25 20:11:28 +08:00
2026-09-26 01:16:27 +08:00
2026-09-25 20:11:28 +08:00
2026-09-24 17:13:03 +08:00
2026-09-24 17:13:03 +08:00
provider: a subscription used through its vendor's CLI — Devin's, Cursor's, Grok's — installs that CLI when its sign-in starts, if this machine lacks it, rather than leaving the sign-in to fail or, as Devin's did, to say "signed in" and show nothing: Devin's sign-in wrote credentials.toml, but magpie sees the account only through devin auth status, so with no devin CLI no provider ever came and nothing said why. The sign-in is now "installing" while the vendor's own installer runs (curl … | bash, or its PowerShell one on Windows, with magpie's proxy), then opens the vendor's page as before; the window says what it is installing and why, can cancel it, and a failed install says the installer's last line and the command to run by hand. What counts is the CLI being there afterwards — Devin's installer ends in devin setup, whose sign-in gives up without a terminal and fails the script after it installed everything — and on Windows the PATH the installer wrote is taken up so the running app finds it. A Devin sign-in the CLI then can't see fails, where it said done with no one; the tests no longer see this machine's own devin
2026-09-25 16:30:00 +08:00
provider: a subscription used through its vendor's CLI — Devin's, Cursor's, Grok's — installs that CLI when its sign-in starts, if this machine lacks it, rather than leaving the sign-in to fail or, as Devin's did, to say "signed in" and show nothing: Devin's sign-in wrote credentials.toml, but magpie sees the account only through devin auth status, so with no devin CLI no provider ever came and nothing said why. The sign-in is now "installing" while the vendor's own installer runs (curl … | bash, or its PowerShell one on Windows, with magpie's proxy), then opens the vendor's page as before; the window says what it is installing and why, can cancel it, and a failed install says the installer's last line and the command to run by hand. What counts is the CLI being there afterwards — Devin's installer ends in devin setup, whose sign-in gives up without a terminal and fails the script after it installed everything — and on Windows the PATH the installer wrote is taken up so the running app finds it. A Devin sign-in the CLI then can't see fails, where it said done with no one; the tests no longer see this machine's own devin
2026-09-25 16:30:00 +08:00
2026-09-26 14:22:47 +08:00
2026-09-25 18:26:50 +08:00
2026-09-25 19:22:37 +08:00
2026-09-25 19:22:37 +08:00
2026-09-24 14:54:56 +08:00
2026-09-24 14:54:56 +08:00
2026-09-26 21:32:42 +08:00
2026-09-25 01:57:27 +08:00
provider(zcode): a ZCode subscription — Z.ai's GLM Coding Plan, as ZCode uses it: ZCode's own account is read from its credential store (~/.zcode/v2/credentials.json, decrypted as ZCode does, never written), and more are added from magpie with ZCode's own sign-in (zcode.z.ai's polling flow, then the account's zcode-api-key, made if missing), kept in logins.json beside it; requests go to the plan's Anthropic endpoint with the key, the models are ZCode's coding-plan list (GLM-5.3, -Flash, 5.2, 5-Turbo), and usage shows the five-hour and weekly credits. A phone sign-in is named by its number
2026-09-26 01:37:01 +08:00
2026-09-24 13:55:25 +08:00
2026-09-26 22:25:28 +08:00
2026-09-25 18:05:37 +08:00
2026-09-26 01:06:36 +08:00
2026-09-26 17:49:06 +08:00
2026-09-25 22:16:11 +08:00
2026-09-25 22:27:18 +08:00
2026-09-25 22:27:18 +08:00
2026-09-25 19:00:10 +08:00
2026-09-25 09:36:42 +08:00
providers: a provider's id can change — its editor has an ID field (magpie provider set <id> id=<new> in the CLI), and renaming it moves what named it by the old one: the agents on its models (each spelled its own way, recorded as magpie's), the routing groups' members, rules and classifier, other providers' fallbacks, which agents are shown it, and the vendor's fetched list. The old id stays with it, so an agent still running on the old config reaches it, a profile saved before applies to the new id, and its usage so far is counted under the new one. Asked on Discord
2026-09-26 20:22:30 +08:00
2026-09-26 22:22:30 +08:00
2026-09-26 22:22:18 +08:00
providers: a provider's id can change — its editor has an ID field (magpie provider set <id> id=<new> in the CLI), and renaming it moves what named it by the old one: the agents on its models (each spelled its own way, recorded as magpie's), the routing groups' members, rules and classifier, other providers' fallbacks, which agents are shown it, and the vendor's fetched list. The old id stays with it, so an agent still running on the old config reaches it, a profile saved before applies to the new id, and its usage so far is counted under the new one. Asked on Discord
2026-09-26 20:22:30 +08:00
providers: a provider's id can change — its editor has an ID field (magpie provider set <id> id=<new> in the CLI), and renaming it moves what named it by the old one: the agents on its models (each spelled its own way, recorded as magpie's), the routing groups' members, rules and classifier, other providers' fallbacks, which agents are shown it, and the vendor's fetched list. The old id stays with it, so an agent still running on the old config reaches it, a profile saved before applies to the new id, and its usage so far is counted under the new one. Asked on Discord
2026-09-26 20:22:30 +08:00
2026-09-25 01:57:27 +08:00
gateway(routing groups, affinity) + gui(routing): routing groups — several models, from one provider or many, that an agent picks as one (group/<id>), routed over all their members' keys and accounts together, smart, in order, in turn or least used first; a model more than one provider serves is a group magpie finds on its own, and becomes the user's once changed. Affinity keeps a conversation with the key or account that answered it — for the session, within a turn, never, or by default while what the vendor read from its cache is worth keeping and not yet cold — so the prompt cache holds; in turn now spreads turns rather than requests, a turn's tool results staying where it began. The Routing view shows each agent's requests in its own colour, the magpie flying them through the gateway's box rather than jumping across it, groups and why a conversation stayed or moved; and a Hide emails switch blurs the email addresses on the page, for a screenshot to share
2026-09-25 04:07:40 +08:00
provider(zcode): a ZCode subscription — Z.ai's GLM Coding Plan, as ZCode uses it: ZCode's own account is read from its credential store (~/.zcode/v2/credentials.json, decrypted as ZCode does, never written), and more are added from magpie with ZCode's own sign-in (zcode.z.ai's polling flow, then the account's zcode-api-key, made if missing), kept in logins.json beside it; requests go to the plan's Anthropic endpoint with the key, the models are ZCode's coding-plan list (GLM-5.3, -Flash, 5.2, 5-Turbo), and usage shows the five-hour and weekly credits. A phone sign-in is named by its number
2026-09-26 01:37:01 +08:00
2026-09-26 14:32:48 +08:00
2026-09-24 23:10:02 +08:00
2026-09-25 14:00:14 +08:00
2026-09-24 14:26:37 +08:00
provider(zcode): a ZCode subscription — Z.ai's GLM Coding Plan, as ZCode uses it: ZCode's own account is read from its credential store (~/.zcode/v2/credentials.json, decrypted as ZCode does, never written), and more are added from magpie with ZCode's own sign-in (zcode.z.ai's polling flow, then the account's zcode-api-key, made if missing), kept in logins.json beside it; requests go to the plan's Anthropic endpoint with the key, the models are ZCode's coding-plan list (GLM-5.3, -Flash, 5.2, 5-Turbo), and usage shows the five-hour and weekly credits. A phone sign-in is named by its number
2026-09-26 01:37:01 +08:00
2026-09-25 18:05:37 +08:00
provider(zcode): a ZCode subscription — Z.ai's GLM Coding Plan, as ZCode uses it: ZCode's own account is read from its credential store (~/.zcode/v2/credentials.json, decrypted as ZCode does, never written), and more are added from magpie with ZCode's own sign-in (zcode.z.ai's polling flow, then the account's zcode-api-key, made if missing), kept in logins.json beside it; requests go to the plan's Anthropic endpoint with the key, the models are ZCode's coding-plan list (GLM-5.3, -Flash, 5.2, 5-Turbo), and usage shows the five-hour and weekly credits. A phone sign-in is named by its number
2026-09-26 01:37:01 +08:00
2026-09-25 01:15:02 +08:00
2026-09-25 05:22:52 +08:00
2026-09-26 16:02:29 +08:00
provider(zcode): a ZCode subscription — Z.ai's GLM Coding Plan, as ZCode uses it: ZCode's own account is read from its credential store (~/.zcode/v2/credentials.json, decrypted as ZCode does, never written), and more are added from magpie with ZCode's own sign-in (zcode.z.ai's polling flow, then the account's zcode-api-key, made if missing), kept in logins.json beside it; requests go to the plan's Anthropic endpoint with the key, the models are ZCode's coding-plan list (GLM-5.3, -Flash, 5.2, 5-Turbo), and usage shows the five-hour and weekly credits. A phone sign-in is named by its number
2026-09-26 01:37:01 +08:00
provider(zcode): a ZCode subscription — Z.ai's GLM Coding Plan, as ZCode uses it: ZCode's own account is read from its credential store (~/.zcode/v2/credentials.json, decrypted as ZCode does, never written), and more are added from magpie with ZCode's own sign-in (zcode.z.ai's polling flow, then the account's zcode-api-key, made if missing), kept in logins.json beside it; requests go to the plan's Anthropic endpoint with the key, the models are ZCode's coding-plan list (GLM-5.3, -Flash, 5.2, 5-Turbo), and usage shows the five-hour and weekly credits. A phone sign-in is named by its number
2026-09-26 01:37:01 +08:00