iOS remote: expose host/project named permission profiles in the permissions picker
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What feature would you like to see?
When using ChatGPT on iOS to remotely control a Codex project running on a Mac, the mobile permissions picker should expose the actual named permission profiles available for that host/project, rather than only the built-in permission choices and Custom (config.toml).
For example, if the connected Mac has:
[permissions.repo-safe]
extends = ":workspace"
[permissions.repo-maintainer]
extends = ":workspace"
the iOS permissions picker should be able to show something like:
Read only
Workspace
Full access
repo-safe
repo-maintainer
Custom (config.toml)
and allow the user to select the named profile for the remote thread/turn.
Why?
Named permission profiles are useful precisely because they can encode more specific authority than the broad built-in presets.
When working remotely from iOS, selecting only:
- Read only
- Workspace / approval-based access
- Full access
- Custom
config.toml
is much less useful than selecting the same named profile that would be used locally for that project.
Custom (config.toml) is also not equivalent. It selects whatever the current/default configuration resolves to; it does not let the remote user explicitly choose among multiple named profiles.
This matters particularly for users who intentionally define several profiles, for example:
repo-readonly
repo-safe
repo-network
repo-maintainer
Remote access should not require collapsing those distinctions into one global/default config.
Proposed behavior
When a Mac/project is selected for a remote Codex session:
- Query the connected host for the permission profiles applicable to the selected project's
cwd. - Include those named profiles in the iOS permissions picker alongside the built-in presets.
- When the user selects one, pass that profile identity through when creating or continuing the remote task.
- Show the effective selected profile in the mobile UI so the user can verify which authority profile is active.
Conceptually:
iOS
↓
connected Mac + selected project
↓
permissionProfile/list(cwd = project)
↓
:read-only
:workspace
:danger-full-access
repo-safe
repo-network
repo-maintainer
↓
user selects repo-maintainer
↓
start/continue thread with permissions = "repo-maintainer"
The app-server already appears to expose the relevant permission-profile discovery machinery, so this seems primarily like remote-client discovery/state/UI plumbing rather than requiring a new permissions model.
Expected behavior
If a project has named permission profiles, I should be able to select one of those profiles directly from ChatGPT iOS while remotely controlling that project.
The selection should be project-aware and should preserve the named profile identity rather than reducing it to a generic built-in permission mode.
Current behavior
The iOS remote permissions UI exposes broad presets / Custom (config.toml), but does not expose the individual named permission profiles available on the connected host/project.
Related issues
- #24270 — iOS remote permission selection /
Custom (config.toml)behavior - #31012 — named permissions/approval presets in the permissions UI
- #38337 — Desktop displaying named permission-profile state
- #41410 — project-aware
permissionProfile/list/ named-profile selection plumbing
This request is narrower than those: it is specifically about making the connected host/project's named permission profiles first-class selectable options in the ChatGPT iOS remote permissions picker.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the app-server's existing permission-profile discovery machinery and the project-aware permissionProfile/list flow referenced in the issue, then review related issue #41410. Trace how a connected host and project are represented through remote task creation or continuation. Done means named host/project profiles appear in the iOS picker, retain their identity when selected, and show the effective profile in the UI.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, rust
- Domain
- api, mobile
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100