Settings

Non-messaging settings for the PwrAgent desktop app. Messaging configuration lives under each provider page — see Messaging → Providers.

Everything below is reachable from Settings in the desktop app. The left-nav panes, in the order the app lists them:

Pane What lives there
General Appearance, Attention lens, quit confirmation, notifications, pasted-image budget, PDF analysis.
Updates Which release channel PwrAgent follows, and checking for updates.
Applications Editor and terminal discovery.
Plugins The MCP Gateway for PwrAgent-managed connections, plus the selected Codex profile’s MCP servers.
Profiles PwrAgent profile management; see Desktop → Multiple profiles.
AI Providers Every agent backend on one screen — new-thread and helper model defaults, Codex discovery and auth, plus Gemini / Grok / Kimi / Qwen.
Usage & Pricing Thread cost display, monitor-job suggestions, and spend / tool-output alerts.
Messaging Per-provider config; see Messaging → Setting up providers.
Access Control Role-based access for messaging actors and destinations.
Git git, gh, and glab discovery, background PR status, PR automation.
Federation Connecting this profile to PwrAgent on your other machines.
Worktrees Where managed worktrees get stored.
Thread Management Copy or move Codex threads between Codex profiles.
Archived Threads Automatic archiving, and restoring threads you archived.
Experimental Opt-in features that are still in flux.
Troubleshooting Developer Mode, DevTools, protocol capture, CPU and heap monitoring.
About Build info, the in-app changelog, and license attribution.

There is no separate “Models” pane. Codex discovery, Codex auth profiles, and the ACP agents all live under AI Providers.

General

Desktop-wide defaults that don’t fit anywhere more specific:

Update controls have their own pane now — see Updates. Developer Mode moved to Troubleshooting.

Settings, General. The Appearance section sets Theme (System, Dark or Light, here Dark), Info density (Mission control or Compact), and Sidebar and Transcript text size on an XS to XL scale, both at M. Below it, the Attention lens section has Move a thread to the top when its turn finishes switched on.
Settings → General. Appearance comes first: theme, info density, and separate text sizes for the sidebar and the transcript.

Pasted images — patch budget

When you paste a large image into the composer (a screenshot, a diagram, a photo from your clipboard), PwrAgent resizes it before forwarding to the model so it costs a predictable amount of context. Images are converted into model-token-friendly 32×32 pixel patches; this setting caps the patch count before per-model multipliers apply.

Pick the budget based on the typical fidelity you need. Most screenshots read fine at the default; bump it up when the model needs to read small text (UI labels, code snippets in screenshots, tiny CLI output). Drop it down if you regularly paste enormous images and want to keep the per-turn token cost low.

Option What it means
1024 patches Caps square images at about 1024 32px patches before model-specific multipliers.
1536 patches (default) Limits large pasted images to roughly 1536 image patches. Sensible balance for typical screenshots.
4096 patches Allows roughly a 2048×2048 square image before model-specific multipliers.
Actual size Preserves pasted image dimensions before upload.

The same patch budget affects messaging-side image attachments similarly. See Driving an agent from a messenger → Image upload profile for the messaging-side knob.

Updates

Settings → Updates decides which published build PwrAgent follows and when it installs one. (Before 1.1 these controls sat under General.)

Release channel

Follow this build lays out every published release slot as a two-by-two grid. The rows are the train: Stable, the smoke-checked line, or Beta, which builds off main. The columns are the track: Latest, or Prerelease, which is newer within its train and may not install. Each tile shows the version you’d get and links its release notes, so you can read what a slot holds before you pick it. The tile for the build you’re running carries an Installed chip.

Train Latest Prerelease
Stable Smoke-checked. The default for everyone. Release candidates for the stable line.
Beta Beta builds off main. Newest alpha off main. May not install.

Stay on Stable / Latest unless you want to test what’s coming.

Until you pick a tile, PwrAgent follows the slot your installed build came from, and the pane says so: “Following the build you installed. Pick a slot to pin it.” A stable download follows Stable / Latest, a release candidate follows Stable / Prerelease, a beta follows Beta / Latest, and an alpha follows Beta / Prerelease. Picking a tile pins that slot until you pick another.

