Every Codex plugin,
now inside Pi

A Pi extension that lets any Pi model use every plugin you have connected in Codex: Gmail, GitHub, Slack, Linear, Figma, Google Drive, Calendar and the rest. Connect once in Codex. Use it everywhere in Pi.

$ codex login
$ pi install npm:@wileai/pi-codex-connector

Requires Node.js 22.19+, Pi and the Codex CLI. Restart Pi after installing.

01 · Plugins

If it's connected in Codex, Pi can use it

This is the Plugins page in Codex. Every plugin you connect here becomes available to Pi through this extension. No second login, no extra OAuth apps, no MCP servers to run.

Codex · Customize › PluginsSource of truth
The Codex Plugins page, showing installed plugins such as Slack, Figma, Linear, Gmail, Google Calendar, Google Drive and GitHub, and a catalog of popular plugins.

Any Codex plugin, from any Pi model. Install a plugin in Codex and its connector tools show up in Pi on the next discovery. Claude, Gemini, a local model: whichever model you run in Pi can search your Gmail, triage GitHub PRs or post to Slack through the plugins you already trust in Codex.

Codex keeps owning your login and every connector credential. Pi never sees a token. Pi gets the connector (app) tools of the plugins you connected; your local Codex MCP servers are left out.

GmailGitHubSlackLinearFigmaGoogle DriveGoogle CalendarNotionCanvaSupabaseShopifyGranola+ every plugin you connect
Step 01

Connect in Codex

Open Codex › Customize › Plugins and add the plugins you want. Sign in to each one there.

Step 02

Install in Pi

Run codex login, then pi install npm:@wileai/pi-codex-connector and restart Pi.

Step 03

Just ask

"Summarize my unread Gmail from today." Pi finds the right plugin tool, checks its schema and calls it.

02 · How it works

Codex as a connector host, not a model

The extension talks to the local Codex app-server over stdio. It never starts a Codex model turn, so plugin calls cost no Codex tokens.

Your model

Pi

Any provider or local model you run in Pi.

This extension

Codex Connector

Three tools, consent and write approvals.

stdio

codex app-server

Ephemeral, model-free thread. Apps feature only.

Your account

Codex plugins

Gmail, GitHub, Slack, Linear, Figma…

  1. On first use, starts codex app-server. Codex keeps owning your login and connector credentials.
  2. Opens an ephemeral, model-free Codex thread with only the apps feature on. Your own Codex MCP servers stay off.
  3. app/installed and mcpServerStatus/list build the catalog of your connected plugins and their tools.
  4. Tools run through mcpServer/tool/call. Results go straight back to your Pi model.
03 · Tools

Three tools instead of hundreds

Connected plugins can expose hundreds of tool schemas. Loading them all would flood the context window, so the model gets three small tools and discovers the rest on demand.

ToolPurpose
codex_connectorsList connected plugins. With connector or query, list the matching tools.
codex_connector_schemaFull description and input schema of one tool.
codex_connector_callRun a tool with JSON arguments.
/codex-connectorsSlash command that shows the catalog. Add refresh to rediscover after connecting a new plugin.
04 · Safety

Your data, your call

Connector names, schemas and results enter the selected Pi model's context, so the extension asks before it looks and asks again before it writes.

Session consent

Asks before discovering any plugin. Headless runs must set PI_CODEX_CONNECTORS_DATA=allow.

Write approvals

Tools not marked read-only open a confirm dialog in the TUI. Destructive tools always need approval.

Allowlist

Limit discovery and calls to named plugins, e.g. PI_CODEX_CONNECTORS_ALLOW=GitHub,Slack.

Credentials stay in Codex

Pi never reads tokens. Raw app-server diagnostics are withheld and never written to disk.

No silent retries

An aborted or timed-out write reports an unknown outcome and blocks further writes until you check.

Bounded results

Large results are truncated in memory, never saved. Narrow the query or paginate for more.

Configuration

VariableValues
PI_CODEX_CONNECTORS_WRITESask (default): confirm in the TUI, deny without UI · allow: run without asking · deny: never run
PI_CODEX_CONNECTORS_DATAallow or deny plugin data access without the consent prompt
PI_CODEX_CONNECTORS_ALLOWComma-separated plugin names or IDs. Empty exposes none; unset exposes all enabled ones.
PI_CODEX_CONNECTORS_CODEXPath to the Codex executable (default: codex on PATH)