For one account, use the default Codex provider with your normal Codex login. Provider setup covers installation, Settings > Providers, and custom binaries or environment variables.
A shared Codex home with a shadow home lets work and personal accounts continue the same threads. The accounts share Codex sessions and configuration while keeping their own login and available models.
Keep your first account in ~/.codex. On the environment's machine, sign the
second account into a fresh directory:
mkdir -p ~/.codex_personal
CODEX_HOME=~/.codex_personal codex loginThen add a second Codex instance in Settings > Providers:
| Instance | CODEX_HOME path | Shadow home path |
|---|---|---|
| Codex Work | ~/.codex |
Leave empty |
| Codex Personal | ~/.codex |
~/.codex_personal |
Both instances must use the same CODEX_HOME path. T3 Code prepares the shared state in the shadow directory; do not populate it by copying your whole Codex home.
The shadow account needs its own auth.json file. If Codex uses an OS credential
store, configure file storage for this setup. See
OpenAI's credential storage guide.
Use a completely separate CODEX_HOME path, with no shadow home, when you want separate Codex sessions and configuration. That instance cannot continue threads from the other home.
Choose the other account from the thread's model picker. T3 Code offers compatible Codex instances that share the thread's CODEX_HOME path. Changing accounts does not move the conversation into a separate Codex home.
If the account is missing from the picker, compare the home paths in provider settings. If two instances show the same unexpected account or models, check their reported accounts, refresh provider status, and confirm the second instance has its own shadow path and login. A shadow-home conflict usually means the directory contains a copied Codex setup. Use a fresh shadow directory and sign in again.
Codex can ask a question and keep working. Answer it in the thread's question panel. The answer becomes a new message: it reaches the active turn, or starts another turn if Codex has finished. Unanswered questions survive reconnects. If you do not want to answer, dismiss the question from its panel. Dismissing closes it without sending anything to Codex. This requires a Codex version that supports async questions.
Codex tools can request access to another app. Respond to the named app's request in the thread on web, desktop, or mobile. Some tools offer access for one request, the current session, or permanently. See Permission modes for command and file approvals.
When Codex stops on a usage limit, the thread names the window that ran out and when it resets, when Codex reports them. Send the message again after the reset. On a workspace plan the message also says whether your workspace owner needs to add credits or raise the spend limit to continue sooner.
codex queue --thread <codex-thread-id> --message <text> stores a message in
Codex's own queue. Codex only delivers it once the thread is loaded, and T3 Code
unloads idle Codex sessions after about 30 minutes, so a queued message can wait
until someone opens the thread and sends something. Wake the thread instead:
curl -X POST "$T3_URL/api/orchestration/threads/wake" \
-H "Authorization: Bearer $T3_TOKEN" \
-H "Content-Type: application/json" \
-d '{"providerThreadId":"<codex-thread-id>"}'The wake reloads the Codex session so Codex delivers what it already queued. It
never sends a message itself, so calling it more than once is safe. A settled
thread is unsettled by the wake. Issue the bearer token with
t3 auth session issue. It carries full admin scopes, so keep it as private as
your Codex login.
In an existing Codex thread, send /feedback with an optional description, for
example /feedback The agent stopped before finishing the tests. This uploads
the conversation and Codex logs to OpenAI. The returned thread ID can be shared
with OpenAI support.
With Codex 0.153.2 or later, ask Codex to watch a CI job, log, or other changing
source and react when something happens. It can leave a watcher running after
its response finishes using the built-in monitor_start and monitor_unsubscribe
tools. No special prompt syntax is needed. On web and desktop, the thread shows
Monitoring between turns and wakes when the watcher reports an event.
Ordinary background commands do not wake the agent just because they print output.
Use Stop in the thread to cancel background work and pending monitor events. Watchers belong to the current provider session; after stopping that session or restarting the environment, ask Codex to start the watch again.