Как ограничить доступ Codex к проекту

Как ограничить доступ Codex к проекту

Алексей Маметьев

Где находятся правила

Для всех проектов правила читаются из ~/.codex/config.toml и ~/.codex/rules/*.rules. Для одного проекта применяются <project>/.codex/config.toml и <project>/.codex/rules/*.rules. Слой проекта загружается только для доверенного проекта.

0. Запрет записи вне папки проекта

# ~/.codex/config.toml
default_permissions = "project-only"
approval_policy = "never"

[permissions.project-only]
extends = ":workspace"

[permissions.project-only.filesystem]
":root" = "deny"
":minimal" = "read"
":tmpdir" = "deny"
":slash_tmp" = "deny"

[permissions.project-only.filesystem.":workspace_roots"]
"." = "write"

1. Запрет Git

# ~/.codex/config.toml
default_permissions = "no-git"
approval_policy = "never"

[permissions.no-git]
extends = ":workspace"

[permissions.no-git.filesystem.":workspace_roots"]
".git" = "deny"
# ~/.codex/rules/default.rules
prefix_rule(
    pattern = ["git"],
    decision = "forbidden",
    justification = "Git is disabled."
)

2. Запрет чтения ~/.ssh

# ~/.codex/config.toml
default_permissions = "no-ssh"
approval_policy = "never"

[permissions.no-ssh]
extends = ":workspace"

[permissions.no-ssh.filesystem]
"~/.ssh" = "deny"

3. Запрет редактирования тестов

# ~/.codex/config.toml
default_permissions = "tests-read-only"
approval_policy = "never"

[permissions.tests-read-only]
extends = ":workspace"

[permissions.tests-read-only.filesystem.":workspace_roots"]
"tests" = "read"

# Замените tests фактическим именем каталога:
# "test" = "read"
# "__tests__" = "read"
# "spec" = "read"

Проверка

codex execpolicy check --pretty --rules ~/.codex/rules/default.rules -- git status

Report Page