Checking for updates

On macOS and Windows, PwrAgent checks when it starts and about once an hour after that, and downloads an update in the background. Check for Update checks right away. Once a build has downloaded, Restart to Update installs it.

PwrAgent never moves you to an older build on its own, such as when you switch from Beta back to Stable. Pick the slot, then press Check for Update. When the older build has downloaded, the button reads Restart to Switch.

Linux doesn’t update in-app. Install the newer package over the old one (the install command from Linux Install always fetches the newest Stable release); see Linux Install → Upgrade.

Application discovery

PwrAgent shells out to command-line tools you’ve already installed. Settings → Applications covers the two it opens on your behalf:

Tool Used for
Editor Opening the workspace and individual file:line jumps in your IDE / editor. macOS discovery covers VS Code, Cursor, Zed, Sublime, JetBrains’ IntelliJ IDEA (and the rest of the IntelliJ family — PyCharm, WebStorm, GoLand, RubyMine, …), Vim, Emacs. Linux discovery covers the same editors where their Linux builds register a launcher (code, cursor, zed, subl, the JetBrains shell scripts, vim, emacs, etc.).
Terminal Opening the thread’s workspace in a terminal window. macOS picks from Terminal.app, iTerm2, Ghostty, Warp, kitty, Alacritty, WezTerm, Hyper, and a few more. Linux discovers gnome-terminal, konsole, xterm, etc.

git and gh moved. They’re on the Git pane now, alongside the pull-request settings that depend on them.

If the auto-discovery picks the wrong binary or doesn’t find one, override the path here. Paths are per-tool; an explicit value beats the auto-discovered one.

Settings, Applications, titled External programs. The Editor section lists VS Code, notarized and in use. The Terminal section lists Terminal, in use, and Ghostty with a Use button. A Git section follows, showing the bundled git as available, version 2.53.0 with Git LFS 3.7.1, and its path blurred.
Settings → Applications. PwrAgent finds your editor and terminal and shows which copy each role uses; Use switches to another one it found.

Agent-backend discovery is its own thing — see AI Providers below.

Plugins

Settings → Plugins holds your MCP connections, in two groups: the ones PwrAgent manages, and the ones Codex manages.

MCP Gateway

PwrAgent-managed connections are remote MCP servers you add and authorize once, then hand to the threads you choose, Codex and ACP threads alike. PwrAgent keeps the OAuth credentials encrypted in this profile, refreshes them centrally, and gives each selected thread a local proxy instead of copying tokens into the agent process.

An agent can propose a connection, but all it can create is an inert record. A thread can’t use it until a person completes the sign-in here.

When a connection gains new tools, threads that already selected it can discover and call them without restarting, where the backend supports it. PwrAgent checks the current permissions and approvals on every call. A thread’s own selection is in the composer’s Thread options menu under MCP tools.

Codex-managed servers

These are the MCP servers configured inside the selected Codex profile. Codex holds their credentials, so PwrAgent reports them but can’t offer them to an ACP thread. The pane shows which Codex profile it’s reading and one row per configured server.

Per server: Sign in replaces expired OAuth credentials, and Remove deletes only that server’s configuration from the selected Codex profile. The pane-level Reload config button re-reads the installed MCP configuration and exposes it to loaded Codex threads on their next turn — the fix for “I added a server and the agent can’t see it.”

If you change the selected Codex profile, restart PwrAgent before managing MCP servers for the new one; the pane says so rather than writing to the wrong profile.

Profiles

PwrAgent has two profile mechanisms — PwrAgent profiles (this panel) for desktop-app state and Codex auth profiles (under AI Providers → Codex) for isolating Codex CODEX_HOME directories. Both compose; see Desktop → Multiple profiles for the full conceptual model.

The Profiles panel lets you list, create, switch between, and delete PwrAgent profiles. Each row shows the on-disk profile dir, the Codex auth profile bound to it, and which one’s active / configured to launch by default.

