.env; until then the lane is live-but-unauthenticated and waits for you to connect it (set PENDPOST_MODE=mock to exercise it through the mock driver).
You own your Meta accounts and are responsible for Meta’s terms of service. pendpost drafts and schedules, but a human approves before anything goes live.
Choose a token
You can authenticate with a long-lived Page token or a System User token. The System User token is preferred for automation: it is built for unattended, app-owned access rather than a personal login session.Setup ceremony
Run the interactive setup that writes your.env. For a System User token (preferred):
setup subcommand instead. It exchanges a short-lived personal user token for a long-lived Page token (the System User token above is preferred for automation):
Environment variables
The setup ceremony writes these into your.env:
A lane publishes only once its credential is present. If the Meta variables are blank, the Meta lane is live-but-unauthenticated and waits for you to connect it. Set
PENDPOST_MODE=mock to exercise it through the mock driver.Validate the lane
A present credential is not the same as a working one. After setup, validate the Meta lane in the Setup tab, or run a live probe with thehealth_recheck tool, to confirm the credential is live and not just configured. The lane is ready when it reports live.
Over MCP. Setup and rotation are an interactive human ceremony; secrets are never written through MCP. An agent can still check status (
account_status), run a live liveness probe (health_recheck), and read non-secret config (config_get) over MCP without touching credentials.Common failures
Pausing the Meta lane
The Meta lane has a kill switch. SetMETA_PUBLISHING_PAUSED=true in your .env to pause publishing on the lane (or pause it from data/plans/meta-lane.json). See Approval and circuit breakers for the cadence cap and the Meta 368 breaker.