core-agent-ide/codex-rs/core
Michael Bolin cafb07fe6e
feat: add justification arg to prefix_rule() in *.rules (#8751)
Adds an optional `justification` parameter to the `prefix_rule()`
execpolicy DSL so policy authors can attach human-readable rationale to
a rule. That justification is propagated through parsing/matching and
can be surfaced to the model (or approval UI) when a command is blocked
or requires approval.

When a command is rejected (or gated behind approval) due to policy, a
generic message makes it hard for the model/user to understand what went
wrong and what to do instead. Allowing policy authors to supply a short
justification improves debuggability and helps guide the model toward
compliant alternatives.

Example:

```python
prefix_rule(
    pattern = ["git", "push"],
    decision = "forbidden",
    justification = "pushing is blocked in this repo",
)
```

If Codex tried to run `git push origin main`, now the failure would
include:

```
`git push origin main` rejected: pushing is blocked in this repo
```

whereas previously, all it was told was:

```
execpolicy forbids this command
```
2026-01-05 21:24:48 +00:00
..
src feat: add justification arg to prefix_rule() in *.rules (#8751) 2026-01-05 21:24:48 +00:00
templates Removed experimental "command risk assessment" feature (#7799) 2025-12-10 09:48:11 -08:00
tests feat: add justification arg to prefix_rule() in *.rules (#8751) 2026-01-05 21:24:48 +00:00
Cargo.toml feat: introduce codex-utils-cargo-bin as an alternative to assert_cmd::Command (#8496) 2025-12-23 19:29:32 -08:00
gpt-5.1-codex-max_prompt.md refactoring with_escalated_permissions to use SandboxPermissions instead (#7750) 2025-12-10 17:18:48 +00:00
gpt-5.2-codex_prompt.md caribou (#8265) 2025-12-18 08:58:44 -08:00
gpt_5_1_prompt.md chore(prompt) Remove truncation details (#7941) 2025-12-12 20:21:53 +00:00
gpt_5_2_prompt.md chore(prompt) Remove truncation details (#7941) 2025-12-12 20:21:53 +00:00
gpt_5_codex_prompt.md refactoring with_escalated_permissions to use SandboxPermissions instead (#7750) 2025-12-10 17:18:48 +00:00
models.json Update models.json (#8446) 2025-12-22 12:05:05 -08:00
prompt.md chore(prompt) Update base prompt (#7943) 2025-12-12 20:50:49 +00:00
README.md docs: align sandbox defaults, dedupe sections and improve getting started guide (#5357) 2025-10-19 16:41:10 -07:00
review_prompt.md docs: Fix markdown list item spacing in codex-rs/core/review_prompt.md (#4144) 2025-10-30 17:39:21 -07:00

codex-core

This crate implements the business logic for Codex. It is designed to be used by the various Codex UIs written in Rust.

Dependencies

Note that codex-core makes some assumptions about certain helper utilities being available in the environment. Currently, this support matrix is:

macOS

Expects /usr/bin/sandbox-exec to be present.

Linux

Expects the binary containing codex-core to run the equivalent of codex sandbox linux (legacy alias: codex debug landlock) when arg0 is codex-linux-sandbox. See the codex-arg0 crate for details.

All Platforms

Expects the binary containing codex-core to simulate the virtual apply_patch CLI when arg1 is --codex-run-as-apply-patch. See the codex-arg0 crate for details.