Settings, Profiles. The Profile list holds one profile, default, marked Active and Startup default, stored under ~/.pwragent/profiles/default, with its Codex auth set to the system default. Buttons offer Use on startup, Open and Delete, and Add profile sits at the top right.
Settings → Profiles. Add profile creates a fresh ~/.pwragent/profiles/<name>/ directory; Use on startup makes a profile the one PwrAgent opens by default.

Launches via --profile <name> (or PWRAGENT_PROFILE=<name>) still override the startup default — see Desktop → Launching a profile from the command line for the CLI launch flag.

Archived threads

Threads you archive disappear from the sidebar but stick around on disk — Settings → Archived Threads is where you go to restore them, and where PwrAgent’s automatic archiving is set.

Automatic archiving

Automatically archive threads is on by default. Pinned threads, Agent threads, active chats, and other protected work are always kept. Pick one of two rules:

A sweep runs about once an hour; Last sweep shows what it did and when the next one is due, and changing the policy applies right away. Turn the switch off and sweeps do nothing.

Archived threads are never deleted unless you ask. Permanently delete expired archives is off by default; turning it on deletes archived conversations, and their recovery snapshots, after Keep archives for days, measured from archival. Restored and protected threads don’t expire. Deletion can’t be undone, and for ACP providers it removes PwrAgent’s copy only; the provider may keep its own history.

Restoring threads

Threads are grouped by project folder. Within each project, archived rows sort by most-recently-archived first, showing up to 20 threads per project to keep the list scannable, and the filter searches by title, thread ID, branch, or project. Each row carries the thread’s title, the branch it last lived on, the date it was archived, and a Restore button that puts the thread back in the active list, in place (back to whichever workspace — Local or Worktree — it was in when it was archived).

The grouping is resilient to older corrupted managed-worktree rows — paths like ~/.codex/worktrees/<id>/PwrSnap collapse back under the PwrSnap project header instead of fragmenting one section per worktree id.

The list is scoped to the active PwrAgent profile. Switching profiles (Settings → Profiles, or the Profiles app menu) shows only that profile’s archived threads.

Large profiles also get an occasional Optimize storage offer at startup (at most once a day, for profiles using 100 MiB or more). It clears old tool and output inspection history for archived threads and compacts the database; threads, settings, drafts, and usage totals are kept. Choose Optimize or Not now.

Thread Management

Settings → Thread Management moves Codex threads between Codex auth profiles — the escape hatch for “I started this in the wrong profile” or for splitting a shared profile into work / personal.

Pick the source Codex profile, select threads, and Copy or Move them into the target profile. Transfers are validated by replaying the thread’s history into the target before anything is removed from the source, and archived threads are safeguarded along the way. After a move, the thread shows up in the target profile’s list the next time you’re running under it.

Worktrees

PwrAgent stores managed worktrees outside of your repo so they don’t clutter your working checkout. The default storage location is ~/.pwragent/worktrees/.

You can change the location in Settings → Worktrees → Worktree storage location. Pick a path on the same filesystem as your repos — git worktree requires that, and putting the storage on a different volume will produce surprising errors at handoff.

Settings, Worktrees, titled Storage and cleanup. Where should worktrees live offers In repository or User home, with User home selected and described as outside the repository under ~/.pwragent/worktrees. The Effective path row shows the resulting directory.
Settings → Worktrees. Choose whether managed worktrees live inside each repository or under ~/.pwragent/worktrees/; Effective path shows where that resolves.

When PwrAgent creates a worktree for a thread, it lands at <worktree-storage>/<hash>/<project-folder-name> where <hash> is a short timestamp-derived directory. You’ll see the full path on the thread’s status card.

AI Providers

Settings → AI Providers is the one screen for every coding agent PwrAgent can drive. Codex is the default and sits at the top; below it, one section each for the Agent Client Protocol (ACP) agents — Gemini CLI, Grok, Kimi Code CLI, and Qwen Code. See Agent backends for what each one is, what it needs installed, and what differs between them.

