How do I get the Styrar CLI?
Sign in to your Styrar dashboard — the CLI and current setup instructions for your platform are available to signed-in Team and Agency workspaces.
Command-line interface
The Styrar CLI puts every workspace action — posts, links, bio pages, campaigns, analytics — behind a single `styrar` command. Sign in to your dashboard to get your API key and the CLI. Every command is generated straight from the same tool catalog the Styrar MCP server exposes to AI assistants, so a script you write today behaves exactly like the equivalent AI action.
A few of the generated commands:
Every command below runs in your terminal — organized by category, generated from the same catalog as the Styrar MCP server.
styrar list-social-accountsList connected Instagram, X (Twitter), TikTok, LinkedIn, YouTube, Threads, Facebook, and other social accounts. Optional companyId and brandId for company/brand scope. Set includePersonal to also list the user's personal accounts when the workspace allows posting to personal channels.styrar create-linkCreate a shortened URL with optional title, shortCode, company scope, expiresAt, activeFrom, campaignIds, linkGroupId, tagIds, customDomainId, qrStyle, and custom OG fields (ogTitle, ogDescription, ogImageUrl, ogInterstitialEnabled).styrar list-linksList shortened URLs; filter by companyId, campaignId, linkGroupId, tagId, or unassigned (no campaign).styrar get-linkFetch a single short link by linkId including click count and campaign metadata.styrar update-linkUpdate a short link: originalUrl, title, isActive, activeFrom, expiresAt, campaignId/campaignIds, linkGroupId, tagIds, qrStyle, and custom OG fields.styrar delete-linkPermanently delete a short link by linkId.styrar list-link-groupsList link groups (folders) for personal or company scope.styrar create-link-groupCreate a link group/folder with title and optional companyId or campaignId.styrar update-link-groupRename a link group by groupId.styrar delete-link-groupDelete a link group; links in the folder become unassigned.styrar list-link-tagsList tags used to label short links in personal or company scope.styrar create-link-tagCreate a link tag by name in personal or company scope.styrar update-link-tagRename a link tag by tagId.styrar delete-link-tagDelete a link tag and remove it from assigned links.styrar list-link-routing-rulesList geo/device routing rules that redirect visitors to alternate destination URLs.styrar create-link-routing-ruleAdd a geo or device rule mapping conditions to an HTTPS destinationUrl.styrar update-link-routing-ruleUpdate priority, conditions, destination URL, or active state on a link routing rule.styrar delete-link-routing-ruleRemove a geo/device routing rule from a short link.styrar get-link-experimentFetch the A/B experiment on a short link (variants, weights, status, click counts).styrar update-link-experimentCreate or replace a draft link experiment with HTTPS destinationUrl variants and weights.styrar delete-link-experimentRemove the A/B experiment configuration from a short link.styrar control-link-experimentStart, pause, or complete a link A/B experiment. Pass winningVariantId when completing.styrar bulk-create-linksCreate up to 100 links from a links array or CSV string. Set upsert true for idempotent shortCode imports.styrar bulk-update-linksUpdate up to 100 links in one request via an updates array (each entry needs id).styrar bulk-delete-linksDelete multiple short links by linkIds in personal or company scope.styrar import-link-ogScrape og:title, og:description, and og:image from the link destination URL into custom OG fields.styrar get-link-qrReturn short link QR metadata (shortCode, qrStyle). Binary PNG/SVG download uses the dashboard or GET /v1/links/:id/qr.styrar get-link-analyticsAggregated click counts across all short links; optional companyId and date range (from, to).styrar get-link-analytics-by-idClick analytics for a single linkId; optional date range (from, to).styrar create-postCreate a DRAFT or SCHEDULED social post across Instagram, LinkedIn, X, TikTok, YouTube, and more. Use scheduledAt to schedule—no separate schedule_post tool. Call list_social_accounts first for socialAccountId in each target.styrar list-postsList posts with optional filters—status (DRAFT, SCHEDULED, PUBLISHED, FAILED), companyId, date range (from, to), page, limit.styrar get-postFetch a single post by postId including platform targets, approval status, media files, and analytics.styrar update-postUpdate a DRAFT or SCHEDULED post by postId. Editable fields: content, title, scheduledAt, status, campaignId, brandId, tags, mediaFileIds.styrar delete-postPermanently delete a post by postId (must be DRAFT, SCHEDULED, or FAILED).styrar list-saved-mentionsList workspace saved @mentions with per-platform handles for compose and publish substitution.styrar create-saved-mentionCreate or upsert a saved @mention with optional per-platform handles (X, LinkedIn, etc.).styrar update-saved-mentionUpdate a saved mention name or platformHandles by mentionId.styrar delete-saved-mentionDelete a workspace saved mention by mentionId.styrar list-bio-pagesList bio pages for personal or company scope; includes live version and custom domain metadata.styrar get-bio-pageFetch one bio page by id, including live blocks and custom domain details.styrar create-bio-pageCreate a new bio page with title and optional company scope.styrar update-bio-pageUpdate bio page settings: title, custom tenantSlug, allowCustomSlug, trackingConfig (GA/GTM/pixels), and cookiePolicy banner when tracking is enabled.styrar delete-bio-pageDelete a bio page and linked sentinel click-tracking link.styrar list-bio-versionsList versions for a specific bio page id.styrar create-bio-versionSave a new bio page version draft with theme, pages, pageMeta, and chrome blocks. Set copyFromSource true to clone the latest locale version.styrar delete-bio-versionDelete a saved bio version. Cannot delete the only version on a page.styrar publish-bio-versionPublish a specific version id as the live bio page.styrar get-bio-blocksList blocks for a bio page version, optionally filtered by pagePath.styrar replace-bio-blocksReplace chrome blocks for a bio version (hero, nav, footer). For section content use update_bio_version.styrar get-bio-versionFetch a bio version with theme, pages, pageMeta sections, and chrome blocks. Omit versionId for the latest locale draft.styrar update-bio-versionSave a bio draft in place with theme, pages, pageMeta (sections), and chrome blocks. Use for layout and content edits.styrar get-bio-experimentFetch the A/B experiment config for a bio page (variants, scope, status, click counts).styrar update-bio-experimentCreate or replace a draft bio experiment with variants (bioPageVersionId + weight). Scope: page, section, or block.styrar delete-bio-experimentRemove the A/B experiment configuration from a bio page.styrar control-bio-experimentStart, pause, or complete a bio A/B experiment. Pass winningVariantId when completing.styrar list-bio-routing-rulesList geo/device routing rules that serve alternate bio versions to visitors.styrar create-bio-routing-ruleAdd a geo or device routing rule mapping conditions to a bioPageVersionId.styrar update-bio-routing-ruleUpdate priority, conditions, target version, or active state on a bio routing rule.styrar delete-bio-routing-ruleRemove a geo/device routing rule from a bio page.styrar get-bio-domainFetch the custom domain attached to a bio page (company workspaces only).styrar set-bio-domainAttach a custom hostname to a bio page. Returns DNS records to configure.styrar verify-bio-domainRe-check Cloudflare verification status for a bio page custom domain.styrar delete-bio-domainDetach and delete the custom domain from a bio page.styrar get-bio-booking-settingsFetch appointment booking settings for a bio page: timezone, notice windows, deposit processor (Stripe or Shopify), calendar sync, and notification email.styrar update-bio-booking-settingsConfigure bio booking: IANA timezone, notifyEmail, minNoticeMinutes, maxAdvanceDays, depositProcessor with stripeConnectAccountId or shopifyStoreId, and optional calendar sync fields.styrar list-bio-booking-servicesList bookable services on a bio page with duration, buffer, capacity, custom fields, and optional deposit amounts.styrar get-bio-booking-serviceFetch one bio booking service by bioPageId and serviceId.styrar create-bio-booking-serviceAdd a bookable service with name, durationMinutes, optional description, buffer, capacity, custom intake fields, and optional depositAmountCents.styrar update-bio-booking-serviceUpdate service name, duration, deposits, custom fields, active state, or sort order.styrar delete-bio-booking-serviceRemove a bookable service from a bio page.styrar list-bio-booking-availability-rulesList weekly hours and date-override availability or blackout rules for bio booking.styrar create-bio-booking-availability-ruleAdd weekly hours or a date_override rule. Use ruleType weekly with weekday 0-6, or date_override with YYYY-MM-DD (optional endDate for multi-day / week blackouts). Set isBlackout for blocked days.styrar update-bio-booking-availability-ruleUpdate startMinute/endMinute, blackout flag, or date on an availability rule.styrar delete-bio-booking-availability-ruleRemove a weekly or date-override availability rule.styrar list-bio-booking-appointmentsList upcoming or past appointments for a bio page with optional limit and cursor pagination.styrar get-bio-booking-appointmentFetch one appointment with service, slot times, guest details, and status.styrar update-bio-booking-appointmentMark a confirmed past appointment as no_show via action no_show.styrar cancel-bio-booking-appointmentCancel a confirmed appointment and notify the guest when configured.styrar list-bio-theme-presetsList workspace-saved custom bio theme presets for personal or company scope.styrar create-bio-theme-presetSave a reusable bio theme preset with label and theme JSON for the active workspace.styrar delete-bio-theme-presetDelete a saved custom bio theme preset by presetId.styrar get-bio-analyticsFetch click analytics for a bio page id with optional from/to date range.styrar list-bio-form-submissionsList leads captured by contact-form blocks on a bio page, with labeled field data, marketing/SMS consent flags, and form definitions. Optional blockId filter, limit, and cursor for pagination.styrar translate-bio-contentAI-translate, copy, or manually save locale strings for a bio resource (page_version or booking_service). AI mode uses Orbit AI credits. For pages, resourceId is the version id.styrar get-bio-translationsSide-by-side translation workspace for a bio page: source vs target locale strings. Optional resource + resourceId.styrar export-bio-translations-csvExport bio translation rows as CSV for one or more targetLocales.styrar import-bio-translations-csvImport translated CSV rows into a bio page (csvText body). Optional targetLocales filter.styrar generate-bio-legal-policiesAuto-generate privacy policy and cookie policy markdown for a bio page from its tracking/cookie config, with optional businessName and contactEmail.styrar get-workspace-bio-analyticsOverview analytics across all bio pages in personal or company scope.styrar list-sitesList Sites websites for the personal or company workspace (optional companyId).styrar get-siteFetch a site by id including status, tenantSlug, publicUrl, liveVersion, and custom domain.styrar create-siteCreate a new Sites website with title, optional companyId, and optional templateId from list_site_templates.styrar update-siteUpdate site title, tenantSlug, allowCustomSlug, trackingConfig, or cookiePolicy.styrar delete-sitePermanently delete a site and its versions.styrar list-site-templatesList starter templates available when creating a site.styrar list-site-versionsList draft and published versions for a site (includes blocks).styrar create-site-versionCreate a new site version with optional theme, pages, pageMeta, and blocks.styrar get-site-versionFetch a Sites version with theme, pages, pageMeta sections, and chrome blocks. Omit versionId for the latest matching locale draft.styrar update-site-versionSave a Sites draft in place with theme, pages, pageMeta (sections), and chrome blocks. Supports responsive, motion, effects, interactions, and canvas styles.frame place/resize.styrar delete-site-versionDelete a site version (cannot delete the last remaining version).styrar publish-site-versionPublish a specific version id as the live site.styrar get-site-blocksReturn chrome blocks for a site version; optional pagePath filter. Prefer get_site_version for full layout.styrar replace-site-blocksReplace chrome blocks for a site version (hero, nav, footer). For section content use update_site_version.styrar list-site-collectionsList structured CMS collections (and fields) for a Site. Blog remains separate.styrar create-site-collectionCreate a CMS collection with name, slug, listPath, and detailPath (must include [slug]).styrar get-site-collectionFetch one collection with fields and item count.styrar update-site-collectionUpdate collection name, slug, listPath, or detailPath.styrar delete-site-collectionDelete a collection and its items.styrar list-site-collection-itemsList collection items; optional status filter DRAFT or PUBLISHED.styrar create-site-collection-itemCreate a draft or published collection item. Bind on templates with {{item.field}} or cmsBindings after adding list/detail paths to pages[].styrar get-site-collection-itemFetch one collection item by id.styrar update-site-collection-itemUpdate item slug, status, or data fields.styrar delete-site-collection-itemDelete a collection item.styrar create-site-collection-fieldAdd a field to a collection (key, label, type, required).styrar update-site-collection-fieldUpdate a collection field definition.styrar delete-site-collection-fieldRemove a field from a collection.styrar list-site-componentsList reusable SiteComponent library entries for the workspace.styrar get-site-componentFetch one SiteComponent with variants.styrar create-site-componentCreate a component from section JSON or explicit variants.styrar update-site-componentUpdate component name or variants.styrar delete-site-componentDelete a SiteComponent from the library.styrar create-site-component-from-sectionSnapshot a pageMeta section into a new reusable SiteComponent.styrar insert-site-componentCopy-on-insert: returns section JSON for a variant. Merge into pageMeta.sections via update_site_version.styrar list-site-blog-categoriesList blog categories for a site (optional locale).styrar create-site-blog-categoryCreate a blog category on a site.styrar update-site-blog-categoryUpdate a site blog category name or slug.styrar delete-site-blog-categoryDelete a site blog category.styrar list-site-blog-postsList blog posts for a site; filter by locale, status, or categoryId.styrar get-site-blog-postFetch one site blog post.styrar create-site-blog-postCreate a site blog post (title, contentHtml, SEO fields, status).styrar update-site-blog-postUpdate a site blog post fields or publish status.styrar delete-site-blog-postDelete a site blog post.styrar get-site-booking-settingsFetch appointment booking settings for a site (timezone, deposits, calendar).styrar update-site-booking-settingsUpdate site booking timezone, notice windows, calendar sync, and deposit processor.styrar list-site-booking-servicesList bookable services for a site.styrar get-site-booking-serviceFetch one booking service.styrar create-site-booking-serviceCreate a bookable service with duration, capacity, and optional deposit.styrar update-site-booking-serviceUpdate a booking service.styrar delete-site-booking-serviceDelete a booking service.styrar list-site-booking-availability-rulesList weekly and date-override availability rules for site booking.styrar create-site-booking-availability-ruleCreate a weekly or date_override availability (or blackout) rule.styrar update-site-booking-availability-ruleUpdate an availability rule.styrar delete-site-booking-availability-ruleDelete an availability rule.styrar list-site-booking-appointmentsList upcoming or past appointments for a site.styrar get-site-booking-appointmentFetch one appointment.styrar update-site-booking-appointmentMark an appointment no_show.styrar cancel-site-booking-appointmentCancel an appointment.styrar list-site-formsList first-class form definitions for a site (name + config). Use form id as translate resourceId when resource is form.styrar get-site-formFetch one site form by id.styrar create-site-formCreate a site form with optional name and contact-form config JSON.styrar update-site-formUpdate a site form name and/or config.styrar delete-site-formDelete a site form definition.styrar list-site-form-submissionsList contact form submissions for a site; optional blockId and export format.styrar translate-site-contentAI-translate, copy, or manually save locale strings for a site resource (page_version, blog_post, blog_category, form, booking_service, commerce_product). AI mode uses Orbit AI credits. For pages, resourceId is the version id.styrar get-site-translationsSide-by-side translation workspace for a site: source vs target locale strings. Optional resource + resourceId to focus one entity.styrar export-site-translations-csvExport site translation rows as CSV for one or more targetLocales.styrar import-site-translations-csvImport translated CSV rows into a site (csvText body). Optional targetLocales filter.styrar list-site-commentsList collaboration comments on a site; optional pagePath and includeResolved.styrar create-site-commentAdd a PAGE/SECTION/BLOCK comment or reply (parentId).styrar update-site-commentEdit comment body or set resolved true/false.styrar delete-site-commentDelete a collaboration comment.styrar list-site-branchesList preview branches for a site.styrar get-site-branchFetch a branch and its tipVersionId.styrar create-site-branchBranch from live or sourceVersionId into an editable tip version.styrar update-site-branchRename a branch or point tipVersionId at another version.styrar delete-site-branchDelete a branch record.styrar merge-site-branchMerge branch tip into a new draft version (does not publish live).styrar get-site-domainFetch custom domain status and DNS guidance (company workspaces only).styrar set-site-domainAttach a custom domain to a company site.styrar verify-site-domainRe-check Cloudflare SaaS hostname verification for the site domain.styrar delete-site-domainDetach the custom domain from a site.styrar get-site-seo-auditRun SEO checklist on latest or specified version (titles, meta, redirects).styrar get-site-analyticsPer-site visits, pageviews, link clicks, and funnel (optional from/to).styrar get-workspace-site-analyticsRoll up Sites analytics for personal or company scope (optional companyId, from/to).styrar upgrade-bio-to-siteCreate a Site from a bio page snapshot; optional slimBio to LIB-only on the bio.styrar list-site-theme-packagesList first-party and workspace Sites theme packages (optional companyId, source).styrar upload-site-theme-packageUpload a workspace theme package via zipBase64 or JSON package body (links:write).styrar install-site-theme-packageCopy-install a theme package into a site version (mode theme|full). Overwrites draft layout in full mode.styrar export-site-theme-packageExport a site version as a theme package zip (binary response).styrar get-site-theme-gitShow GitHub theme source link and last sync status for a site.styrar sync-site-theme-gitPull the linked GitHub theme into the draft (optional publish).styrar list-campaignsList campaigns for personal or company scope with optional brand and click totals filters.styrar get-campaignFetch one campaign by id including counts and brand metadata.styrar create-campaignCreate a campaign with name and optional company, brand, destination, UTM, and dynamic link settings.styrar update-campaignUpdate a campaign by campaignId. Editable fields: name, description, defaultDestinationUrl, dynamicSourceEnabled, dynamicLinkMode, utmDefaults, brandId.styrar delete-campaignPermanently delete a campaign by campaignId.styrar get-content-planning-boardFetch the company content pipeline board and work items. Use view kanban for /content/plan column order, list for /content/list sorting, or timeline for /content/timeline due-date ranges. Requires company workspace and contentPlanning feature flag. Filters: campaignId, brandId, stage slug/id, tag, assigneeUserId, type (POST|LINK|BIO_UPDATE), q. Timeline view accepts optional from/to ISO dates (defaults to current month through two months ahead).styrar create-content-work-itemAdd a card to the content planning pipeline (Kanban). Requires companyId. Optional stageId, type (POST|LINK|BIO_UPDATE), title, description, campaignId, brandId, assigneeUserId, startDate, endDate, dueDate, linked postId/linkId/bioPageId, and tags.styrar update-content-work-itemUpdate a planning card by workItemId and companyId. Editable fields match create_content_work_item plus stageId and position.styrar delete-content-work-itemPermanently delete a planning card by workItemId and companyId.styrar move-content-work-itemMove a planning card to another pipeline stage (Kanban column). Requires workItemId, companyId, stageId; optional position within the column.styrar add-content-work-item-tagAdd a tag label to a planning card. Requires workItemId, companyId, and tag.styrar remove-content-work-item-tagRemove a tag from a planning card. Requires workItemId, companyId, and tag.styrar reorder-content-planning-stagesReorder or rename Kanban pipeline stages. Requires content_planning:admin. Pass companyId, boardId, and stages array with id plus optional position and name.styrar list-automationsList automation flows for personal or company scope.styrar get-automationFetch one automation by id including recent runs and nodes.styrar create-automationCreate an automation with name and optional description or company scope.styrar update-automationUpdate automation fields such as name, description, status, or viewport coordinates.styrar list-automation-runsList run history for a specific automation id.styrar run-automationTrigger a manual run for an automation with optional input payload.styrar create-automation-nodeAdd a step to an automation (kind, label, x, y required) with optional visual and config fields.styrar create-automation-edgeConnect two automation steps with a link between them.styrar list-approval-flowsList approval flows for a company (companyId required).styrar get-approval-flowFetch one approval flow by id including nodes and edges.styrar create-approval-flowCreate a company approval flow with name, optional description, and optional default flag.styrar update-approval-flowUpdate approval flow fields such as name, description, status, and default flag.styrar delete-approval-flowDelete an approval flow by id.styrar test-approval-flowSimulate a flow test run with optional dummy post fields and get step and notification results.styrar post-approval-actionPerform post approval actions (approve, reject, request_changes, reassign, override) on post tasks.styrar list-pending-approval-tasksList every PENDING approval task across a company's posts (one row per task, with post title/content/platforms and the assigned role or user). Requires companyId. Renders as an interactive approval queue card with Approve / Reject / Request changes buttons wired to post_approval_action.styrar list-skill-documentsList Markdown skill documents for the current user or a specific brand (provide both companyId and brandId for brand scope). Returns id, slug, title, sortOrder.styrar get-skill-documentFetch a single skill document by id, including the full Markdown body. Optionally scope to a brand with companyId + brandId.styrar create-skill-documentCreate a new Markdown skill document for the user or a brand (provide both companyId and brandId for brand scope). Use list_skill_templates to get ready-made starting content.styrar update-skill-documentUpdate an existing skill document's title, Markdown body, slug, or sortOrder by id.styrar delete-skill-documentDelete a skill document by id. Optionally scope to a brand with companyId + brandId.styrar list-skill-templatesList ready-made Markdown templates — brand voice, Instagram strategy, LinkedIn strategy, content calendar, campaign planner, and hashtag strategy. Copy a template body into create_skill_document to add it to a workspace.styrar upload-mediaStore an image in the media library by passing its content as a base64-encoded string (fileData). Requires fileName and mimeType (must be image/*). The file is stored securely in S3 and automatically processed. Returns the stored file id and a signed view URL. Use when the user sends an image directly in the conversation.styrar upload-media-from-urlFetch a public image URL and store it in the media library. Requires url (must resolve to an image). Optional fileName and companyId. Returns the stored file id and a signed view URL.styrar generate-imageGenerate a new image from a text prompt and save it to the media library. Requires prompt. Optional fileName, companyId, provider (openai or gemini), and size (1024x1024, 1536x1024, or 1024x1536). Returns the stored file id and signed viewUrl.styrar list-mediaReturns the 25 most recent images and videos from the media library as an interactive picker with inline previews. Images are shown directly; videos are shown with their thumbnail frame. Each item includes fileName, id, mimeType, sizeBytes, and duration (for videos). Call this whenever the user needs to choose a media file. Optional filters: companyId, q (filename search), tag, page.styrar get-mediaFetch a single library file by id, including a signed view URL, processing status, and cached aiAnalysis when present.styrar analyze-mediaRun or fetch AI analysis for a library image, video, or audio file (vision summary, OCR, transcript, optional suggestedCaption). Cache-first unless force=true. Costs AI credits. Call before drafting captions from a file.styrar delete-mediaPermanently delete a library file by id. The file is removed from S3 and the account.styrar list-companiesList all companies the authenticated user belongs to, with role and member counts. Call this first to discover available companyId values.styrar get-companyFetch a single company by id including brand count, member count, and subscription plan.styrar create-companyCreate a new company workspace with a name and unique slug. The authenticated user becomes the owner.styrar update-companyUpdate a company's name or other profile fields by companyId.styrar list-brandsList all brands for a company by companyId. Returns id, name, slug, isArchived, and logo. Call before scoping posts, campaigns, or skill documents to a brand.styrar get-brandFetch a single brand by companyId and brandId including guidelines and logo.styrar create-brandCreate a new brand inside a company by companyId. Requires a name; slug is auto-derived.styrar update-brandUpdate a brand's name, guidelines, or archive status by companyId and brandId.styrar list-company-membersList members of a company by companyId. Returns user name, email, role, and brand access. Useful for approval flow setup.styrar list-notesList workspace notes for personal or company scope. Optional companyId to filter to a company workspace.styrar get-noteFetch a single workspace note by noteId including full body text.styrar create-noteCreate a markdown workspace note with title and body. Optional companyId and visibility (PRIVATE or COMPANY).styrar update-noteUpdate a workspace note's title, body, or visibility by noteId.styrar delete-notePermanently delete a workspace note by noteId.styrar list-peopleList People CRM contacts; filter by companyId, brandId, q, status, tag, limit, cursor.styrar get-personFetch a person with identities, tags, and interaction counts.styrar create-personCreate a People CRM contact with optional name, email, phone, status, and brand.styrar update-personUpdate person fields (name, email, phone, status, brand).styrar delete-personDelete a person from the workspace CRM.styrar get-person-timelineRecent forms, bookings, and social activity linked to a person.styrar search-people-by-handleFind a person by social platform + username.styrar list-workspace-person-tagsAll person tag names in the workspace for autocomplete.styrar list-person-notesList internal notes on a person.styrar create-person-noteAdd an internal note to a person.styrar add-person-tagAttach a tag by name to a person (find-or-create).styrar remove-person-tagRemove a tag assignment from a person by tagId.styrar list-community-commentsMixed community inbox comments across platforms. Returns postId, targetId, and platformCommentId needed for replies. Filter by company, brand, platform, status, read state, dates.styrar mark-community-comment-readSet isRead true/false on a synced platform comment.styrar set-community-comment-statusSet comment triage status: OPEN, IN_PROGRESS, RESOLVED, or ARCHIVED.styrar reply-to-community-commentPost a platform reply. Requires postId, targetId, platformCommentId (from list_community_comments), and text.styrar sync-communityOn-demand soft sync for community comments and X DM backfill. Optional force.styrar list-instagram-dmsList Instagram DM threads for the workspace.styrar get-instagram-dmFetch one Instagram DM thread and messages.styrar reply-instagram-dmSend a text reply on an Instagram DM thread.styrar list-x-dmsList X (Twitter) DM threads when DM inbox is enabled on the account.styrar get-x-dmFetch one X DM thread and messages.styrar reply-x-dmSend a text reply on an X DM thread.styrar get-social-analytics-overviewWorkspace social KPI overview (engagement, byPlatform, audience). Optional companyId, brandId, from/to or days.styrar searchGlobal search across posts, comments, campaigns, notes, community comments, short links, bio pages, sites, people, media library files, and automations. Optional type filter: posts | comments | campaigns | notes | community | links | bio | sites | people | media | automations. Use for broad 'find me something' queries.styrar login
styrar config set companyId <id>
styrar list-tools`list-links`, `create-post`, `get-link-analytics`, and more — every Styrar capability is a typed, documented `styrar` command with its own `--help`.
Pipe JSON output into `jq`, wire it into a cron job, a release pipeline, or a bulk-import script. Every command prints clean JSON to stdout.
The CLI is generated from the identical tool definitions Styrar's MCP server exposes to AI assistants, so scripts, AI agents, and the dashboard all stay in sync automatically.
Authenticate with a dashboard API key you control and can revoke at any time. Set a default company and brand once, then use `styrar` across your whole workspace.
The Styrar CLI authenticates with the same API keys as the Styrar API and MCP server. Sign in to your dashboard, generate a key, log in from your terminal, and you're ready to run commands.
The Styrar CLI exposes a complete set of commands covering the core social OS workflow, with the same guardrails as the dashboard.
Script repeatable workspace tasks, wire Styrar into a release pipeline, or manage multiple client workspaces from one terminal.
Bulk-import links, batch-schedule posts, or export analytics into a report — without clicking through the dashboard by hand.
Use the same commands your AI agent calls over MCP directly in a shell script, so behavior stays predictable and easy to debug.
Sign in to your Styrar dashboard — the CLI and current setup instructions for your platform are available to signed-in Team and Agency workspaces.
The CLI uses the same dashboard API keys as the Styrar REST API and MCP server. Generate a key under Settings → API Keys, then run `styrar login` and paste it in — it's saved locally for future commands.
They share the same underlying tool catalog, so the same actions are available in both, with identical validation and request behavior. The MCP server is for AI assistants like Claude and Cursor; the CLI is for scripts, terminals, and CI pipelines.
Yes. Every command authenticates with an API key (via flag, environment variable, or saved config) and prints JSON to stdout, so it's straightforward to call from a script, a scheduled job, or a CI step.
No. CLI actions run through the same permission rails and approval flows as the dashboard and API. Your API key's scopes and your workspace role determine what a command is allowed to do.
The CLI covers the full Styrar workspace: posts, short links, bio pages, campaigns, automations, approval flows, media, notes, and search — plus a raw `styrar api` command for any endpoint without a dedicated command yet.
Sign in, grab an API key, and start scripting your workspace in minutes.