Posten naar Facebook vanuit Codex

Codex draait net zo makkelijk zonder toezicht als interactief. Daarom zijn de conceptstatus van Facebook en de ingebouwde planning de twee functies die het waard zijn om een pipeline op te bouwen.

Hermoso is een marketing-MCP-server: 922+ tools via één OAuth-endpoint, waarmee een agent de advertenties kan onderzoeken die al in een markt draaien, afgewerkte beeld- en videoadvertenties kan genereren, ze kan publiceren en de betaalde campagnes erachter kan bouwen. Codex bereikt dat alles via één verbinding. Deze pagina behandelt één stuk daarvan: wat Codex echt op Facebook kan doen, en wat Facebook hem niet laat doen.

Hermoso verbinden met Codex

  1. Eén commando, en geen sleutel.
    codex plugin marketplace add hermoso-ai/hermoso && codex plugin add hermoso@hermoso
    Codex leest het marktplaatsbestand in de openbare repository van Hermoso en installeert de vijf skills (research, ad-from-brand, generate, product-photoshoot en marketing). De skills draaien het commando hermoso via npx. Er wordt dus geen toollijst in je sessies geladen, en het kost niets aan context tot er een commando draait.
  2. Eenmalig inloggen.
    npx -y hermoso auth login
    Er opent een inlogvenster in de browser, en er wordt een inloggegeven alleen voor de eigenaar opgeslagen in ~/.hermoso/config.json. Geen browser op die machine, bijvoorbeeld in CI of een container? Maak dan een sleutel aan onder MCP & CLI → Terminal & API-sleutels en voer npx -y hermoso auth login --token hmk_… uit. Een sleutel heeft echte uitgavenbevoegdheid, dus behandel hem als een wachtwoord.
  3. Optioneel: de MCP-server ook.
    codex mcp add hermoso -- npx -y hermoso mcp
    Dat schrijft de server in ~/.codex/config.toml en gebruikt dezelfde opgeslagen inloggegevens, dus er gaat geen sleutel in het bestand. Liever het gehoste eindpunt? codex mcp add hermoso --url https://app.hermoso.ai/mcp, en daarna codex mcp login hermoso voor de OAuth-inlog. De skills bereiken elke tool zonder een van beide.
  4. Vraag Codex om iets. “Haal de langstlopende advertenties van mijn drie dichtstbijzijnde concurrenten op en zet de beste hook om in een 9:16-video,” of “plaats deze render op het kanaal.” De agent kiest de tools; jij keurt de uitgaven goed.

Codex bewaart MCP-servers in ~/.codex/config.toml, of in .codex/config.toml in een vertrouwd project, en dat bestand is TOML, geen JSON: een gekopieerd mcpServers-blok laadt niet. Een handmatige entry is [mcp_servers.hermoso] met command = "npx" en args = ["-y", "hermoso", "mcp"]. Het afsluitende mcp is essentieel: npx -y hermoso zonder subcommando toont de help en stopt. Codex leest pluginmarktplaatsen in dezelfde .claude-plugin-opzet die Claude Code gebruikt, en daarom werkt één repository in beide.

Koppel daarna Facebook zelf, één keer, onder Instellingen → Connectors in Hermoso. Dat is een OAuth-toestemmingsscherm, dus het is de ene stap die een browser nodig heeft. Alles daarna is een toolaanroep.

De Facebook-tools die Codex krijgt

  • post_to_meta: publiceert tekst, een afbeelding, een video of een multi-fotopost naar de Pagina, en neemt pageId aan zodat hij nooit hoeft te raden welke Pagina.
  • schedule_post: zet dezelfde post in de wachtrij voor een tijd die je kiest, in één kalender die met elk ander kanaal wordt gedeeld.
  • list_meta_pages: toont de Pagina's die het account heeft verbonden, met hun id's.
  • manage_meta_post: bewerkt de tekst van een gepubliceerde post, of verwijdert hem.
  • list_meta_comments / reply_to_meta_comment / moderate_meta_comment: leest de reacties onder een post, antwoordt als de Pagina, en verbergt of verwijdert wat er niet hoort.
  • meta_page_insights / meta_post_insights: bereik, vertoningen en betrokkenheid op Pagina-niveau en per post.
  • upload_meta_asset: zet een afgewerkte render in de assetbibliotheek van het advertentieaccount.

Facebook is ook het enige kanaal met inplannen op afstand via het platform zelf. post_to_meta neemt een scheduleAt tussen tien minuten en dertig dagen vooruit, en geeft de timing aan Meta zelf. Instagram en Threads hebben dat niet in de API van Meta, en het voor hen doorgeven wordt geweigerd in plaats van stilletjes meteen te posten.