Settings, AI Providers. New thread defaults sets the OpenAI model to the provider-advertised default, with Fast and Ultrafast allowed, and a Refresh all providers button. Helpers sets the helper model to Automatic, running GPT-5.4-Mini. Providers lists Codex, Kimi Code CLI and Grok, each marked Discovered with a Configure link.
Settings → AI Providers. New-thread defaults and the helper model sit at the top; below them, one row per provider shows whether it was found, and Configure opens that provider's own screen.

The pane opens with two defaults cards, then the provider list; each provider has its own screen under AI Providers in the settings nav.

New thread defaults

Per-provider baselines — default model, reasoning effort, access mode, and service tier — applied to new threads and launchpads. They never override a choice already saved on an existing thread. There’s also a thread-migration tool here for moving existing threads onto a different model in bulk.

Allow Codex Fast and Ultrafast (on by default) decides whether this profile may use Codex’s faster service tiers at all. Turning it off asks first, then sets every existing Codex thread and future launchpads to Standard speed; Turn off everywhere does the same while leaving the tiers allowed.

Helpers

PwrAgent runs some model work on its own: thread titles, task monitors, Token Miser summaries, usage analysis, and automation prompts. Helper model and its reasoning setting choose the model for all of it, on Codex. It never changes the model of any thread.

Codex

PwrAgent is a client of Codex App Server — it doesn’t ship its own copy. The desktop discovers Codex from any of:

On launch, PwrAgent scans those sources, picks the newest working version it finds, and uses that as the Codex App Server backing your threads. The section shows the Codex path (blank means auto discovery), Available paths with the discovered candidates and their versions, the Auth profile picker, and a Connection test.

PwrAgent build (off by default) switches new threads to PwrAgent’s own Codex build instead: PwrAgent downloads, verifies, and installs it from pwrdrvr/codex, with progress shown while it downloads. Token Miser needs it, so the switch stays on while Token Miser is on.

Keeping Codex up to date

Because PwrAgent uses the newest working install it finds, it inherits whatever updates you apply to the underlying Codex installation. That means:

Either source on its own is fine. You don’t need to keep both current; PwrAgent picks whichever is newest at launch.

Authentication

PwrAgent does not ship its own Codex authentication flow. It piggybacks on whatever Codex auth state your underlying install has.

If you need to log out and back in, or your tokens have expired and PwrAgent shows you signed out:

  1. Open Codex Desktop.
  2. Sign in / re-authenticate there.
  3. Restart PwrAgent (or wait for it to pick up the refreshed credentials).

There’s no equivalent flow in PwrAgent’s UI — by design, since duplicating the auth state would mean it could diverge from Codex Desktop’s truth.

The same principle applies to every ACP agent: you sign in to the CLI itself (/login in Kimi, /auth in Qwen, a browser round-trip for Gemini and Grok), and PwrAgent inherits it.

Testing the connection

The Connection test calls the discovered Codex App Server’s health endpoint and reports the version, the authenticated account (if any), and any error from the App Server itself. If it fails:

The ACP agents

ACP agents are third-party executables that speak a coding-agent protocol. They are not raw model providers and they do not replace the built-in Codex backend. Grok Build is the one PwrAgent ships: every installer carries a pinned copy (see Agent backends → Grok Build). The others you install yourself (see Agent backends → What each one needs installed), sign in to, then come back and click Refresh.

Each provider gets its own section, headed by its name and a status chip:

Chip Means
Discovered Found and usable.
Discovered - setup required Found, but the agent still wants you to authenticate.
Not installed Nothing found on this machine.
Detected · unavailable A matching binary exists but failed the protocol probe.
Detected · check timed out The probe timed out — retryable, hit Re-probe.
Discovery failed / Unavailable Discovery errored; the section shows the reason.
Disabled You turned the provider off.

The controls that matter day-to-day:

Kimi has one extra wrinkle: if you ever installed the retired Python kimi-cli, PwrAgent flags the Provider collision, excludes those binaries from model discovery, and offers a copyable install command for the current Kimi Code.

The access-mode boundary is intentionally narrow: PwrAgent can mediate the ACP filesystem and terminal requests that pass through the client protocol, but it cannot sandbox what a third-party agent process does internally outside those requests. Install only agents whose source and behavior you trust.

