Codex Desktop: request an authorized local bridge for project catalog and thread activation
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Summary
Codex Desktop exposes first-party dynamic tools such as codex_app.list_projects, codex_app.list_threads, and codex_app.navigate_to_codex_page to eligible model turns. A local Codex plugin/MCP application cannot call the same host capabilities directly, so it cannot build a deterministic project picker or open an exact existing Desktop thread without a model-mediated workaround.
Environment
- Windows Codex Desktop:
26.818.8289.0 - Bundled Codex CLI:
0.149.0-alpha.4.3 - Separate local plugin runtime: Codex App Server over stdio
Verified behavior
codex_app.list_projectsin a Desktop task returns real project IDs, user-facing names, roots, and host IDs.- The same root can belong to multiple distinct Desktop project IDs, so cwd/root cannot be used as project identity.
- App Server 0.149 exposes
project/listand related project methods. - A separate App Server process using the same
CODEX_HOMEcan read existing threads, butproject/listreturns an empty list and those threads haveprojectId: null. - Plugin UI
window.openai.callToolcan call the plugin's own MCP tools, but no documented API invokes first-partycodex_apphost tools. - App Server does not expose an equivalent of Desktop thread activation/navigation.
thread/resumeis not a Desktop navigation operation.
Requested capability
Please expose an authenticated local host bridge for supported Codex Desktop clients/plugins:
Read-only project catalog
desktop/project/list
Returns the same canonical Desktop project identity used by codex_app.list_projects, including at least hostId, projectId, name/label, roots, and repository status.
Activate an existing Desktop thread
desktop/thread/activate
Validates hostId, projectId, and threadId, then opens/focuses that existing task in the most recently focused Desktop window. It must not create, fork, resume, rename, archive, or send a message.
Security expectations
- Loopback or authenticated local transport only.
- Explicit host capability grant for plugins/clients.
- Project and thread identity consistency checks.
- Minimal metadata for list operations; no full history required.
- Clear unsupported/denied/not-found errors.
- No reliance on private Desktop databases or UI automation.
Why existing APIs are insufficient
Using project/import in every external App Server creates a second project registry that must be synchronized with Desktop. Asking a model turn to call codex_app for every picker refresh or navigation click is non-deterministic, consumes tokens, and mutates conversation history. Neither is a stable Desktop integration contract.
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 by comparing the existing codex_app.list_projects, project/list, thread/resume, window.openai.callTool, and project/import paths described in the issue. Trace how Desktop project and thread identities are validated and how local clients are authorized. Done means a reviewed design and implementation for read-only project listing and safe Desktop thread activation with explicit errors and capability checks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, authentication, desktop, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100