Facebook-limieten om te weten voordat je iets automatiseert

TekstEen Facebook-post kan tot 63.206 tekens lang zijn, wat in de praktijk geen limiet is. Hij wordt afgedwongen bij het aanmaken of in de wachtrij zetten, dus een te lange post wordt geweigerd terwijl jij nog aanwezig bent om hem te repareren, in plaats van stilletjes ingekort te worden op weg naar buiten.
ZichtbaarheidOpenbaar of concept. Een concept is een echt ongepubliceerde Pagina-post, wat het nuttige is voor controle: hij bestaat in Meta Business Suite en niemand buiten kan hem zien. Er is geen niet-vermelde en geen privé-optie: “een Facebook-Pagina-post is ofwel gepubliceerd, ofwel bewaard als ongepubliceerd concept”.
Carrousel2 dia's en meer, alleen foto's. Meta publiceert geen maximum voor attached_media dat wij konden vinden, dus Hermoso verzint er geen en schrijft het niet aan Facebook toe. De enige grens is die van ons, bij 30 dia's, en de weigering zegt van wie hij is: “Facebook publiceert geen gedocumenteerd maximum voor attached_media, dus deze grens is van ons, niet van hen.” Video kan niet mee in een Facebook-fotocarrousel; dat is een andere rand van de API van Meta, en Hermoso weigert in plaats van de clip stilletjes weg te laten.
Welk accountpageId. Het telt zodra een merk meer dan één Pagina verbindt: het publicatiepad weigert bij naam in plaats van er voor jou één te kiezen, en een planning die het antwoord niet kon meedragen, zou die weigering uren later in een mislukking veranderen terwijl niemand meekijkt.

Probeer het in Codex

Vraag er in gewone taal om. Dit zijn gewone zinnen, geen DSL:

“Niet-interactief: render een beeldadvertentie van 1:1 vanuit het merkprofiel, post die als ongepubliceerd concept naar de Pagina, en print het post-id als JSON.”

Dat loopt via find_competitors → search_meta_ads → plan_ad → render_ad → list_meta_pages → post_to_meta. Interactief toont Codex de aanroep voordat hij loopt. Niet-interactief is er niemand om te vragen. Dat is het waard om rekening mee te houden bij elke stap die publiceert of uitgeeft.

Codex op Facebook: het deel dat pijn doet

Noem de Pagina in de prompt of in de configuratie. Met meer dan één gekoppelde Pagina weigert het publicatiepad bij naam in plaats van er een te kiezen, en dat is correct. In een onbeheerde codex exec-run is er niemand om te vragen, dus wordt de weigering een mislukte taak. Los het één keer op met list_meta_pages en zet het id vast.

Voor onbeheerde runs geef je de voorkeur aan de hermoso-CLI met --json boven het volledige toolmanifest. Dat kost veel minder context en is makkelijker te controleren.

Onderzoek Facebook voordat je post

De Meta Ad Library is het rijkste openbare archief van creatives dat er bestaat, en search_meta_ads leest het op trefwoord of per pagina, met plaatsingen op Facebook en Instagram. pull_competitor_ads en competitor_teardown bouwen erop voort, en find_competitors bepaalt op wie je ze richt.

Het betaalde deel

Facebook is het diepste betaalde kanaal dat Hermoso heeft. create_meta_campaign, create_meta_adset en create_meta_ad bouwen de hele structuur met echte targeting: geografie tot op een straal rond een stad, interesses, gedrag, aangepaste doelgroepen en lookalikes, plaatsingen, dagdelen, bod- en kostenplafonds. Alles wordt GEPAUZEERD aangemaakt, zonder dat de aanroeper dit kan overschrijven, en het overzicht dat je agent meldt, wordt opgebouwd uit een controle van wat Meta echt heeft opgeslagen, nooit uit wat er werd gevraagd. Voordat er een budget wordt vastgelegd, rendert preview_meta_ad de echte advertentie per plaatsing als link die je kunt bekijken, en estimate_meta_reach zegt hoeveel mensen de targeting echt bereikt. Eén waarschuwing die geld bespaart: een adset die zonder locaties wordt aangemaakt, valt standaard terug op alleen de Verenigde Staten, en de controle zegt dat luid.

Wat Codex niet zelfstandig kan

