Prerequisites
- Codex CLI v0.153.4 or later.
- A LangSmith account.
- Node.js 22.x or later on Windows and Linux. On macOS the plugin runs its own build and does not need Node.js.
Install the plugin
Add the marketplace and install the plugin:/hooks inside Codex, because nothing traces until you do. Codex asks only in the interactive interface, so codex exec skips the hooks until you have trusted them once. Restart Codex after you trust them. To install the plugin for everyone, see Deploy to your organization. For more on installing plugins, see Plugins in the Codex docs.
Sign in
Sign in once with the LangSmith CLI. See Install the LangSmith CLI if you do not have it yet.profile in your config file to the one the plugin should use. Your own api_key ignores this setting, but a generic LANGSMITH_API_KEY is not used as a fallback while profile is set.
To use an API key instead, add it to ~/.codex/langsmith.json:
- The plugin’s own key from
api_keyorLANGSMITH_CODEX_API_KEY. - Your
langsmith auth loginsign-in. - A generic
LANGSMITH_API_KEYfrom your environment.
Turn on tracing
Tracing is off until you turn it on in~/.codex/langsmith.json, unless your admin already turned it on with a managed file. Send traces to an agent with agent_id:
project:
agent_id wins.
Complete a turn and open your agent or project in LangSmith.
Deploy to your organization
Admins can install the plugin for everyone and control how it traces from one place.Install for everyone
ChatGPT workspace admins can import the repository as a marketplace, so the plugin installs for everyone. Each user still has to trust the plugin’s hooks. For the setup, see Plugin management.Lock settings
An admin can lock tracing settings for every user with a managed file at~/.langsmith-plugins/managed.json in each user’s home folder. The Claude Code, Cursor, and Codex plugins all read this file, and its settings override the user’s own config files and environment variables.
- Root owns the file and its folder.
- No other user can write to either.
- Neither is a symlink.
project also stops users from adding their own replicas or sending traces to an agent with agent_id.
Admins usually install the file on each machine with a mobile device management (MDM) tool such as Jamf or Microsoft Intune. For every setting you can lock, see the plugin settings guide.
Example setup script
Example setup script
Run this as root for each user, with On Linux, use
USER_HOME set to that user’s home folder:root:root instead of root:wheel. For the full script, see Set it up on macOS.Require a working sign-in
Strict auth blocks every prompt until the user’s sign-in or key works, so no session goes untraced. It is off by default and has no effect while tracing is off. To turn it on for everyone, setstrict_auth to true in the managed file.
Hide a conversation
Sendlangsmith-tracing:mute as a normal message with no leading slash to keep a thread’s content out of LangSmith, and langsmith-tracing:unmute to turn it back on. The confirmation appears as a prompt blocked by a hook, because that is how Codex shows a plugin’s reply. To mute every thread by default, set defaultMuted to true.
Secret redaction
The plugin strips secrets on your machine before anything is uploaded, so they never reach LangSmith or a replica. Redaction is on by default. It catches provider API keys, JSON Web Tokens, and PEM private keys, along with common patterns such asAPI_KEY=<value> or a password in a URL. Each match is replaced with [SECRET_DETECTED]. For the full rule list, see Redact secrets from traces.
Redaction only matches known credential shapes, so treat it as a safety net rather than a guarantee. Run names, tags, and attachments skip it, and a redacted trace still holds your prompts and file contents. Limit who can read the tracing project.
To turn redaction off or add your own patterns, see the plugin settings.
Settings
Each setting has a config file key and an environment variable. The environment variable wins when both are set.
For every setting, see the plugin settings. To send traces to more than one place, see Send a trace to more than one place.
Troubleshooting
- No traces: Check that the plugin is installed, its hooks are trusted with
/hooks, and tracing is on. - Stopped after an update: Codex asks you to trust a hook again whenever a release changes it. Run
/hooksand approve it. - Tracing is paused: Run
langsmith auth loginagain or replace the rejected API key.
Connect these docs to your agent of choice via MCP for real-time answers.

