Expose app-server over network transport for remote/mobile session attach
What feature would you like to see?
The Codex app-server already has an excellent bidirectional JSON-RPC 2.0 protocol with full session lifecycle, approval workflows, and event streaming. The TUI is reportedly being refactored to connect to remote app-server instances. The ask is to ship this: let the app-server listen on a Unix socket or TCP port so that remote clients can attach to running Codex sessions.
Something like:
# Listen on a Unix socket (ideal for SSH — no port forwarding needed)
codex serve --socket /tmp/codex.sock
# Or listen on a TCP port
codex serve --port 3284
# Attach from anywhere
codex attach /tmp/codex.sock
codex attach host:3284
Ideally speaking ACP, since Codex already supports it (via codex-acp) and ACP has broad adoption (Zed, JetBrains, GitHub Copilot CLI, Gemini CLI, Claude Code). Exposing ACP over a network socket would make Codex accessible to any ACP-compatible client — including Toad (2.1K stars) and potential mobile ACP clients — without needing tool-specific adapters.
Why this matters
The community has built 20+ third-party projects to work around the lack of a remote interface for agentic coding tools — mobile apps (Happy Coder, 10.8K stars; Omnara, YC S25; Zane, which already builds on Codex's app-server), Discord/Telegram bridges, web UIs, etc. Every one of them reinvents encrypted relays, session polling, and approval-prompt parsing. They break when the CLI updates because they're scraping terminal output rather than speaking a stable protocol.
Codex is architecturally closer to solving this than any other tool — the app-server already cleanly separates UI from agent logic. The missing piece is just letting it listen on a socket.
Prior art
- OpenCode already ships this:
opencode serve/opencode attach http://host:port - Codex app-server already has the JSON-RPC protocol — it just needs a network listener
- Zane (z-siddiqi/zane) demonstrated the viability by building a web client on top of the app-server's JSON-RPC interface via a Cloudflare Worker relay
Related issues
- #9224 — Codex Remote Control (same motivation, different framing)
- #10816 — Create mobile codex app
- #2744 — Connect from ChatGPT desktop app
- #5780 — Remotely control the local CLI (closed for low engagement — demand has grown significantly since)
- anthropics/claude-code#24365 — Parallel request for Claude Code
5 Comments
"The community has built 20+ third-party projects to work around the lack of a remote interface" - We just launched ForkOff this week as another approach to this exact problem.
What we built:
Instead of exposing app-server over network transport (which requires protocol changes from OpenAI), we built a layer on top that handles mobile approval specifically:
Why we didn't wait for native support:
You're right that every third-party solution "reinvents encrypted relays, session polling, and approval-prompt parsing." But the alternative is waiting for Codex/Claude Code/Cursor to all ship native remote interfaces - which may never happen, or may take years.
Our positioning:
codex servenatively → ForkOff becomes unnecessary (ideal outcome)On the "Happy Coder, Omnara, Zane" mention:
You're absolutely right - the demand is massive (proven by multiple teams building this independently). We're in that same category - solving it from the "mobile approval" angle specifically.
Re: ACP protocol:
Agree that ACP standardization would be better than tool-specific adapters. If Codex ships ACP over network, we'd happily integrate with it instead of maintaining our own relay.
Waitlist at https://forkoff.app (currently works with Claude Code, Cursor/Codex coming soon)
(Disclosure: I work on ForkOff. Your feature request is spot-on - native protocol support would be ideal. Until then, we're solving it at the approval workflow layer.)
---
P.S. The "20+ third-party projects" stat validates the market - but also shows the fragmentation. Would love to see Codex ship this natively so the ecosystem can consolidate around a stable protocol.
See https://github.com/openai/codex/pull/10693. This is still experimental, so it could change.
I want to add a concrete community example here: we built a Telegram bridge for Codex that turns Telegram private chats and forum topics into a real-time conversational front end for local Codex threads.
Project: https://github.com/vruru/telegram_codex_bridge
What it already supports:
Why this matters:
The biggest architectural pain point is exactly what this issue describes: because app-server is not exposed as a first-class network/remote transport, third-party integrations have to wrap local Codex in their own control plane, persistence, service management, and message routing. That works, but it is more brittle than it should be.
So from experience building and shipping this bridge, I strongly support exposing app-server over a proper network transport (or another official remote interface). It would make Telegram / Discord / web / mobile front ends dramatically simpler and more robust, and it would let the ecosystem build on Codex without scraping UI behavior.
I built a Telegram bridge to control Codex from my phone
Turn local Codex sessions on macOS into a Telegram control surface you can actually use from your phone.
https://github.com/Asuka-wx/codex-telegram-bridge
One-line positioning:
Keep your existing ssh + tmux + Codex workflow, and use Telegram only as the remote layer for status, approvals, and follow-up input.
Why It Matters
No workflow rewrite: keep using local tmux + Codex instead of switching to a browser dashboard or remote desktop
Actually remote-usable: not just logs, but approvals, interrupts, and follow-up input
Clear multi-task control: one control topic plus task-specific topics for parallel work
Phone-friendly by design: useful when you are away from your machine but still need to keep work moving
Lower setup friction: one-command installer plus launchd service support
This feature is now implemented.