- ›
/social— post to 13 platforms (Twitter/X, LinkedIn, Instagram, TikTok, YouTube, Reddit, Threads, Facebook, Pinterest, Bluesky, Mastodon, and more) with one call - ›
Per-platform formatting handled— character limits, threading, media constraints, hashtag rules done by the runtime - ›
Account-quality routing— Naïve uses connected-account reputation to avoid bans on platforms that throttle agentic behavior - ›
Analytics + comments built in— get_social_post_analytics and get_social_post_comments are first-class tools - ›
OAuth via portal link— get_social_portal_link returns a hosted page where the operator connects accounts in seconds - ›
Composes with /video, /image, /brand— the full distribution stack ships from one Employee
Today we're launching /social — the primitive that gives an AI Employee a real social presence. Post to 13 platforms with one call. Pull analytics and comments. Connect accounts via a hosted portal. Bundle media generated from /video and /image. All wrapped around the Company → Employee → Primitive model so distribution is just another runtime call.
The problem: agent social is one thread away from a ban
Posting to social from an agent is the most ban-prone primitive in the stack. Every platform has its own anti-automation surface. The 2023-2025 generation of "post to LinkedIn from a bot" tools tried to solve it with rotating proxies and headless browsers — and got accounts banned at industrial scale. The 2024-2025 generation of "official API only" tools work, but only on the platforms that have APIs (LinkedIn, Twitter/X, Reddit) — leaving Instagram, TikTok, YouTube, and the rest as broken integrations.
The status quo is two bad options:
- Use a scheduling SaaS (Buffer, Hootsuite, Typefully). Works for humans; doesn't expose programmatic primitives that an agent can call without a person in the loop.
- Build per-platform integrations yourself. Six months of integration work, perpetual maintenance as platforms change auth, and the constant ban risk because no one tells you when a platform shifts its anti-automation policy.
Until now. With /social, posting is one runtime call, account-quality routing handles ban risk, and account connection is a 30-second hosted portal flow.
How /social works
The workflow is three steps:
- Activate —
naive social activateonce per Company. Naïve provisions the social posting infrastructure and returns a portal link. - Connect — open
get_social_portal_linkand the operator connects each platform account via OAuth or platform-specific auth. Connections persist on the Company. - Post + measure — the Employee calls
create_social_postwith content, platform array, and optional media. Useget_social_post_analyticsandget_social_post_commentsto read engagement.
The 13 platforms supported today: Twitter/X, LinkedIn, Instagram, TikTok, YouTube, Reddit, Threads, Facebook, Pinterest, Bluesky, Mastodon, plus two more in private beta.
Two ways to publish: prompt or code
1. Natural language
naive social post \
--prompt "Announce the /social primitive launch on Twitter, LinkedIn, and Bluesky" \
--media @./demo.mp4
The CLI generates platform-tailored copy (a thread for Twitter, a long-form post for LinkedIn, a short post for Bluesky), attaches the media in the correct format per platform, and publishes simultaneously.
2. Code
const res = await fetch("https://api.usenaive.ai/v1/social/posts", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.NAIVE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
body: "We just shipped /social — post to 13 platforms with one call...",
media_urls: ["https://cdn.naive.ai/demo.mp4"],
}),
});
const post = await res.json();
// post.id, post.platforms
platformPosts returns the URL of every published post, so the Employee can follow up — track replies, monitor engagement, post follow-ups in the same thread.
Per-platform formatting, handled
Every platform has its own constraints — Twitter's 280-character limit, LinkedIn's link-preview hostility, Instagram's first-comment-hashtag pattern, TikTok's caption length, Reddit's subreddit-specific rules. The runtime handles them:
| Concern | Twitter/X | LinkedIn | Instagram | TikTok | |---|---|---|---|---| | Char limit | 280 (auto-thread) | 3000 | 2200 | 4000 | | Link previews | First link only | Demoted; image-first | None (bio-link convention) | First link only | | Hashtags | In-line, max 5 | Demoted; in-line max 3 | First-comment, up to 30 | In-caption, in-line | | Media | Up to 4 images, 1 video | 1 image or 1 video | Carousel up to 10 | Single video | | Threading | Auto-split | None | None | None |
You write the canonical content once. The runtime emits it correctly per platform. No "platform variants" to maintain by hand.
Account-quality routing keeps accounts alive
The single thing that gets agent social accounts banned is posting too consistently from the wrong source. Platforms profile sender behavior — IP class, posting cadence, content-similarity to other accounts on the same network, time-of-day patterns. Cross-account fingerprinting catches automation faster than you'd expect.
/social is built on top of bundle.social, which monitors connected-account reputation across thousands of accounts and routes posts through the safest available path. When a platform throttles, the runtime detects it before the next post and pauses — surfacing a social.account_throttled webhook so the operator can act before the account gets banned outright.
When a platform throttles, the runtime detects it before the next post and pauses — surfacing a webhook so the operator can act before the account gets banned outright.
Analytics and comments as runtime objects
Engagement data is a first-class output:
# Get post analytics
naive social analytics <post_id>
# Get post comments
naive social comments <post_id>
The Employee can read its own engagement, reply to comments, and let the loop decide what to publish next based on what's working — without a human in the dashboard.
What you can build with /social
Distribute a faceless YouTube channel across 13 platforms — Compose /social with /video and /image so the same Employee that produces the content publishes it everywhere — long-form on YouTube, vertical on TikTok and Reels, threaded on Twitter.
Run an autonomous content brand with consistent voice — Pair /social with /brand so every post carries the Company's tone, color palette, and signature.
Build comment-aware engagement loops — The Employee reads its own comments, classifies sentiment, and replies — composed with /research for fact-grounded responses.
Monitor and report on multi-platform campaigns — Pull analytics across platforms, attribute to campaigns, and report — all from the same Employee.
Repurpose a single piece of content into 13 native posts — One canonical message in, 13 platform-native posts out. Useful for launches, announcements, and major content drops.
Get started
- Read the docs: usenaive.ai/docs/guides/social-media
- Quickstart: usenaive.ai/docs/getting-started/quickstart
- Background reading: bundle.social and the LinkedIn Marketing Developer Platform overview.
- Join the community on Discord