ManifestThe manifest is the contract.
Declare kind, dependencies, typed inputs, triggers, integrations, and scopes. Anything not declared cannot run, and reviewers can see the complete safety shape in one place.
{
"name": "renewal-radar",
"kind": "bundle",
"dependencies": ["deal-board", "gmail-inbox"],
"scopes": ["brain:read", "boards:write"],
"triggers": [{ "memory": "email" }]
}
A recipe's manifest.json declares everything Codex needs to install it safely: which integrations it talks to, which scopes it needs, what inputs the installer must provide, and what triggers it subscribes to. Anything not declared cannot run, so reviewers can audit the full safety and runtime shape before anything is published or installed.
- input
Typed inputsCodex prompts the installer for anything missing, from API credentials to workspace-specific configuration.
- verified_user
Declared scopesEvery integration call, board write, and memory read is visible in the manifest before install.
- shield
Sandbox by defaultRecipes cannot touch network, filesystem, or environment state unless those capabilities are explicitly declared.
- fact_check
Static + dynamic checksPre-publish linting and sandbox runs catch regressions, bad assumptions, and scope drift before release.
- public
Private or publicShip to a teammate, your organization, or the public catalog using the same contract and upgrade model.