Een agent met een budget is alleen nuttig als de impact begrensd is, dus het hek zit in de server en niet in een prompt. Elke advertentiecampagne, adset, advertentiegroep en advertentie wordt gepauzeerd aangemaakt, en de statusschakelaars die echt geld in beweging zetten, weigeren te draaien zonder een uitdrukkelijke bevestigingsvlag. Elke render wordt vooraf geprijsd (hermoso_capabilities publiceert de exacte creditkosten van elk model voordat er iets wordt uitgegeven). Credits worden gereserveerd vóór de eerste aanroep naar de provider en daarna afgerekend op de exacte kosten, zodat een mislukte verzending wordt terugbetaald in plaats van dat je voor niets betaalt. Verwijderingen zijn ook bevestigingsbeveiligd, en elke campagnestructuur wordt teruggelezen uit het advertentieplatform voordat je agent vertelt wat hij heeft gebouwd.

Eén stap is bewust niet headless: een account koppelen is een OAuth-toestemmingsscherm, dus je koppelt het kanaal één keer in een browser. Alles daarna is een toolaanroep.

De rest van de matrix

Vanuit Codex publiceren naar: Instagram · Threads · TikTok · YouTube · X · LinkedIn · Pinterest · Bluesky · Telegram. Of bekijk alles waarnaar Codex kan publiceren.

Publiceren naar Facebook vanuit: Claude · ChatGPT · Claude Code · Cursor · Cline · OpenClaw · Grok Bot · Hermes · Gemini CLI · Perplexity · Le Chat · Claude Cowork · Perplexity Computer · Paperclip · Advertenties vanaf de command line

Veelgestelde vragen

Kan Codex naar Facebook posten?

Ja, met de Codex-plugin van Hermoso. Voer codex plugin marketplace add hermoso-ai/hermoso && codex plugin add hermoso@hermoso uit. Dat installeert de skills van Hermoso. Meld je daarna één keer aan met npx -y hermoso auth login. De inlog opent een browser en slaat de inloggegevens zelf op, dus er is geen sleutel aan te maken en niets te plakken. Voor de MCP-server voer je ook codex mcp add hermoso -- npx -y hermoso mcp uit. Codex heeft daarna 922+ tools, inclusief de tools die naar Facebook publiceren, plus de tools die de advertenties onderzoeken die al in je markt lopen en de creatives maken.

Hoe koppel ik Facebook aan Codex?

Twee stappen, elk één keer. Voer codex plugin marketplace add hermoso-ai/hermoso && codex plugin add hermoso@hermoso uit. Dat installeert de skills van Hermoso. Meld je daarna één keer aan met npx -y hermoso auth login. De inlog opent een browser en slaat de inloggegevens zelf op, dus er is geen sleutel aan te maken en niets te plakken. Voor de MCP-server voer je ook codex mcp add hermoso -- npx -y hermoso mcp uit. Koppel daarna Facebook in Hermoso onder Instellingen → Connectors. Dat is een OAuth-toestemmingsscherm in een browser. Daarna publiceert Codex naar Facebook als een gewone toolaanroep.

Wat is de Facebook-captionlimiet bij posten vanuit Codex?

Een Facebook-post kan tot 63.206 tekens lang zijn, wat in de praktijk geen limiet is. Hermoso handhaaft die bij het aanmaken of in de wachtrij zetten van de post, zodat Codex meteen wordt geïnformeerd in plaats van later te falen wanneer niemand meekijkt.

Kan Codex een Facebook-post voor later inplannen?

Ja. schedule_post zet hem in één kalender die met elk ander kanaal wordt gedeeld, met een caption per kanaal als de tekst moet verschillen, en list_scheduled en cancel_scheduled lezen hem uit en halen hem terug. Facebook is een van de elf kanalen die in de wachtrij gaan.

Kan Codex privé of als concept naar Facebook posten?

Ja. Facebook is het enige kanaal met een echt concept: een ongepubliceerde Pagina-post die in Meta Business Suite bestaat en die niemand buiten kan zien. Hermoso weigert een zichtbaarheid die Facebook op dat moment niet kan waarmaken, in plaats van stilletjes iets zwakkers te publiceren.

Wat kost posten naar Facebook vanuit Codex?

Publiceren naar Facebook kost geen credits, omdat Meta niets per API-aanroep rekent. Credits worden besteed aan generatie: het renderen van de afbeelding of video die de post draagt. Abonnementen kosten $29, $69 en $149 per maand voor 1.200, 3.000 en 7.000 credits, en elke functie zit in elk abonnement, ook op Gratis. De enige uitzondering is enterprise-SSO.

Begin gratis met 30 credits bij aanmelding en verdien er 250+ bij. Elke functie zit in elk abonnement.

Gratis starten →   Bekijk prijzen