Documentation
¶
Overview ¶
Package appdir decides where magpie keeps its own files: the one place every other package asks (#508).
Installed, that is ~/.config/magpie ($XDG_CONFIG_HOME/magpie) for what magpie keeps and ~/.cache/magpie ($XDG_CACHE_HOME/magpie) for what it can fetch again, as it always was. Portable, when a folder named "data" (or a file named ".portable") sits beside magpie, everything magpie keeps goes into that data folder, its caches into data/cache and the Windows webview's profile into data/webview2 (no Start-menu shortcut or App Paths entry is made either), and nothing of magpie's own is written to the user's profile, the way VS Code's portable mode works. "Beside magpie" is the folder holding the executable, with links followed; for a Mac app it is the folder holding Magpie.app (a file put inside the bundle would break its signature), and for an AppImage the folder holding the .AppImage file, not the folder it is mounted at while it runs.
What isn't magpie's own stays where its owner reads it: the agents' configs (~/.claude, ~/.codex…), the sign-ins they keep in the system keychain, the folders the OS reads for autostart and link handling, and temporary folders.
The decision is made once, from the executable as it was when magpie started: an update moving the running copy aside (into .magpie-update on a Mac, to magpie.exe.old on Windows) leaves it running from somewhere else, and its files must not move with it.
Index ¶
Constants ¶
const ( // DataName is the folder beside magpie that makes it portable and // holds its files. DataName = "data" // MarkerName is a file beside magpie that makes it portable too, its // files then going into a data folder made beside it. MarkerName = ".portable" )
Variables ¶
This section is empty.
Functions ¶
func Beside ¶
Beside is the folder a portable magpie run from exe keeps its data folder in: the executable's own, the one holding the .app on a Mac, the one holding the .AppImage on Linux.
func Cache ¶
func Cache() string
Cache is the folder for what magpie can fetch again (the models.dev catalog, exchange rates, market lists).
func Config ¶
func Config() string
Config is the folder magpie keeps its settings, providers, usage and the rest of its own state in.
func Portable ¶
func Portable() string
Portable is the data folder magpie keeps everything in, or "" when it isn't portable.
func SystemCache ¶
SystemCache is the cache folder the OS names for magpie (~/Library/Caches/magpie on a Mac, %LocalAppData%\magpie on Windows), which a few caches have always used; portable, it is Cache.
func UseExecutable ¶
func UseExecutable(exe string)
UseExecutable decides again as if magpie ran from exe ("" for an installed magpie, whatever runs): for tests.
func WebView ¶ added in v0.1.637
func WebView() string
WebView is the folder the Windows webview (WebView2) keeps its profile in — its cache, cookies and the pages' storage — or "" for its own default. Installed, that default is %APPDATA%\<exe name>, as it always was, so nothing kept there is lost; portable, it is data\webview2, so a portable magpie leaves no magpie.exe folder in the user's AppData (#508).
Types ¶
This section is empty.