Commit Graph
67 Commits
Author SHA1 Message Date
James Peter c202d2624c merge local main into code-branch-20250919-065022 before merge 2025-09-20 06:10:36 +10:00
James Peter dbbcb5d52b feat(project-hooks): add project hooks and commands
Closes #203
2025-09-20 06:04:46 +10:00
James Peter eba296dd65 fix(cli/completion): emit code command in completions
Update completion generator and docs to use the code binary name.\n\nCloses #197.
2025-09-20 06:04:09 +10:00
James Peter 7f87ae7422 feat(tui/update): add upgrade settings and auto-upgrade flow 2025-09-19 14:46:16 +10:00
James Peter cc22fbd9a9 docs: clarify config directories (closes #181) 2025-09-18 17:21:12 +10:00
just-every-code cc7c7551d0 merge(upstream): integrate upstream/main into upstream-merge (by-bucket)
- Keep ours for  and workflows; drop upstream  per policy.
- Adopt upstream docs changes; simplify npm publish notes.
- Fix build: re-export Review* types in  to align tests and new review features.
- Verify: scripts/upstream-merge/verify.sh OK; ./build-fast.sh passes with zero warnings.
2025-09-17 03:57:54 +00:00
Michael BolinandGitHub 791d7b125f fix: make GitHub Action publish to npm using trusted publishing (#3431) 2025-09-16 20:33:59 -07:00
just-every-code 59d96c39a1 Merge remote-tracking branch 'origin/main' into upstream-merge 2025-09-16 18:23:54 +00:00
just-every-code fbac43f8d3 merge(upstream): integrate openai/codex@5e2c4f7e3 (docs update); verify ok 2025-09-16 16:33:45 +00:00
pakrym-oaiandGitHub 5e2c4f7e35 Update azure model provider example (#3680)
Make the section linkable.
2025-09-16 08:43:29 -07:00
James Peter eb4c2bc070 feat(branch): add /merge command and background guard events 2025-09-16 20:07:15 +10:00
James Peter 84fbdda104 feat(tui/model): restore /model selector and presets 2025-09-16 13:42:07 +10:00
just-every-code add6395f97 merge(upstream): by-bucket sync with openai/codex@main
- Preserve TUI and core tool invariants (browser_*, agent_*, web_fetch gating, screenshot queue, UA/version)
- Incorporate upstream TUI notifications config and exec-tool flag mapping
- Resolve core config conflicts; align tests with forked Config shape

verify: scripts/upstream-merge/verify.sh ok; ./build-fast.sh ok
2025-09-15 18:05:13 +00:00
Jeremy RoseandGitHub 0560079c41 notifications on approvals and turn end (#3329)
uses OSC 9 to notify when a turn ends or approval is required. won't
work in vs code or terminal.app but iterm2/kitty/wezterm supports it :)
2025-09-15 10:22:02 -07:00
just-every-code ea7530ab36 merge(upstream): sync upstream/main into upstream-merge
- Adopt upstream changes by bucket per policy
- Keep our core/TUI invariants and tool gating
- Purge upstream codex-cli image assets
- Verify: scripts/upstream-merge/verify.sh ok; ./build-fast.sh ok
2025-09-15 05:05:11 +00:00
easong-openaiandGitHub 6a8e743d57 initial mcp add interface (#3543)
Adds `codex mcp add`, `codex mcp list`, `codex mcp remove`. Currently writes to global config.
2025-09-15 04:30:56 +00:00
just-every-code a674d6a7c4 merge(upstream): sync upstream/main into upstream-merge with selective reconciliation
- Prefer ours for TUI and core API invariants; adopted upstream for exec/common where safe
- Restored fork invariants (browser/agent tools, UA/version) and added missing deps
- Aligned conversation manager to session_id flow; added resume wiring via config
- Re-exported rollout helpers at crate root for exec; fixed MCP/TUI call sites
- Build passes verify.sh and ./build-fast.sh with zero errors
2025-09-15 00:11:46 +00:00
Ahmed IbrahimandGitHub a30e5e40ee enable-resume (#3537)
Adding the ability to resume conversations.
we have one verb `resume`. 

Behavior:

`tui`:
`codex resume`: opens session picker
`codex resume --last`: continue last message
`codex resume <session id>`: continue conversation with `session id`

`exec`:
`codex resume --last`: continue last conversation
`codex resume <session id>`: continue conversation with `session id`

Implementation:
- I added a function to find the path in `~/.codex/sessions/` with a
`UUID`. This is helpful in resuming with session id.
- Added the above mentioned flags
- Added lots of testing
2025-09-14 19:33:19 -04:00
just-every-code 92a7acdef1 merge(upstream): pull openai/codex main into upstream-merge
- Prefer ours for TUI widget + docs to preserve UX and gating
- Adopt upstream justfile tasks (nextest + mcp-server-run)
- Verified with scripts/upstream-merge/verify.sh and ./build-fast.sh (ok)
2025-09-12 16:29:12 +00:00
Charlie WeemsandGitHub f805d17930 MCP Documentation Changes Requests in Code Review (#3507)
Add in review changes from @bolinfest that were dropped due to
auto-merge (#3345).
2025-09-12 09:04:49 -07:00
just-every-code 991df9051a merge(upstream): selective bucketed merge from openai/codex@main
- Adopt upstream in common/file-search and add TUI popup/types
- Preserve fork invariants in core (browser/agent/web_fetch gating, UA/version)
- Keep our TUI and CLI flows; resolve conflicts per policy
- Protocol: align mcp_protocol to upstream; add TS for Verbosity
- file-search: provide run_streaming shim to satisfy TUI usage
- common: make sandbox summary robust to new fields

Verification:
- scripts/upstream-merge/verify.sh: PASS (build-fast + API checks)
2025-09-12 10:45:24 +00:00
Charlie WeemsandGitHub 8f7b22b652 Add more detailed documentation on MCP server usage (#3345)
Adds further information on how to get started with `codex mcp`:
- Tool details and parameter references
- Quickstart with example using MCP inspector.
2025-09-11 14:38:24 -07:00
Eric TrautandGitHub e13b35ecb0 Simplify auth flow and reconcile differences between ChatGPT and API Key auth (#3189)
This PR does the following:
* Adds the ability to paste or type an API key.
* Removes the `preferred_auth_method` config option. The last login
method is always persisted in auth.json, so this isn't needed.
* If OPENAI_API_KEY env variable is defined, the value is used to
prepopulate the new UI. The env variable is otherwise ignored by the
CLI.
* Adds a new MCP server entry point "login_api_key" so we can implement
this same API key behavior for the VS Code extension.
<img width="473" height="140" alt="Screenshot 2025-09-04 at 3 51 04 PM"
src="https://github.com/user-attachments/assets/c11bbd5b-8a4d-4d71-90fd-34130460f9d9"
/>
<img width="726" height="254" alt="Screenshot 2025-09-04 at 3 51 32 PM"
src="https://github.com/user-attachments/assets/6cc76b34-309a-4387-acbc-15ee5c756db9"
/>
2025-09-11 09:16:34 -07:00
James Peter 742ddc152c Merge upstream-merge into main: restore fork features and keep upstream improvements
- Core: keep browser_*/agent_* tool exposure and web_fetch in openai_tools; preserve browser gating + screenshot UX; adapt recorder API
- Protocol: keep TS model changes for protocol-ts; align image shape
- Default client: reinstate UA helpers (USER_AGENT_SUFFIX, get_codex_user_agent_default)
- CI/Docs: carry remote minor updates

Build: ./build-fast.sh clean
2025-09-11 20:55:52 +10:00
James Peter 7961c09a98 ci(upstream-merge): expand agent context with fork enhancements + generic guards
- Add docs/fork-enhancements.md (initial list; instruct agent to scan repo for more)
- Inject the overview into the merge prompt
- Generalize verify guards to handler↔tool parity by family (browser_*, agent_*, web_fetch), and keep UA/version check

Prevents silent loss of fork features and gives the agent richer context.
2025-09-11 20:12:17 +10:00
just-every-code 362d818c4d merge(upstream): bring in openai/codex@main (no conflicts)
Policy: prefer ours (tui/cli/workflows/docs), prefer theirs (core/common/protocol/exec/file-search). Purge checks passed.\nVerification: scripts/upstream-merge/verify.sh PASS (build_fast=ok, api_check=ok).
2025-09-10 18:30:41 +00:00
Kazuhiro SeraandGitHub 97338de578 Remove a broken link to prompting_guide.md in docs/getting-started.md (#2858)
The file no longer exists. We've been receiving this feedback several
times.
- https://github.com/openai/codex/issues/2374
- https://github.com/openai/codex/issues/2810
- https://github.com/openai/codex/issues/2826

My previous PR https://github.com/openai/codex/pull/2413 for this issue
restored the file but now it's compatible with the current file
structure. Thus, let's simply delete the link.
2025-09-10 10:52:50 -07:00
James PeterandGitHub 4ad240069e Merge pull request #107 from just-every/upstream-merge
Upstream merge: openai/codex@main into main
2025-09-09 12:42:11 +10:00
James Peter 300188e794 docs: move theme config to docs/ and remove obsolete root files
Consolidate documentation under docs/.\n- Move THEME_CONFIG.md to docs/THEME_CONFIG.md (with minor edits)\n- Remove outdated root files: MERGE.md, PNPM.md, profile.sh\n\nValidated with ./build-fast.sh: build succeeds cleanly.
2025-09-09 12:01:09 +10:00
just-every-code 8bcf8bba6d merge(upstream): merge upstream/main into upstream-merge (by-bucket)\n\n- Prefer ours: TUI, CLI, workflows, docs\n- Prefer theirs: core/common/protocol/exec/file-search\n- Purged disallowed assets; resolved conflicts per policy 2025-09-09 00:21:14 +00:00
RobertandGitHub 79cbd2ab1b Improve explanation of how the shell handles quotes in config.md (#3169)
* Clarify how the shell's handling of quotes affects the interpretation
of TOML values in `--config`/`-c`
* Provide examples of the right way to pass complex TOML values
* The previous explanation incorrectly demonstrated how to pass TOML
values to `--config`/`-c` (misunderstanding how the shell’s handling of
quotes affects things) and would result in invalid invocations of
`codex`.
2025-09-08 15:58:25 -07:00
6efb52e545 feat(mcp): per-server startup timeout (#3182)
Seeing timeouts on certain, slow mcp server starting up when codex is
invoked. Before this change, the timeout was a hard-coded 10s. Need the
ability to define arbitrary timeouts on a per-server basis.

## Summary of changes

- Add startup_timeout_ms to McpServerConfig with 10s default when unset
- Use per-server timeout for initialize and tools/list
- Introduce ManagedClient to store client and timeout; rename
LIST_TOOLS_TIMEOUT to DEFAULT_STARTUP_TIMEOUT
- Update docs to document startup_timeout_ms with example and options
table

---------

Co-authored-by: Matthew Dolan <[email protected]>
2025-09-08 08:12:08 -07:00
James Peter a8cd8abdc0 feat(core/auth): prefer ChatGPT over API key when tokens exist
- Default  and conversation startup to
- Honor explicit API-key preference only when requested

feat(arg0/env): ignore provider keys in project .env

- Load ~/.code/.env first
- Always ignore OPENAI_API_KEY/AZURE_OPENAI_API_KEY in local .env

feat(tui): show bold "Auth: API key" badge when not using ChatGPT

feat(tui/onboarding): set Never + DangerFullAccess on trust

docs(auth): document .env safety and UI indicator

refactor(core/token_data): remove API-key plan heuristics (unused)
2025-09-09 00:50:17 +10:00
James Peter 7456b3f09f feat(tui/mcp): add /mcp command for MCP status, on/off toggles, and add; persist to config and update docs\n\n- Add config helpers to list/add/enable/disable MCP servers in ~/.codex/config.toml\n- New /mcp slash command with subcommands: status, on, off, add\n- Wire command dispatch; update slash-commands docs\n- No live reload yet; suggest starting a new chat to apply 2025-09-08 12:44:03 +10:00
James Peter a3b5c18aea docs(slash-commands): add comprehensive slash command reference; link from core README; add code comments reminding to update docs when adding commands 2025-09-08 09:56:03 +10:00
James Peter 4f59548cb1 feat(tui/github): add settings view and Actions tools; wire into bottom pane and chatwidget
- core(config): add GithubConfig and setter for check_on_push
- tui: integrate gh_actions panel; exec tools plumbing
- workflows: use RUNNER_TEMP cargo-home; enforce policy removals (images + cargo caches)
- repo: ignore .cargo2; docs(config): clarify allow_git_writes default
- protocol: minor adjustments across core/protocol crates
2025-09-07 17:43:58 +10:00
Michael BolinandGitHub 70a6d4b1b4 fix: change create_github_release to take either --publish-alpha or --publish-release (#3231)
No more picking out version numbers by hand! Now we let the script do
it:

```
$ ./codex-rs/scripts/create_github_release --dry-run --publish-alpha
Running gh api GET /repos/openai/codex/releases/latest
Running gh api GET /repos/openai/codex/releases?per_page=100
Publishing version 0.31.0-alpha.3
$ ./codex-rs/scripts/create_github_release --dry-run --publish-release
Running gh api GET /repos/openai/codex/releases/latest
Publishing version 0.31.0
```

---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed
with [ReviewStack](https://reviewstack.dev/openai/codex/pull/3230).
* __->__ #3231
* #3230
* #3228
* #3226
2025-09-05 22:08:34 -07:00
Ahmed IbrahimandGitHub c11696f6b1 hide resume until it's complete (#3218)
Hide resume functionality until it's fully done.
2025-09-05 13:12:46 -07:00
pakrym-oaiandGitHub 5775174ec2 Never store requests (#3212)
When item ids are sent to Responses API it will load them from the
database ignoring the provided values. This adds extra latency.

Not having the mode to store requests also allows us to simplify the
code.

## Breaking change

The `disable_response_storage` configuration option is removed.
2025-09-05 10:41:47 -07:00
James Peter 7c71037d38 feat(tui/history): enforce strict global ordering and stream IDs
- Replace legacy turn-window logic with stable  per insert
- Require non-empty stream IDs; seed order keys per (kind,id)
- Pair out-of-order ExecEnd/Begin and drop canceled execs
- Surface init/submit errors as BackgroundEvent diagnostics
- Improve status panes, borders, and preview truncation by display width
- Update release workflow; docs: AGENTS.md, prompt_coder.md; add MERGE.md and postmortem

Build: ./build-fast.sh passes locally with no warnings.
2025-09-05 16:13:31 +10:00
Anton PanasenkoandGitHub e60a44cbab [codex] move configuration for reasoning summary format to model family config type (#3171) 2025-09-04 11:00:01 -07:00
Ahmed IbrahimandGitHub 234c0a0469 TUI: Add session resume picker (--resume) and quick resume (--continue) (#3135)
Adds a TUI resume flow with an interactive picker and quick resume.

- CLI: 
  - --resume / -r: open picker to resume a prior session
  - --continue   / -l: resume the most recent session (no picker)
- Behavior on resume: initial history is replayed, welcome banner
hidden, and the first redraw is suppressed to avoid flicker.
- Implementation:
- New tui/src/resume_picker.rs (paginated listing via
RolloutRecorder::list_conversations)
  - App::run accepts ResumeSelection; resumes from disk when requested
- ChatWidget refactor with ChatWidgetInit and new_from_existing; replays
initial messages
- Tests: cover picker sorting/preview extraction and resumed-history
rendering.
- Docs: getting-started updated with flags and picker usage.



https://github.com/user-attachments/assets/1bb6469b-e5d1-42f6-bec6-b1ae6debda3b
2025-09-04 06:20:40 +00:00
James Peter 8e1973e460 merge(core): integrate upstream main, adopt default_client UA; fix auth originator and tool docs
- Resolve upstream delete of user_agent.rs; use default_client::get_codex_user_agent
- Switch client construction to default_client with originator header
- Update AuthManager::shared and CodexAuth::from_codex_home call sites to pass originator
- Fix openai_tools shell tool description formatting and include writable roots
- Deduplicate/repair config_types derives; import Serialize/Display early
- Use rollout::policy::is_persisted_response_item and remove dead import
- Keep our TUI architecture intact; no functional UI changes

Build: ./build-fast.sh passes with zero warnings
2025-09-04 07:21:05 +10:00
Anton PanasenkoandGitHub 77fb9f3465 [codex] document use_experimental_reasoning_summary toml key config (#3118)
Follow up on https://github.com/openai/codex/issues/3101
2025-09-03 11:16:07 -07:00
Gabriel PealandGitHub fb5dfe3396 Update guidance on API key permissions (#3112)
Fixes https://github.com/openai/codex/issues/3108
2025-09-03 12:44:16 -04:00
James Peter 5b722e0732 fix(tui/input): normalize KeyEvent kind on non-enhanced terminals to restore typing on Git Bash/mintty (Windows)
This maps Release-only key events to Press when keyboard enhancement flags are unsupported, fixing unresponsive input and Ctrl+C on some Windows terminals.

Closes #18. Closes #14.
2025-09-03 21:44:29 +10:00
James Peter 0ff794ed6b merge: integrate upstream/main (prefer ours); keep TUI fork, drop legacy vt100 tests, retain local common.rs 2025-09-03 19:49:35 +10:00
Zhongsheng JiandGitHub 3f76220055 docs: fix typo of config.md (#3082)
Fixed a typo in config.md. I guess TOML doesn't have the “key”: “value”
syntax.
2025-09-02 23:14:57 -07:00
Michael BolinandGitHub 90725fe3d5 docs: update link to point to https://agents.md/ (#3089)
Given the link text is "official AGENTS.md documentation," this seems
like the right URL.
2025-09-02 23:13:04 -07:00
Reuben NaradandGitHub 7bcdc5cc7c fix config reference table (#3063)
3 quick fixes to docs/config.md

- Fix the reference table so option lists render correctly
- Corrected the default `stream_max_retries` to 5 (Old: 10)
- Update example approval_policy to untrusted (Old: unless-allow-listed)
2025-09-02 13:03:11 -07:00