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 LinkedIn kan doen, en wat LinkedIn hem niet laat doen.
Hermoso verbinden met Codex
- Eén commando, en geen sleutel.
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 commandocodex plugin marketplace add hermoso-ai/hermoso && codex plugin add hermoso@hermosohermosovianpx. Er wordt dus geen toollijst in je sessies geladen, en het kost niets aan context tot er een commando draait. - Eenmalig inloggen.
Er opent een inlogvenster in de browser, en er wordt een inloggegeven alleen voor de eigenaar opgeslagen innpx -y hermoso auth login~/.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 voernpx -y hermoso auth login --token hmk_…uit. Een sleutel heeft echte uitgavenbevoegdheid, dus behandel hem als een wachtwoord. - Optioneel: de MCP-server ook.
Dat schrijft de server incodex mcp add hermoso -- npx -y hermoso mcp~/.codex/config.tomlen 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 daarnacodex mcp login hermosovoor de OAuth-inlog. De skills bereiken elke tool zonder een van beide. - 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 LinkedIn 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 LinkedIn-tools die Codex krijgt
post_to_linkedin_page: publiceert tekst, een afbeelding, een video of een post met meerdere afbeeldingen naar een bedrijfspagina, met alt-tekst.post_to_linkedin: publiceert naar een persoonlijk profiel, dat uit blijft staan tot je die identiteit expliciet deelt.list_linkedin_pages: de pagina’s die je met dit merk hebt gedeeld, met hun organisatie-id’s.schedule_post: zet hem in de wachtrij, metlinkedinOrganizationIdzodat de juiste identiteit plaatst.manage_linkedin_post: de tekst van een post bewerken, of hem verwijderen.linkedin_page_analytics: prestaties van de organische pagina: volgersgroei, paginaweergaven, en vertoningen, klikken en betrokkenheid van posts, per pagina of per post.search_linkedin_ads: de LinkedIn-advertentiebibliotheek, de enige openbare advertentiebibliotheek die echte aantallen vertoningen toont.
LinkedIn is het kanaal waar identiteit een recht is en geen voorkeur. Iemand beheert meestal meerdere bedrijfspagina’s, dus Hermoso maakt de identiteiten waarmee gepost kan worden tot een expliciete keuze: alleen de pagina’s die je onder Accounts beheren hebt aangevinkt, kunnen worden gebruikt. Een niet-aangevinkte pagina wordt server-side geweigerd en niet alleen in de interface. Het persoonlijke profiel staat uit, tenzij je het aanzet. Een agent die vraagt welke pagina en niet aanneemt, doet het goede.
LinkedIn-limieten om te weten voordat je iets automatiseert
| Tekst | Een LinkedIn-post is beperkt tot 3.000 tekens. De limiet wordt afgedwongen bij het maken of in de wachtrij zetten, dus een te lange post wordt geweigerd terwijl je er nog bent om hem te repareren, in plaats van stilletjes ingekort te worden op weg naar buiten. |
|---|---|
| Zichtbaarheid | Alleen openbaar. Een LinkedIn-post wordt gepubliceerd op het profiel of de bedrijfspagina, en “LinkedIn heeft geen niet-vermelde, privé- of concept-post.” |
| Carrousel | 2 tot 20 afbeeldingen, van een bedrijfspagina. Beide grenzen komen van LinkedIn zelf: een MultiImage-post is een post met meerdere afbeeldingen (minimaal 2 en maximaal 20 afbeeldingen), en het schema voegt toe: ondersteunt alleen afbeeldingen. Daaruit volgen twee weigeringen, en beide gebeuren bij naam en niet via een stille degradatie. Een video-slide wordt geweigerd omdat de multi-image-post van LinkedIn er geen kan dragen. Een carrousel op een persoonlijk profiel wordt geweigerd met de weg vooruit: geef linkedinOrganizationId mee (uit list_linkedin_pages), want “een carrousel op een persoonlijk profiel kan Hermoso niet publiceren.” |
| Welk account | linkedinOrganizationId. Niet ingevuld betekent het eigen profiel van het lid, nooit “waarschijnlijk het bedrijf”. Het veld is hoe je zegt welke pagina, en het weglaten is een beslissing en geen ongeluk. |
Probeer het in Codex
Vraag er in gewone taal om. Dit zijn gewone zinnen, geen DSL:
“Niet-interactief: publiceer de wekelijkse samenvatting naar de bedrijfspagina, met de vier grafieken als carrousel en alt-tekst bij elke afbeelding, en print daarna de URL van de post.”
Dat loopt via list_linkedin_pages → plan_ad → render_ad → post_to_linkedin_page → linkedin_page_analytics. 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 LinkedIn: het deel dat pijn doet
Zoek list_linkedin_pages één keer op en sla het organisatie-id op in de jobconfiguratie. Niet instellen betekent niet “zoek het uit”. Het betekent het persoonlijke profiel, dat uit staat tot het uitdrukkelijk wordt gedeeld. Een onbeheerde run zou dus falen op een rechtenprobleem in plaats van op de verkeerde plek te posten. Die fail-closed standaard is de juiste. Vertrouw er alleen niet op dat je hem om 9:00 ontdekt.
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 LinkedIn voordat je post
search_linkedin_ads leest de LinkedIn-advertentiebibliotheek. Die is ongebruikelijk onder openbare advertentiebibliotheken omdat hij echte aantallen vertoningen toont, zodat B2B-concurrentieonderzoek op LinkedIn gerangschikt kan worden op echte levering in plaats van op gissingen over wat er draait.
Het betaalde deel
create_linkedin_ads_campaign_group → create_linkedin_ads_campaign → create_linkedin_ads_creative bouwt de structuur, en alles wordt aangemaakt als concept. set_linkedin_ads_status is de enige schakelaar die echt geld activeert, en die weigert zonder expliciete bevestiging. Eén toegangsnotitie die beter nu gezegd wordt dan ontdekt: LinkedIn beperkt advertentieschrijfacties op basis van het API-niveau dat je eigen advertentieaccount heeft. Rapportage en lezen zijn onbeperkt. Op het ontwikkelniveau mag een app een beperkt aantal advertentieaccounts bewerken, elk met de hand geregistreerd.
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: Facebook · Instagram · Threads · TikTok · YouTube · X · Pinterest · Bluesky · Telegram. Of bekijk alles waarnaar Codex kan publiceren.
Publiceren naar LinkedIn 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 LinkedIn 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 LinkedIn publiceren, plus de tools die de advertenties onderzoeken die al in je markt lopen en de creatives maken.
Hoe koppel ik LinkedIn 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 LinkedIn in Hermoso onder Instellingen → Connectors. Dat is een OAuth-toestemmingsscherm in een browser. Daarna publiceert Codex naar LinkedIn als een gewone toolaanroep.
Kan Codex privé of als concept naar LinkedIn posten?
Nee. LinkedIn kent geen niet-vermelde, privé- of concept-post. Een post wordt gepubliceerd op het profiel of de bedrijfspagina. Hermoso weigert een zichtbaarheid die LinkedIn op dit moment niet kan honoreren op het moment dat je erom vraagt, in plaats van stilletjes iets zwakkers te publiceren.
Kan Codex een LinkedIn-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. LinkedIn is een van de elf kanalen die in de wachtrij gaan.
Wat is de LinkedIn-captionlimiet bij posten vanuit Codex?
Een LinkedIn-post is beperkt tot 3.000 tekens. Hermoso dwingt dat af bij het maken of in de wachtrij zetten, zodat Codex het meteen hoort in plaats van later te falen, wanneer niemand meekijkt.
Wat kost posten naar LinkedIn vanuit Codex?
Publiceren naar LinkedIn kost geen credits; LinkedIn rekent niets per API-aanroep. Credits gaan op de render. 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