Enabled providers show up in the Provider picker on the desktop launchpad and in messaging’s new-thread flow (see Driving an agent from a messenger → New Thread starter).

Operator-facing wrinkles worth knowing:

Contributor-facing implementation details live in the app repository at docs/acp-registry-backends.md.

Usage & Pricing

Settings → Usage & Pricing controls how thread costs are shown and which usage patterns interrupt you. This is where thread pricing lives now — it graduated out of Experimental.

Tool-call tracking (the rail’s Tool calls tab and the incident explorer) is a separate Experimental toggle — see below.

Settings, Usage and pricing. Thread pricing is on, with Show thread pricing on and Price displays set to List Price rather than Codex Credits. Monitor jobs has Monitor job suggestions on. Alerts is on, with Active turn spend off.
Settings → Usage & Pricing. Pricing is an estimate from published rates and may differ from what you're billed.

Access Control

Settings → Access Control is role-based access control for messaging: which actors may invoke which capabilities against which destinations. The pane renders an Authorization graph over the capability catalog so you can see the permissions rather than infer them, and every decision is auditable.

It is fail-closed on invalid policy — a policy the app can’t parse denies rather than defaults open. Existing setups keep working unchanged until you define a policy; this is opt-in, not a migration that locks you out.

Settings, Access Control, titled Authorization graph. A notice reads Access control is not enforced, with an Enable access control button, and a warning says Codex Full Access is escalation-equivalent. The graph has three columns: Actors, empty until messaging users are authorized; five built-in roles, Admin, Power User, Power User plus Tools, Chat User and Limited Chat User; and 30 permissions such as Reply to the agent, Answer questions and Start a new thread, joined by lines from roles to the permissions they grant.
Settings → Access Control draws the policy as a graph: actors, the roles they hold, and the permissions those roles grant. Until you enable it, every authorized user keeps full access.

Git

Settings → Git owns the two CLI tools PwrAgent shells out to for repository work, plus everything pull-request-shaped:

Settings, Git, titled Repository and pull requests. The Git section shows the bundled git as available, version 2.53.0 with Git LFS 3.7.1, and lists the copies it found: Bundled, in use; the Homebrew git on PATH; and Apple's /usr/bin/git, each with a Use button, plus Choose for a manual path. Below, GitHub CLI is on with Read pull request status from GitHub switched on.
Settings → Git. PwrAgent uses its bundled Git and Git LFS unless you pick another copy; gh and glab supply pull and merge request status.

Federation

Settings → Federation connects this PwrAgent profile to PwrAgent on your other machines so they can see and drive each other’s work, over an end-to-end encrypted channel. The pane’s sections, in order: Configuration (mode and this machine’s name), Capabilities (what peers may do here: remote shells, incoming files, file pull), Encryption, Invites, Connection, Instances, Activity, Tailscale, and Cloudflare Access.

Federation is off until you configure it. The walkthrough, the capability defaults, and what you can do once machines are connected are on Federation and Star Map.

Settings, Federation, titled Instance Federation, on the Configuration section. Mode is client. Instance ID shows this profile's identifier, Instance name reads riley-macbook, and Instance icon is Sun. Short name has none yet, with a Rename button, and Purpose notes is empty.
Settings → Federation → Configuration: the mode, and the name and icon other machines see for this one.

Experimental

Features that may change shape or be removed without notice. Most are off by default; the two exceptions are marked. The panel currently hosts:

PwrAgent-managed code review isn’t a toggle here any more. You pick where each review runs in the review composer — see Desktop → /review.

And a Soon to be discontinued group for features being phased out:

Settings, Experimental. Codex Tool Discovery is on, with Load PwrAgent tools on demand switched on. Token Miser is off: Make Token Miser available is off, Enable on threads by default is on, and Focused summaries and Review hidden polling loops are off.
Settings → Experimental. Features here don't carry stability guarantees and may change shape between releases.

Features cycle through this panel before promotion — thread pricing graduated to its own Usage & Pricing pane this way.

Troubleshooting

Settings → Troubleshooting is the diagnostics drawer:

See also