appdir

package
v0.1.708 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 3, 2026 License: MIT Imports: 5 Imported by: 0

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

View Source
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

func Beside(exe string) string

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 Resolve

func Resolve(exe string) string

Resolve is the data folder of a magpie run from exe, or "" when it isn't portable.

func SystemCache

func SystemCache() (string, error)

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL