- Bun - Install from bun.sh
- Codex - OpenAI coding agent CLI
/plugin marketplace add fusengine/codex-agentAll plugins:
/plugin install fuse-ai-pilot fuse-commit-pro fuse-laravel fuse-nextjs fuse-react fuse-swift-apple-expert fuse-solid fuse-tailwindcss fuse-design fuse-prompt-engineerOr select specific:
/plugin install fuse-ai-pilot fuse-nextjs # Just AI pilot + Next.js~/.codex/.tmp/marketplaces/fusengine-plugins/setup.sh~/.codex/.tmp/marketplaces/fusengine-plugins/setup.ps1This installs:
- Hooks (PreToolUse, PostToolUse, SessionStart, UserPromptSubmit, Stop, PermissionRequest) — chemins absolus réécrits pour Codex
_shared/modules mirrorés dans~/.codex/plugins/cache/fusengine-plugins/<plugin>/_shared/- AGENTS.md (global rules)
- API keys (interactive prompts if missing)
- Shell config (bash/zsh/fish/PowerShell)
- Statusline
- MCP servers (interactive selection of 27 servers)
- Codex feature flags (audit 0.130) — defaults non-interactifs :
hooks,tool_search,personality,multi_agent,fast_mode,shell_snapshot,enable_request_compression,skill_mcp_dependency_install,memories,goals(=true). Removed (no-op) :undo,steer. UnderDevelopment laissés aux défauts Codex :chronicle,enable_fanout,child_agents_md,plugin_hooks. + 6 prompts interactifs :memories,apps,approval_policy,sandbox_mode,web_search,model_reasoning_effort
Depuis Codex 0.129, les hooks installés par un plugin sont soumis à un trust gate : chaque hook doit être approuvé individuellement avant d'être exécuté. À la première exécution après installation, Codex affiche les hooks fusengine et attend une décision utilisateur.
-
Lance Codex (
codex). -
Ouvre la TUI des hooks :
/hooks -
Codex liste chaque hook avec son chemin absolu, son matcher (
Bash,Write|Edit,mcp__*, etc.) et l'événement (PreToolUse,PostToolUse,SessionStart,Stop,UserPromptSubmit,PermissionRequest). -
Inspecte le script avant d'approuver — chaque hook fusengine vit dans
~/.codex/plugins/cache/fusengine-plugins/<plugin>/local/scripts/. -
Approuve hook par hook. Le choix est mémorisé.
Cette approche per-hook est la voie supportée par OpenAI : le trust gate n'a actuellement pas de mécanisme de pre-trust applicable à un bundle d'équipe (cf. openai/codex#21639).
Pour les environnements où la review per-hook n'est pas tenable (CI, machines partagées en lab), setup.sh propose un prompt :
Bypass per-hook security review via
approval_mode=approve? WARNING RISKY: this disables Codex's per-hook trust gate for ALL hooks (not just fusengine). Recommended: review hooks individually via/hooksin Codex TUI. Default: No
Choisir Yes écrit approval_mode = "approve" au top-level de ~/.codex/config.toml. Ce flag désactive le trust gate pour tous les hooks de la machine, fusengine et tiers compris. À n'activer qu'en pleine connaissance des hooks installés.
Voir : developers.openai.com/codex/plugins/build.
During setup, you'll see an interactive MCP server selector:
◆ Install MCP servers to global scope?
│ ● Yes / ○ No
◆ Select MCP servers to install globally:
│ ◻ sequential-thinking Dynamic problem-solving with step-by-step reasoning
│ ◻ memory Knowledge graph-based persistent memory system
│ ◻ filesystem Secure local file operations with configurable access
│ ◻ context7 [✓] Up-to-date documentation for any library
│ ◻ exa [⚠ key missing] Advanced AI-powered web search and research
[✓]= API key configured[⚠ key missing]= requires API key (will still work, just configure key later)
Use arrow keys to navigate, space to select, enter to confirm.
See MCP Servers Reference for full list of 27 available servers.
exit
codex/plugin list # Shows installed pluginsCréer un .codexignore à la racine du projet pour bloquer les writes sur des fichiers sensibles. Syntaxe gitignore-style :
.env
.env.*
secrets/
*.key
credentials.json
Le guard codexignore-guard.py (PreToolUse Write|Edit) remonte l'arbre depuis cwd jusqu'à trouver le fichier, puis applique les patterns via fnmatch. Match → permissionDecision: "deny".
If you skipped API keys during setup, edit ~/.codex/.env:
export CONTEXT7_API_KEY="ctx7sk-xxx"
export EXA_API_KEY="xxx"
export MAGIC_API_KEY="xxx"
export GEMINI_DESIGN_API_KEY="xxx"Then re-run setup or restart your terminal.
# Install Bun
curl -fsSL https://bun.sh/install | bash# Re-run setup
~/.codex/.tmp/marketplaces/fusengine-plugins/setup.sh # or setup.ps1 on WindowsSous Codex, les hooks sont installés directement par plugin dans ~/.codex/plugins/cache/fusengine-plugins/<plugin>/local/hooks.json (chemins absolus réécrits par l'installer). Vérifier qu'ils existent :
ls ~/.codex/plugins/cache/fusengine-plugins/*/local/hooks.json
grep -l "PreToolUse" ~/.codex/plugins/cache/fusengine-plugins/*/local/hooks.jsonVérifier les feature flags Codex :
grep -E "^hooks|^tool_search|^memories|^personality" ~/.codex/config.toml