How yetone/magpie works
Magpie is a local model gateway and cross-agent configuration app. The main workflow is: configure a provider, choose a model for an installed agent, then let that agent send requests through the local gateway, which translates and routes them to provider accounts. Routing groups provide failover; the product also includes agent configuration, usage/session views, plugins, and image, vision, and search tools. The graph combines README-documented behavior with relationships visible in the sampled source index; unsampled subsystem links are omitted where their callers are not shown.
Main entry points: main.go CLI commands · app.go Desktop app · gateway/routing.go Request routing · provider/routing.go Provider accounts
Components 21
User interfaces
- CLI commands
internal/cli/main.go - Desktop app
internal/gui/app.go - Terminal UI
internal/tui/routing.go
Agents and configuration
- Agent config adapters
internal/agent/preview.go - Preferences
internal/settings/settings.go - Provider accounts
internal/provider/routing.go - Model catalog
internal/codexcat/codexcat.go - Profiles
internal/profile/profile.go
Gateway and routing
- Local gateway
internal/gateway/gateway.go - Request routing
internal/gateway/routing.go - Provider requests
internal/upstream/upstream.go - Gateway plugins
internal/pluginrt/pluginrt.go - MCP sign-in relay
internal/mcpauth/mcpauth.go
Tools and insights
- Image and MCP tools
internal/imagemcp/imagemcp.go - Skills library
internal/library/skills.go - Session history
internal/sessions/sessions.go - Usage records
internal/usage/gateway_sessions.go - Backup and sync
internal/davsync/davsync.go
Other components
- User
- Agent clients
- Model services
Connections 29
- User → CLI commands: runs commands
README.md - User → Desktop app: uses app
README.md - User → Terminal UI: opens TUI
README.md - Agent clients → Local gateway: sends requests
README.md - Local gateway → Request routing: dispatches requests
README.md - Request routing → Provider accounts: selects accounts
internal/gateway/routing.go - Request routing → Provider requests: forwards requests
- Provider requests → Model services: calls model API
README.md - Request routing → Gateway plugins: supports plugins
- Agent clients → Model services: uses models directly
- CLI commands → Agent config adapters: changes agent model
internal/cli/main.go - CLI commands → Preferences: loads preferences
internal/cli/main.go - CLI commands → Profiles: manages profiles
internal/cli/main.go - CLI commands → Provider accounts: manages providers
internal/cli/main.go - CLI commands → Model catalog: reads catalog
internal/cli/main.go - Desktop app → Preferences: loads preferences
internal/gui/app.go - Desktop app → Agent config adapters: manages agents
internal/gui/app.go - Desktop app → Skills library: opens library
internal/gui/app.go - Terminal UI → Provider accounts: edits routing groups
internal/tui/routing.go - Model catalog → Preferences: reads preferences
internal/codexcat/codexcat.go - Request routing → Usage records: records usage
internal/gateway/routing.go - Session history → Provider accounts: uses provider data
internal/sessions/sessions.go - Image and MCP tools → Local gateway: uses gateway
internal/imagemcp/imagemcp.go - Image and MCP tools → Preferences: reads preferences
internal/imagemcp/imagemcp.go - MCP sign-in relay → Local gateway: relays MCP requests
internal/mcpauth/mcpauth.go - Desktop app → Session history: shows sessions
- CLI commands → Backup and sync: runs sync
internal/cli/main.go - Backup and sync → Provider accounts: backs up provider data
internal/davsync/davsync.go - Backup and sync → Skills library: backs up library
internal/davsync/davsync.go